Java

· Java
Reflection Reflect: 1. (거울·유리·물 위에 상을) 비추다 2. (빛·열·음을) 반사하다, 반향을 일으키다 반사체라는 뜻을 지니는 Reflection은 무엇을 반사한다는 것일까? JVM에서 자바 애플리케이션을 실행하기 위해서는 소스 코드가 컴파일러를 통해 바이트 코드로 변환되고, 변환된 바이트 코드는 클래스 로더를 통해 JVM 내부의 메모리 영역에 저장되는 과정을 거친다. 과정을 거치며 Method Area에 클래스의 필드, 메서드, 인터페이스 등의 메타 정보가 저장되게 된다. Reflection은 바로 해당 JVM 내의 메서드 영역의 데이터를 참조하여 클래스를 참조하고 검사하는 기능이다. 컴파일 하기 전에 소스 코드가 클래스라면 컴파일 후에 Method Area에 저장된 해당 클래스의..
· Java
Inheritance(상속) Composition: the nature of something's ingredients or constituents; the way in which a whole or mixture is made up. 구성. 어떤 것을 이루는 재료나 구성요소를 뜻함. 자바에서의 상속(Inheritance)이라고 하면 extends를 이용하여 자식 클래스가 부모 클래스를 상속받고, 상속받은 부모클래스의 메서드를 오버라이딩(overriding)을 통해 재정의하는 예시가 있다. 상속을 통한 코드 재사용성(중복 감소 및 유지보수 편리), 다형성(Polymorphism)(높은 코드 유연성 및 추상적 코드), 확장성(쉬운 기능 확장), 추상화와 캡슐화(응집도 증가 및 결합도 감소) 등의 장점들이 ..
· Java
Intrinsic : belongs naturally, essential 이전의 Thread 포스트를 통해 자바에서의 스레드 동기화가 왜 필요한지, 또 어떻게 수행하는지에 대해 알아보았다. 자바의 멀티스레딩에서는 여러 스레드가 하나의 공유자원에 접근하여 작업을 수행하게 된다. 스레드 간에 작업을 통해 발생하는 변경사항이 공유자원에 반영되지 않은 채로 작업이 반복되면 데이터의 일관성을 해치고 스레드 간 작업을 통해 원하는 결과와는 다른 결과가 도출되게 된다. 이를 막기 위해서 존재하는 것이 스레드 동기화이다. Intrinsic Lock 동기화를 위한 자바의 lock의 종류 중 하나인 Intrinsic Lock에 대해 알아보자. 모든 자바 객체는 lock을 지니며, 각 객체가 지니는 lock은 고유 락(in..
· Java
Object 클래스란 Object 클래스는 자바의 클래스 계층의 뿌리이다. Object 클래스는 자바 클래스들의 조상이라고 할 수 있다. 명시적으로 Object 클래스를 import 하지 않더라도 이미 Object 클래스는 import가 되어 있다. 그렇기 때문에 Object 클래스에 속하는 클래스 및 메서드들은 import 없이 사용이 가능하다. java.lang 패키지 Object.lang 패키지는 Object 클래스에서 가장 기본적인 동작을 수행하는 클래스들을 모아놓은 패키지이다. 이번 포스팅에서 다룰 Object 클래스 또한 java.lang 패키지에 속하는 클래스이다. Object 클래스가 별도의 import 과정 없이 사용 가능한 것도 Object 클래스가 속하는 java.lang 패키지가 i..
· Java
Thread란작업의 단위. 작업을 실행하는 주체   프로세스프로세스는 프로그램을 실행 중인 프로그램을 뜻한다. 프로세스는 컴퓨터의 OS에 의해 CPU를 할당받아 동작한다.  스레드이러한 프로세스를 구성하는 것이 스레드이다. 모든 프로세스 내에는 하나 이상의 스레드가 존재한다.두 가지 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 한다.  Thread 구현스레드 구현 방법에는 Runnable 인터페이스 구현, Thread 클래스 상속 두 가지가 있다.두 방법 모두 run 메서드를 오버라이딩 하는 방식이다.  Runnable 인터페이스 구현123456789    // Runnable 인터페이스 구현    class RunnableThread impleme..
· Java
Garbage Collection: JVM에서 동적 할당한 메모리 중, 사용하지 않는 메모리 객체를 메모리에서 주기적으로 삭제하는 행위 자바 애플리케이션을 실행할 때 사용되는 데이터를 적재하는 메모리 영역인 Runtime Data Area는 총 5가지 영역인 Heap Area, Stack Area, Native Method Area, PC Register, Method Area으로 나뉜다. 그 중 가비지 컬렉션이 담당하는 영역은 Heap Area로 클래스, 인스턴스, 배열 타입 등의 Reference Type의 데이터가 저장되는 곳이다. GC(Garbage Collection)는 Heap 영역 내에서 더 이상 사용되지 않는 데이터에 할당된 메모리를 Garbage Collector가 해제시켜 주는 것이다...
pseudocoder_
'Java' 카테고리의 글 목록