Computer Science/Java

    본격 JVM 해부하기

    🤓 새로운 정보를 찾으면 계속 업데이트 될 글입니다! 자바의 실행 과정 자바는 JVM이 OS로부터 이 프로그램이 필요로 하는 메모리를 할당받는다. 자바 파일이 자바 컴파일러에 의해 자바 바이트 코드(.class)로 변환된다. 클래스 로더를 통해 자바 바이트 코드를 JVM으로 로딩한다. 해석된 바이트 코드는 런타임 데이터 영역에 배치된다. 실행 엔진을 통해 실행된다. JVM은 필요에 따라 GC와 같은 작업을 수행한다. JVM의 구조 클래스 로더 자바는 동적 로드, 즉 런타임에 클래스를 로드하고 링크하는 특징이 있다. 이 동적 로드를 담당하는 부분이 JVM의 클래스로더이다. 로드 우선 클래스 로더는 .class 파일을 읽고, 그 내용에 따라 적절한 바이너리 데이터를 만들고, 메소드 영역에 저장하는 동작을 수..

    JAVA) 스레드

    인하대학교 임광수 교수님 수업과 자료 참고 #프로세스란? : 실행중인 프로그램으로, 디스크에 있는 프로그램이 메모리에 적재되어 운영체제의 제어를 받는 상태이다. : 자신만의 자원을 가지기 때문에 프로세스 끼리는 서로 독립적으로 작동한다.( 프로세스끼리는 정보를 주고받을 수가 없다._=) => 서로 다른 프로세스 간에 데이터를 공유할 때 어떻게 할수 있을지가 이슈로 작용하게 된다. # 멀티태스킹 : 대부분의 운영체제는 시스템 자원을 효율적으로 사용할 수 있도록 멀티태스킹을 지원한다. :멀티코어 cpu라면 실제로 다수의 애플리케이션을 동시에 병렬처리하고, 싱글코어라면 다수의 애플리케이션을 병행처리한다. (멀티 프로세싱/ 멀티 스레드 두가지가 있다.) => 심지어 하나의 애플리케이션에서도 동시에 수행할 수 있..

    JAVA) 이벤트 구동 프로그래밍

    https://coding-factory.tistory.com/262 님 게시글 참고. 인하대학교 임광수 교수님의 수업과 자료 참고. #이벤트의 개념과 처리 과정 => 윈도우 프로그래밍에서 어떤 특정한 행동이 발생한 그 자체를 의미한다. 메뉴를 선택했다던가, 마우스를 클릭하거나, 윈도우의 크기를 조절하는 등의 행위를 뜻한다. 이벤트 소스는 이벤트가 발생할수 있는 대상을 의미하고, 그 대상으로부터 이벤트가 발생하면 발생된 이벤트를 처리해서 결과를 낼 수 있도록 해주는 것을 이벤트 핸들러라고 한다. #자바에서의 이벤트 처리 1. 프로그램이 실행 중에 os가 해당 프로그램에서 이벤트가 발생하는지를 검사한다. 2. 이벤트가 발생되면 운영체제가 jvm 에게 이벤트를 전달하고, jvm은 발생된 이벤트를 처리하기 위..