Back-end/이것이 자바다[신용권 한빛미디어] 65

JVM 내부구조

메소드 영역 클래스들을 클래스 로더로 읽어 클래스 별로 런타임 상수풀(runtime constant pool), 필드(field), 데이터, 메소드(method) 데이터, 메소드 생성자(constructor) 코드 등을 분류해서 저장 힙 영역 객체와 배열이 생성되는 영역, JVM 스택 영역에서 병수나, 다른 객체의 필드에서 참조, 참조되는 것이 없으면 GC 실행 자동 제거 JVM 스택(영역) 각 스레드 마다 하나씩 존재 스레드가 시작될때 할당, 추가적 스레드 생성 하지 않았다면 , main 스레드만 존재 JVM 스택도 하나 JVM스택은 메소드를 호출할때 마다 프레임(Frame) 추가 (Push) 하고 메소드가 종료되면 해당 프레임을 제거(Pop) 하는 동작을 수행 예외 발생시 printStackTrace..

Java 연산자

연산자 단항 : 부호 증감 연산자 ex) x++ 이항 : 나머지 삼항 : 조건 연산자 ex) (sum>90) ? "A" : "B" 단항 연산자 부호연산자 short s = 100 short result = -s // 컴파일 에러 -> 부호 연산자 산출 타입 => int 증감연산자 ++,-- 피연산자 다른연산 수행하기 전 피연산자 ++,-- 다른 연산 수행한 후 * .class 파일은 -> Navigator 뷰 추가후 bin 폴더이 바이트 코드 파일 열어보기 비트 반전 연산자 byte v1 = 10 byte v2 = ~v1 // 컴파일 에러 --> ~ 연산자는 수행전 int 형으로 변환 ~v1 + 1; => -v1은 -11, -> 산출값 1 더하면 부호가 반대인 정수 얻음 산술 연산자 byte byte1 ..