분류 전체보기

    [Java] Generic의 컴파일 타임에 일어나는 Type Erasure

    [Java] Generic의 컴파일 타임에 일어나는 Type Erasure

    안녕하세요. 개발자 Jindory입니다. 오늘은 Generic이 컴파일 타임에 동작하는 방식에 대해서 글을 작성해보려고 합니다. [ 글 작성 이유 ] Generic을 공부하는 과정에서 Generic Type Erasure라는 과정에 대해서 정리해보고 싶어서 작성하게 되었습니다. Generic Generic은 타입 안정성을 보장하기 위해 JDK 1.5부터 나온 타입입니다. Java에서 소스코드 컴파일시 타입을 체크해주는 기능입니다. 주로 여러가지 타입을 다루는 클래스나 메소드에 적용하여 사용합니다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안전성을 높일 수 있고, 형 변환의 번거로움을 줄일 수 있습니다. Generic이 나오기 이전에는 아래의 코드처럼 객체를 다룰 때, 특정 타입으로 지정하거..

    [Java] ArrayList 길이가 가변적으로 확장되는 방식(JDK 별)

    [Java] ArrayList 길이가 가변적으로 확장되는 방식(JDK 별)

    안녕하세요. 개발자 Jindory입니다. 오늘은 ArrayList에 item을 추가할때 size가 가변적으로 증가하는 이유에 대해서 작성해보고자 합니다. # 글 작성 이유 개발할 때 자주 사용하는 ArrayList의 사이즈를 정하지 않았는데도, ArrayIndexOutOfboundsexception가 발생하지 않고 사이즈가 가변적으로 증가하는 이유에 대해서 조사해보고자 합니다. ArrayList 초기화 설정 ArrayList는 배열을 사용해 Object 자료형을 담을 수 있는 자료구조입니다. 초기에 설정한 길이만큼만 담을 수 있는 Array와는 달리 크기를 가변적으로 조정하여 지정한 Item를 담을 수 있는 가변배열이라고 할 수 있습니다. 위 코드에서와 같이 Object 자료형 배열을 멤버 변수로 가지고..

    [Java] Java Garbage Collection 동작 과정

    [Java] Java Garbage Collection 동작 과정

    안녕하세요. 개발자 Jindory입니다. 오늘은 Java의 Gabage Collection이란 무엇이고 어떻게 GC가 동작하는지에에 대해서 대해서 알아보고자 합니다. # 글 작성 이유 불필요한 객체를 Gabage Collector가 제거하는데 어떤 프로세스로 메모리 정리를 하는지 이해하고자 이 글로 정리하게 되었습니다. GC란 무엇인가? GC란 Garbage Collection의 약자로 메모리들 중 필요없게 된 영역을 해제하는 기능입니다. Java는 Runtime시 Heap 영역에 객체와 객체 변수, 배열등의 데이터가 할당되어 관리되는데, 이를 정리하지 않으면 메모리가 계속 쌓이게 되어 OutofMemory Exception이 발생하여 다운될 수 있습니다. 그리하여 Memory가 쌓이지 않도록 JVM에서..

    [Java] Java에서 Thread Unsafe한 상황 이해하기

    [Java] Java에서 Thread Unsafe한 상황 이해하기

    안녕하세요. 개발자 Jindory입니다. 오늘은 Java에서 Thread Unsafe한 상황에 대해서 대해서 알아보고자 합니다. # 글 작성 이유 Java의 Mutable, Immutable한 변수에 대해서 공부하다보니, Thread-Safe한것과 Unsafe한것이 어떤것인지에 대해서 궁금하게되어 이 글을 작성하게 되었습니다. 동시성과 Thread Safety의 개념 소개 이번 글에서는 동시성(Concurrency)과 Thread Unsafe의 개념에 대해서 소개하고자 합니다. 동시성이란 여러 작업이 동시에 실행되는것을 의미하며, "여러 Thread가 한 Process의 자원을 공유하며 동작하는 것"이라는 의미입니다. 이때 여러개의 Thread가 작업하면서 공유된 Process의 자원에 동시에 접근하여 ..

    [Java] Mutable Object와 Immutable Object

    [Java] Mutable Object와 Immutable Object

    안녕하세요. 개발자 Jindory입니다. 오늘은 Mutable Object와 Immutable Object에 대해서 알아보고자 합니다. # 글 작성 이유 String과 StringBuffer를 비교할 때 Mutable한 특성과 Immutable한 특정이 언급되어 Mutable Object와 Immutable Object에 대한 특징에 대해서 알아보고자 합니다. Mutable Objec와 Immutable Object란? Mutable이란? 변하기 쉬운이라는 의미 프로그래밍에서는 한번 생성된 이후로 변할 수 있는것을 의미 상태가 자주 변경돼야하는 상황에서 필요(반복문 혹은 Collection) 이미 존재하는 객체에 재할당 Multi-Thread 환경에서 문제가 발생할 수 있음 arrays, ArrayLis..

반응형