key : value 쌍으로 존재둘 중 하나만 존재할 수 없음key는 해당 Map에서 unique해야만 함value는 중복되어도 상관XHashMap가장 많이 사용TreeMapLinkedHashMapHashTableMap과 다름HashTable은 JDK 1.0부터 있었던
Thread는 실행 단위로 볼 수 있다‘경량 프로세스’라고도 함1개의 process 안에 여러 개의 thread가 있다즉, 하나의 프로세스 안에서 여러 개의 실행 가닥이 있다단일 thread보다 다중 thread가 빠름생성될 때마다 별도의 stack이 할당된다java
클래스 인스턴스final class는 Method 영역에 저장…배열신규 객체즉, \*\*new\*\* 를 통해 생성된 객체가 저장되는 영역Young GenerationEdenSurvivor 1Survivor 2Old GenerationPermanent Generatio
메모리 할당사용 중인 메모리 인식사용하지 않는 메모리 인식Eden 영역이 꽉 차게 되면 시작되는 GCYoung generation에서 발생하는 GC과정Eden이 처음 꽉 차게 되면 Minor GC 이후 살아남은 객체들 S0로 이동(S0로 가정)S1은 emptyS0에 들
오늘 알아볼 내용은 1\. Error와 Exception이 무엇인지2\. Checked Exception과 Unchecked Exception의 차이는 무엇인지자바 프로그램 밖에서 발생한 예외 → 시스템이 종료되어야 할 수준서버의 디스크 고장메인보드 고장 → 개발자가
java 7에서 도입된 try-catch-finally를 개선한 문법사용 후 반납해야 할 자원들은 Closeable 인터페이스를 구현했고, 무조건 사용 후에 close() 메서드를 호출해야 한다호출하지 않으면 거의 장애 발생!!!개발자가 실수로 close() 호출하지
오늘 알아볼 내용은1\. 시간 복잡도, 공간 복잡도 정의2\. Big-O Notation알고리즘을 프로그램으로 실행해 완료하는 데까지 소요되는 시간시간 복잡도 = 프로그램 컴파일 시간 + 실행 시간컴파일 시간은 프로그램 특성과 큰 관련 없음 → 고려 안해도 된다실행 시
Array와 ArrayList는 무엇이 다르고, ArrayList는 어떻게 배열의 크기를 동적으로 늘리는지, grow() 메서드를 통해 알아보자동일한 타입의 값들을 하나의 묶음으로 저장한 자료 구조처음에 선언한 배열의 크기(길이)를 변경할 수 없다데이터 크기가 정해져
key와 value로 짝지어 저장이 set를 하나의 Node로 본다이 Node의 배열이 곧 HashMap이다key값은 고유데이터 넣은 순서 보장 X초기 HashMap의 용량 = 버킷 갯수를 의미미리 잘 설정해놓으면 rehashing이 일어나지 않음DEFAULT_INIT
이 내용을 정독하면 객체 지향의 4대 특성에 대한 오해가 풀리고 완벽히 이해할 수 있다우리가 알고 있는 붕어빵틀과 붕어빵 비유, is a 관계 등 잘못된 비유와 모호한 표현들을 바로 잡자!!!기계에 맞춰 절차적으로 프로그래밍하지 않고 사물을 인지하는 방식대로 프로그래밍
process 내에서 실행되는 여러 흐름의 단위CPU 수행의 기본 단위스케쥴링의 대상이라는 말 (그 중에서 kernel thread가 scheduling 대상)process의 address space를 공유한다Code, Data, Heap 영역 공유각 thread는 개
해당 변수를 main memory에 저장하고 읽어오겠다고 명시하는 키워드volatile 키워드로 선언한 변수는 모든 읽고 쓰기를 cpu register(cpu cache)에 하지 않고 바로바로 main memory에 하겠다!!!volatile 변수 값 읽을 때, CPU
Compare-And-Swap의 약어로, 멀티 쓰레드 환경에서 발생하는 동기화 문제를 해결하기 위한 알고리즘\- 현재 쓰레드에 저장된 값과 메인 메모리에 저장된 값을 비교해서 일치하는 경우, 새로운 값으로 교체하고, 일치하지 않으면 재시도 진행위 과정이 하드웨어적으로