분류 전체보기124 [Java] JVM 메모리 구조 JVM( Java Vitual Machine) : 특정 OS에 종속받지 않고 JAVA를 실행할 수 있게 하는 가상머신 컴퓨터는 java코드를 이해하지 못하기 때문에 위처럼 컴파일 과정을 거쳐야한다.java 소스코드를 컴파일러를 통해 class 파일(java byte code)로 변환하고 byte code 파일을 사용중인 OS에 맞게 구현되어잇는 JVM을 통해 실행하고 프로그램을 동작시킨다. 1. 클래스 로더 JVM에 클래스 파일을 로드하는 역할. 여러 클래스 파일들을 실행 가능한 상태로 만들어준다. 2. 실행 엔진로드된 클래스 파일의 자바 바이트코드를 실제로 실행하는 역할을 한다. (1) 인터프리터 : 바이트코드를 한 줄씩 읽어서 실행한다.(2) JIT 컴파일러 : 자주 호출되는 바이트코드를 네이티브 .. 2024. 11. 10. SOLID - 객체 지향 설계의 5원칙 1. 단일 책임의 원칙 - Single Responsibility Principle(SRP)* 하나의 클래스는 하나의 책임만 가져야한다는 원칙 SRP 예시 기존 코드class User{ private String name; private String message; public User(String name, String msg){ this.name = name; this.message = message; } private String getMessage(){ return this.message; } private String getName(){ return this.name; }}public class Cha.. 2024. 11. 1. Immutable Object ( 불변객체 ) 불변 ( Immutable ) - 어떠한 변경도 허용하지 않겠다라는 의미이며, 가변(mutable) 객체와 구분하는 용도로 쓰임. 대표적으로 String 객체는 한번 만들어지면 절대 값을 바꿀 수 없는 불변 객체이다. 객체를 생성하고 절대 바꿀수 없기때문에 한번 생성한 불변 객체는 신뢰할 수 있다. 불변 객체의 장점 1. 쓰레드에 안전하여 멀티 쓰레드 상황에서 동기화를 고려하지 않아도 된다. ● 멀티 쓰레드 환경에서 동기화 문제가 발생하는 이유는 공유 하고있는 변수를 동시에 연산으로 사용하고 있기때문다. 하지만 공유 하고있는 자원이 불변 객체라면 항상 동일한 값만 반환하므로 동기화를 고려할 필요가 없다. 안정성도 보장 하면서 동시에 동기화를 고려하지 않음으로써 이점을 가질수 있다. 2. 객체의 신뢰도가 .. 2023. 11. 11. Cron Expression ( 크론 표현식 - 스케줄러 시간 세팅) Cron 표현식 형태 년도는 생략 가능 하기 때문에 6자리 형태로 사용가능하다. 특수문자 의미 * : 모든 값 ? : 특정 값 없음 - : 범위 지정에 사용 , : 여러 값 지정 구분에 사용 / : 초기값과 증가치 설정에 사용 L : 지정할 수 있는 범위의 마지막 값 W : 가장 가까운 평일 # : 몇 번째 무슨 요일인지 지정 * 참고 https://dev-bri.tistory.com/4 2023. 10. 17. 이전 1 2 3 4 5 6 ··· 31 다음