HashTable란?Key, Value 로 데이터를 저장하는 자료구조내부적으로 배열(버킷) 을 사용하여 데이터를 저장함.실제 값이 저장되는 장소를 버킷 또는 슬롯이라고 함.특징동기화HashTable 의 메소드는 Thread-safe 임. 여러 쓰레드가 동시에 HashTable 을 수정하더라도 데이터의 일관성이 유지됨. 반면에 HashMap 은 Thread-Safe 하지 않음.null 허용 안함.HashTable 은 key 나 value 값으로 null 을 허용하지 않음. key 또는 Value 값으로 null 을 사용하려고 하면 NullPonterException 이 발생함.성능HashTable 의 동기화 특성 때문에 HashMap 에 비해 성능이 떨어질 수는 있음.단일 쓰레드 애플리케이션 또는 멀티쓰레..
전반적인 List 를 다 볼거임ArrayList크기가 가변적인 선형 리스트, 저장용량이 존재함.저장용량을 넘어서면 자동으로 증가시킴.특징연속적인 데이터의 리스트(빈공간이 있으면 안됨.)타입 안정성ArrayList 는 제네릭을 사용하여 타입 안정성을 제공함.ArrayList 은 문자열만 저장할 수 있도록 함.인덱스를 통한 빠른 접근ArrayList 는 인덱스를 사용하여 배열 요소에 빠르게 접근할 수 있음.데이터 검색이나 업데이트 시 유용함.데이터 조작ArrayList 는 요소를 추가, 삭제, 검색, 정렬 등 다양한 방법으로 데이터를 조작할 수 있는 메소드를 제공ArrayList vs 배열배열 장단점장점빠른 데이터 접근 : 배열은 인덱스를 통해 각 요소에 대한..
Final Keyword 란 Java 에서 final keyword 는 유저(사용자) 를 제한한다. final keyword 는 많은 부분에서 사용되는데 final keyword 는 아래 나온 내용에서 사용된다. 변수 메소드 클래스 final keyword 는 변수와 함께 적용될 수 있는데, 값이 없는 final 변수를 공백 final 변수 또는 초기화 되지 않은 final 변수라고 한다. 이때는 생성자에서만 초기화 할 수 있다. public class FinalKeyword{ final String uninitializedValue; FinalKeyWord() { this.uninitializedValue = "Hello World"; } } ... public class FinalKeyWordTest..
Overriding 과 super 부모 클래스로부터 상속받은 메서드의 내용을 재정의(변경) 하는 것 조건 오버라이딩은 메서드를 새로 만드는게 아니고 내용만 새로 작성하는 것 알맹이만 변경한다. 메소드 시그니처 일치 오버라이딩하는 메소드는 슈퍼 클래스에서 선언된 메소드와 동일한 이름, 매개변수 목록 및 반환 유형을 가져야함. 메소드 시그니처가 일치해야만 실제로 메소드가 오버라이딩 되는 것으로 간주함. 접근 제한자 오바리이딩 하는 메소드는 원본 메소드보다 더 제한적인 접근 제한자를 가질 수 없음 ex) 슈퍼 클래스의 메소드가 protected 로 선언되었다면, 서브 클래스의 메소드는 protected 또는 public 이여야함. 반환타입 자바 5 이상에서는 오버라이딩된 메소드의 반환 타입이 원본 메소드의 반..
가상 머신인줄로만 알았다... JVM 이란? Java Virtual Machine 의 줄임말 OS 에 종속 받지 않고 CPU가 Java 를 인식, 실행할 수 있게 하는 가상 컴퓨터 또한 가장 중요한 메모리 관리, Garbage Collection 을 수행한다. 특징 컴파일된 bytecode 를 기계가 이해할 수 잇는 기계어로 변환 스택 기반의 가상머신 => 연산을 실행할 때, 데이터를 임시로 저장하기 위해 스택 자료구조를 활용한다는 의미 메모리 관리와 GC 를 수행 JVM 구조와 작동원리 JVM 구조에는 크게 Class Loader, Runtime Data Area, Execution Engine, GC 로 나누어져 있다. Class Loader : 클래스 파일을 Runtime Data Area의 메서드..
Annotation 이란 사전적 의미로의 주석 일반적인 주석 // 나 /**/ 와는 다름. 코드를 작성할 수 있음. ⭐프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것 다른 프로그램에게 유용한 정보를 제공하기 위해 사용되는 것으로 주석과 같은 의미를 가짐. 역할 컴파일러에게 문법 에러를 체크하도록 정보를 제공함. 프로그램을 빌드할 때 코드를 자동으로 생성할 수 있도록 정보를 제공함. 런타임에 특정 기능을 실행하도록 정보를 제공함. 특징 주석이기 때문에 다이나믹하게 실행되는 코드는 들어가지 않음. 런타임 중에 알아내야하는 값은 못들어감 컴파일러 수준에서 해석되거나, 완전히 정적이여야함. 주요 용도 컴파일러에 대한 지시사항 어노테이션을 사용하여 컴파일러에게 경고를 억제하..
Java Collections Framework(JCF) Java Collections Framework 의 약어 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화 하여 클래스로 구현 Collection => 데이터의 집합이나 그룹 왜 씀? JCF 도입 전 Array, Vectors, Hashtable 이 있었으며, 공통인터페이스가 존재하지 않았음. 각 Collection 마다 사용하는 메소드, 문법, 생성자가 달랐기 때문에 혼동하기 쉬웠음. ... Vector v = new Vector(); Hashtable h = new Hashtable(); v.addElement(); h.put(1,""); 이래..
GC 들어가기 전에 JVM 에서 메모리를 어떻게 보는지 확인해보자. JVM이 보는 메모리... JVM 메모리 영역 일반적으로 애플리케이션에서 사용되는 객체는 오래 유지되는 객체보다 잠시 사용되는 경우가 많음. Young Generation : 새롭게 생성하는 객체들이 존재하는 곳 Old Generation : Young Generation 영역에서 오랫동안 살아남은 객체(가중치) 들이 존재하는 곳 Meta Space : 클래스의 메타데이터, 문자열 정보를 저장하는 영역(JAVA 8 부터) YG 와 OG 로 나눈 이유는 애플리케이션에서의 객체의 수명은 대부분 짧기 때문에 효율적으로 관리하기 위함. JVM 이 메모리를 관리하는 방식 Heap 메모리의 구조 Heap 영역은 처음 설계될 때 다음의 2가지를 전제..
Comment