전체 글

IE stands for Industrial Engineering, not Internet Explorer ;) 공부한 것을 정리합니다. 가끔 일상도 올려요.
· 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가 해제시켜 주는 것이다...
· Java
Stream이란 - 자바에서의 Stream(스트림)은 원하는 결과를 얻기 위해 다양한 메서드들을 제공하는 객체의 모음이다. - 쉽게 말해 객체를 묶음 단위로 처리하기 위해 사용하는 것이 바로 스트림인 것이다. - Stream API는 자바 8에서 처음 등장했으며, 데이터의 모음(Collection)을 처리하기 위해 사용된다. 기존에도 같은 목적을 가진 Collection 프레임워크를 통해 다수의 데이터를 효과적으로 처리할 수 있었다. 그럼 Collection를 놔두고 굳이 Stream을 사용해야 할 이유가 무엇일까? Stream이 지니는 장점에는 명확하고 읽기 쉬운 코드로 인한 좋은 가독성 등 몇 개의 장점이 있지만, Collection과 비교했을 때 명확한 차별점이자 장점이 존재한다. Collectio..
· Java
intern() intern() 메서드는 문자열을 복사하는 역할을 하는 메서드이다. 무작정 복사하는 것이 아니라, 이미 존재하는 문자열일 경우에는 기존 문자열을 참조하기도 한다. intern() 메서드의 동작 과정은 아래와 같다. 1. intern() 메서드로 호출된 문자열이 String constant pool에 존재하는지 확인 2. String constant pool에 존재할 경우 해당 문자열의 참조를 반환 3. 존재하지 않을 경우 String constant pool에 문자열을 저장하고 pool에 저장한 문자열의 참조를 반환 String constant pool이란? 더보기 문자열 상수 풀 리터럴 문자열을 저장하는 힙 영역 내에 존재하는 특별한 메모리 영역이다. 사용 목적과 이점은 아래와 같다. ..
pseudocoder_
코드깎는 IE