2022/01
29편. 스레드(Thread) (2)
29편. 스레드(Thread) (2)
2022.01.27경쟁 상태(race condition) wait() & notify() wait() 메서드를 호출한 스레드는 획득한 락을 포기하고 대기 상태에 들어가며 다른 스레드가 동일한 객체의 락을 얻은 뒤 notify()나 notifyAll() 메서드를 호출할 때까지 깨어나지 않습니다. 주의하실 점은 락을 얻지 않은 상태에서 wait(), notify(), notifyAll() 메서드를 호출하면 IllegalMonitorStateException 예외가 발생합니다. 다른 스레드보다 락을 빠르게 얻기 위해서 경쟁 중인 스레드는 EntryList에 있습니다. 그 중 한 스레드가 객체의 락을 얻어서 실행 상태로 들어갔다가 wait() 메서드를 만나면 락을 포기하고 대기 상태로 들어가 WaitSet으로 이동합니다. 그리고..
정리. 프로세스(Process)
정리. 프로세스(Process)
2022.01.24이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
정리. JVM의 힙 영역 살펴보기
정리. JVM의 힙 영역 살펴보기
2022.01.22이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
정리. SOLID 원칙
정리. SOLID 원칙
2022.01.21이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
14편. 문자열(String)
14편. 문자열(String)
2022.01.15String 클래스를 사용하면 아래와 같이 일련의 문자를 나타내는 문자열 리터럴을 담을 문자열 객체를 생성할 수 있습니다. 어렴풋이 짐작하신 분들도 있겠지만 문자열 리터럴은 큰따옴표(")로 둘러싸서 표현합니다. 소괄호 안에 들어간 문자열 리터럴은 생성자로 넘어가는데, 아직은 생성자를 배우지 않았으므로 가볍게 보고 넘어가주세요. 덧붙여서, 문자열을 저장할 때 아래와 같은 방법은 잘 사용하지 않습니다. 그 이유는 곧 밝혀집니다. String a = new String("Hello"); 아래와 같은 방식으로도 문자열 리터럴을 저장할 수 있습니다. 문자열이 상당히 많이 사용되기 때문에 특별하게 문자열에만 적용되는 규칙들이 많은데, 그 중에 하나가 아래와 같은 방식으로 문자열을 저장할 수 있다는 것입니다. 위의 ..
번외. JVM의 구조 살펴보기
번외. JVM의 구조 살펴보기
2022.01.12이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
번외. 컴퓨터에서 음수를 표현하는 방법
번외. 컴퓨터에서 음수를 표현하는 방법
2022.01.06컴퓨터는 0과 1의 이진수만 이해할 수 있는데, 이런 컴퓨터 세계에선 음수를 어떻게 표현할까요? 컴퓨터에서 음수를 표현하는 방법은 부호 절댓값 방식(signed magnitude), 1의 보수, 2의 보수와 같이 크게 세 가지가 있습니다. 먼저 부호 절대값 방식부터 알아보도록 하겠습니다. 부호 절댓값 방식 부호 절댓값 방식은 0과 양수, 음수를 표현할 수 있는 가장 단순한 방법입니다. 이 방식은 최상위 비트로 부호를 표현하고, 나머지 비트로 해당 정수의 절댓값을 나타냅니다. 여기서 최상위 비트(Most Significant Bit, MSB)를 부호 비트로 쓰면서 표현할 수 있는 절댓값의 범위는 절반으로 줄어들게 됩니다. 최상위 비트가 0이면 양수라는 뜻이고, 1이면 음수라는 뜻입니다. 문제점 하지만 이 ..