본문 바로가기
반응형

Java3

JVM 아키텍처 1탄 - Class Loader SubSystem GC에 대해 공부를 하다가 문득 이런 생각이 들었다. 나란 남자 JVM은 빠삭하게 이해하고 있는게 맞는걸까? 누군가 JVM의 아키텍쳐와 메커니즘에 대해 상세하게 설명해달라고 물어보면 눈동자가 흔들리고 자리를 피할 것이다. 그래서 JVM에 대해 좀 딥하게 파보기로 했다. JVM 이란? JVM은 java virtual machine으로, 말 그대로 자바가상머신이다. JVM은 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달하는 역할을 하며 WORA(Write Once Run Anywhere) 한번 쓰면 VM을 통해 어디서나 실행가능한 개념으로 개발되었다. JVM의 역할을 크게 보면 아래와 같다. Bytecode 로드 및 해석 안전성 확보 자동 메모리 관리 그렇다면 JV.. 2021. 12. 8.
Java 직렬화란(Serialization)? 1. 직렬화란? 직렬화(Serialization)는 객체 인스턴스의 데이터를 I/O스트림에 적합한 일련의 데이터로 변환하는 과정이다. 이 과정을 거쳐 파일, 메모리 버퍼, 네트워크 전송을 통해 동일하거나 다른 컴퓨터환경에서 객체 인스턴스를 재구성할 수 있다. 객체 인스턴스는 메모리 주소 값을 저장하고 있기 때문에, 메모리 주소 값을 그대로 송신하면 수신 받는 쪽에서는 아무 쓸모 없는 데이터가 된다. 따라서 객체 인스턴스의 값의 형태로 변환이 필요하다. - 역직렬화란? 역으로 스트림에 입력된 데이터를 읽어서 객체 인스턴스를 생성하는 것. 2. JAVA 객체 직렬화 구현 1) Serializable 구현 클래스 객체의 직렬화를 가능하게 하려면, Serializable이라는 인터페이스를 구현해야 한다. Ser.. 2021. 8. 19.
자료구조 : 자바로 스택(Stack) 구현하기 스택이란 무엇인가. 위와 같이 한쪽이 막혀있는 형태의 자료구조로 생각하면 된다. 따라서 데이터의 삽입과 삭제가 스택구조에서 제일 꼭대기인 "TOP"에서만 이루어 진다. 이러한 특성때문에 제일 처음 들어온 데이터가 제일 마지막으로 출력되며 이것을 First In Last Out => FILO라고 표현하기도 한다. 자바로 구현하기 앞서 객체를 정의해보자. 1. Stack 이라는 객체가 있다. Stack은 "TOP" 즉, 꼭대기의 값을 기억하는 특성이 있다. 그리고 값을 삽입하는 push, 값을 출력하는 pop, 비어있는지 확인하는 isEmpty라는 세 가지 행위를 할 수 있다. 2. Stack 안에는 값을 기억하는 Node라는 객체가 있다. Node의 특성으로는 값을 가지며, 본인보다 바로 아래의 노드의 주.. 2020. 12. 21.
반응형