본문 바로가기

언어/Java9

[Java] JVM 메모리 구조 (JVM Memory Structure) JVM 이란 Java Virtual Machine, 자바 가상 머신의 약자를 떠서 줄여 부르는 용어이다. JVM 의 역할은 자바 애플리케이션을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실행한다. 또한 JVM은 Java 와 OS사이에서 중개자 역할을 수행하여 Java 가 OS에 구애받지 않고 재사용을 가능하게 해준다. JVM 메모리 구조는 크게 4개로 나뉘어 져잇다. 1. Method Area (Class Area) 해당영역은 JVM이 시작될 때 생성(Class Loader)되며, JVM에 의해 loading 된 클래스들이 저장된다. 클래스에서 구현한 메소드들과 상수들 (Constant Pool)을 저장한다. 또한 static 변수 또한 해당 메모리에 저장된다. 해당 변수들은 프로그램 종료까지 메.. 2020. 8. 4.
[Java] == 연산자와 equals() 매서드의 차이 두 값 비교하기 Java 언어에서 두 변수의 값을 비교할 때 '==' 연산자를 이용한다. == 연산자는 Primitive value의 경우 두 변수의 값을 비교하게 된다. Java 에서 Primitive value는 다음과 같이 8가지 종류가 존재한다. byte 8bits -2^7 ~ 2^7-1 (-128 ~ 127) short 16bits -2^15 ~ 2^15-1 (-32768 ~ 32767) int 32bits -2^31 ~ 2^31-1 (-2147483648 ~ 2147483647) long 64bits -2^63 ~ 2^63-1 (-9223372036854775808 ~ 9223372036854775807) float 32bits 0x0.000002P-126f ~ 0x1.fffffeP+127f .. 2020. 8. 4.
[Java] Call by value & Call by reference 프로그래밍에서 함수의 호출 방식으로 Call by value 와 Call by reference 방식이 있다. 이는 함수에 매개변수를 넘겨줄 때 '값(value)'을 넘겨주느냐 '주소(reference)'를 넘겨주느냐는 차이에서 생겨난 용어이다. Call by value 먼저 c 언어로 되어있는 예시를 보자. #include void swap(int a, int b){ int temp; temp = a; a = b; b = temp; } int main(){ int a, b; a = 10; b = 20; printf("swap 전 : %d %d\n", a, b); swap(a, b); printf("swap 후 : %d %d\n", a, b); return 0; } 스스로 이해해본 결과 이는 main 에.. 2020. 7. 29.
[Java]동기와 비동기 방식(Asynchronous processing model) 출처 - https://poiemaweb.com/js-async 취업을 준비하던 중 서버 비동기 연동 경험 이란 문구를 보게 되었다. 맨날 동기 비동기 연동이라는 단어를 많이 들어 봤으나 막상 개념을 머릿속에서 꺼내 보자니 확실하게 아는 것이 없는 것... 이번 글을 계기로 동기와 비동기 방식에 대하여 정리해 보자 한다. 구글에 동기와 비동기식을 검색해 본 결과 가장 많이 비유를 다음 드는 것이 은행 업무에 관한 예시가 있었다. 동기식 처리는 은행 업무를 한 줄로 서 순서대로 업무를 진행하는 것과 같고, 비동기식은 여러 업무 창에서 일을 분업해서 진행하는 것과 같다고 볼 수 있다. 그럼 정확하게 업무 처리에 대해 확인해 보자. 동기식 처리 (Synchronous) 동기식 처리 모델(Synchronous .. 2020. 7. 26.