자바 (12) 썸네일형 리스트형 라이프 사이클 1. 소스코드 작성 2. 컴파일 소스코드를 바이트 코드로 변환 - 구문검사, 검증 3. 클래스 로딩 클래스 로더가 .class 파일을 메모리에 로드 클래스 로드, 링크, 초기화 4. 바이트코드 검증 JVM 내부에서 바이트 코드 유효성 검사 - 스택 검사, 사용되지 않는 로컬 변수 제거 안전성과 보안성을 보장하기 위한 과정 5. Just In Time JVM은 인터프리터 방식으로 동작하는데 JIT 컴파일러를 도입해서 속도 저하 보완 인터프리터 방식으로 코드를 실행할 때, 속도가 느린 부분을 파악하여 해당 부분을 네이티브 코드로 변환, 이후 인터프리터 대신 네이티브 코드를 직접 실행하는 방식 JIT 컴파일러는 애플리케이션의 실행 패턴을 분석하여 최적화 된 코드를 생성 - 기계어 생성 6. 실행 7. 메모리 .. EAR WAR JAR JAR - JAVA Application Resource 자바 애플리케이션과 관련된 클래스 파일, 메타데이터, 리소스 파일 등을 하나의 압축 파일로 묶은 것 이 파일은 자바 애플리케이션을 쉽게 배포하고 설치할 수 있도록 도움 자바 라이브러리 포함 가능, 재사용 가능한 코드 모듈을 효율적으로 관리 가능 WAR - Web Application Resource 웹 애플리케이션과 관련된 파일들을 하나의 압축 파일로 묶은 것 jsp, 서블릿, 클래스 파일, XML 설정 파일, 웹 리소스(HTML 등) 웹 애플리케이션 구성 요소를 포함 웹이나 애플리케이션 서버에서 배포 가능 - 애플리케이션 설치 및 관리 가능 EAR - Enterprise Application Resource 자바 기반의 엔터프라이즈 애플리케이션을.. replaceAll 사용법 "문자열".replaceAll(탐색 문자,바꿀 문자); 탐색문자에는 정규식이 들어갈 수 있음 [문자] : 괄호 속의 문자를 모두 탐색 / 범위 지정 가능 → [abc] : a,b,c 각각 찾아짐 → [a-z] : a부터 z까지 찾음 (?i) : 대소문자 구별 없이 탐색 예제 대소문자 구별 없이 모음 없애기 (a,e,i,o,u) I like Apple → lk ppl "I like Apple".replaceAll("(?i)[aeiou]",""); log4j2 xml log for java 자바의 로그를 위한 패키지 log4j2.xml %d{HH:mm:ss.SSS} [%t] %-5level %c(%M:%L) - %m%n %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n ./log/${date:yyyy}/${date:MM} 위치 xml : 프로젝트/src/resources/log4j2.xml 스프링 pom.xml에 log4j-api와 log4j-core 의존성을 주입했다면 위의 위치에 xml을 만들면 알아서 읽어감 log : 어디서 생성되는지 모르면 로그 레벨을 debug로 하고 로그를 보다보면 아래와 같은 로그를 볼 수 있음 현재 날짜가 2023년 2월 14일 이므로 yyyy는 2023, MM은 02, dd는 14로 생성됨 .. HashMap / HashTable Hash - 해시 단방향 암호화 기법인 해시함수를 이용해 생성된 고정된 길이의 문자열 HashMap / HashTable(구버전) 데이터를 키와 값으로 관리하는 자료구조 차이점 동기화 HashMap은 동기화를 지원하지 않음 동기화가 필요하더라도 HashTable보다는 ConcurrentHashMap 사용을 권장 - HashTable은 매우 오래전에 만들어져서 속도가 느림 반환값 요소들 순회시 HashMap은 Fail-Fast Iterator / HashTable은 Enumeration 반환 Fail-Fast Iterator 다른 스레드에서 해당 자료의 요소를 수정이 발생하면 ConCurrentModificationException을 발생시켜 일관성을 보장하는것 한번 봐야됨 https://shlee0882.. 상속 / 포함 상속 기존의 클래스를 재사용해 새로운 클래스를 작성하는 것 두 클래스를 조상 - 자손 관계를 맺어줌 조상의 모든 멤버 사용가능 (생성자, 초기화 블록 제외) 포함 한 클래스의 멤버변수로 다른 클래스를 선언하는 것 포함 예시 Class Weapon extends Item { // 상속 - 무기는 아이템이다. private int jobCode; Power power = new Power(); // 포함 - 무기는 공격성을 갖는다. public Weapon() { Power power = new Power(); power.setOffensePower(10); power.setCritical(5); this(power,0); } public Weapon(Power power, int jobCode) { thi.. 클래스 Class 객체를 정의하기 위한 단위 객체를 생성하는 템플릿 역할 속성(변수)과 기능(메소드)으로 이루어져 있음 구성요소 생성자 - 객체를 생성했을때 초기화 변수 - 클래스가 가지는 속성을 저장하는 공간 메소드 - 클래스가 할 수 있는 기능 메소드 클래스 내에서 정의된 함수 객체를 이용해 호출 가능 객체의 속성과 관련된 작업 수행 가능 함수 특정 기능을 수행하는 코드블럭 프로그램 어디서든 호출 가능 속성(변수) 멤버 변수 - 초기화하지 않아도 사용가능 / 기본값 자동 초기화 인스턴스 변수 클래스마다 독립적으로 존재 객체마다 고유한 값 객체가 선언되었을때 생성 클래스 변수 클래스가 메모리에 적재되었을때 생성 모든 객체가 공유하는 값 지역변수 초기화 후 사용해야함 예시 Class Item { // 속성(클래스 변수) .. 자바 이미지 크롭 try { // Read the image BufferedImage image = ImageIO.read(new File("path/to/image.png")); // Create a CropImageFilter object to crop the image - width 100~1100 / height 0~maxHeight CropImageFilter cropFilter = new CropImageFilter(100, 0, 1100, image.getHeight()); Image img = Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(image.getSource(), cropFilter)); // Save the cropped imag.. 이전 1 2 다음