컬렉션이란 오라클에서 다음과 같이 정의해 놓았다. A collection is an object that represents a group of objects 즉, 객체들의 집단을 대표하는 객체라고 한다. (객체를 모아둔 자료구조라고 생각하자) . 그럼 컬렉션 프레임워크란 무엇일까? 컬렉션을 표현하고 조작하기 위한 통합 아키텍쳐로, 다양한 데이터 구조 및 알고리즘을 구현하기 위한 인터페이스 및 클래스를 제공한다. 장점 Reduces programming effort 우리는 컬렉션의 디자인에 대해 걱정하기보다 프로그램에서 컬렉션을 잘 사용하는 방법에 대해 집중할 수 있다. Increases program speed and quality 데이터 구조 및 알고리즘의 고성능 구현을 제공한다. 더 많은 장점은 o..
자바의 exception 종류는 다음과 같다. Checked Exceptions Exception 클래스는 Checked Exception이다. Exception 클래스의 자식 클래스인 RuntimeException 을 제외 한 나머지 자식 클래스에서 발생할 수 있는 Exception 에 제한한다. 컴파일러는 컴파일 시점에 해당 Exception을 체크하기 때문에 compile-time exception 이라고도 불린다. 컴파일러는 개발자가 Exception 처리를 했는지 여부를 확인하기 때문에 필수로 해줘야 한다. 그렇지 않으면 컴파일 오류가 발생한다. 예시 컴파일 오류가 발생했다. FileNotFoundException은 IOException을 상속받는데, IOException은 Exception을 ..
Thread를 알기 전에 프로세스(Process)부터 알아보자. 프로세스(Process)란 실행 중인 프로그램(program)이다. 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)를 할당받아 프로세스가 된다. 프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 Thread로 구성되어 있다. 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 Thread이다. 모든 프로세스에는 최소한 하나 이상의 Thread가 존재하며, 둘 이상의 Thread를 가진 프로세스를 멀티쓰레드 프로세스(multi-threaded process) 라고 한다. 상태 NEW Thread가 생성되고 아직 start()가 호출되지 않은 상태 RUNNABLE 실행 중 또는 실행 가능한 상태 BL..
Stack 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 LIFO(Last In First Out)구조로 되어 있다. 구현 방식 class Main { public static void main(String[] args) { Stack stack = new Stack(); stack.push("0"); stack.push("1"); stack.push("2"); while(!stack.empty()) { System.out.println(stack.pop()); //스택에서 요소 하나를 꺼내서 출력 } //결과 2 1 0 } } Queue 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 FIFO(First In First Out)구조로 되어 있다. 자바에서 큐는 인터페이스로만 정의해 놓았을 뿐 별도의 클..
StringBuffer, StringBuilder 클래스는 가변(mutable) 클래스이다. StringBuffer StringBuffer클래스는 가변 클래스이기 때문에, 동일 객체 내에서 문자열 변경이 가능하다. StringBuffer의 인스턴스를 생성할 때, 적절한 길이의 char형 배열이 생성되고, 이 배열은 문자열을 저장하고 편집하기 위한 공간(buffer)으로 사용된다. StringBuffer(int length)를 사용해서 StringBuffer 인스턴스에 저장될 문자열의 길이를 지정할 수 있다. 버퍼의 크기를 지정해주지 않으면 16개의 문자를 저장할 수 있는 크기의 버퍼를 생성한다. 문자열 생성 방식 StringBuffer sb = new StringBuffer("hello"); sb.app..
String 클래스는 불변(immutable) 클래스이다. String 클래스는 문자열을 저장하기 위해서 문자형 배열 참조변수(char[]) value를 인스턴스 변수로 정의해 놓고 있다. 인스턴스 생성 시 생성자의 매개변수로 입력받는 문자열은 이 인스턴스변수(value)에 문자형 배열(char[])로 저장된다. String 클래스는 앞에 final이 붙어 있으므로 다른 클래스의 조상이 될 수 없다. 한 번 생성된 String 인스턴스가 갖고 있는 문자열은 읽어 올 수만 있고, 변경할 수는 없다. '+' 연산자를 이용해서 문자열을 결합하는 경우 인스턴스 내의 문자열이 바뀌는 것이 아니라 새로운 문자열이 담긴 String 인스턴스가 생성된다는 것이다. 덧셈 연산자('+')를 사용해서 문자열을 결합하는 것은..
종류 클래스 변수 (class variable) 클래스 영역에 선언된다. 클래스가 메모리에 올라갈 때 생성된다. 모든 인스턴스가 하나의 저장공간을 공유하므로, 항상 공통된 값을 갖는다. 인스턴스를 생성하지 않고 사용할 수 있으며, 클래스이름.클래스변수 형식으로 사용한다. 인스턴스 변수 (instance variable) 클래스 영역에 선언된다. 인스턴스가 생성되었을 때 생성된다. 인스턴스가 생성될 때 마다 생성되므로 인스턴스마다 각기 다른 값을 유지할 수 있다. 지역 변수 (local variable) 클래스 영역 이외의 영역(메서드, 생성자, 초기화 블럭 내부)에 선언된다. 변수 선언문이 수행되었을 때 생성된다. public class Main { int iv; // 인스턴스 변수 static int ..
Runtime Data Area JVM의 메모리 영역으로, 어플리케이션이 실행할 때 사용되는 데이터들을 적재하는 영역이다. Method Area 모든 쓰레드가 공유하는 메모리 영역이다. 런타임 상수 풀, 필드 및 메서드 데이터, 메서드에 대한 코드와 같은 클래스별 구조를 저장한다. Heap 인스턴스화 된 객체를 저장하는 영역이다. Heap에 있는 객체는 어플리케이션이 실행되는 동안 스레드 간에 공유가 가능하다. Stack 각 스레드들은 자신만의 Stack 메모리를 갖는다. LIFO (Last-In First-Out) 구조를 지닌다. PC Register 스레드(하나의 프로그램 내에서 실행되는 메서드)가 생성될 때마다 생성되는 공간이며, 현재 실행되는 JVM의 명령어 주소를 가지고 있다. Native Me..
기본형 (Primitive type) 실제 값(data)을 저장한다. 특징 기본 값이 있기 때문에 절대 NULL 이 될 수 없다. Stack Memory에 생성된다. 변수가 복사되면 변수의 다른 복사본이 생성되고, 복사된 변수에 대한 변경은 원래 변수에 변경 사항을 반영하지 않는다. 종류 논리형 (boolean) 문자형 (char) 정수형 (byte, short, int, long) 실수형 (float, double) 기본 값 type default bit note byte 0 8 부호를 가진 8비트 정수 short 0 16 부호를 가진 16비트 정수 int 0 32 부호를 가진 32비트 정수 long 0L 64 부호를 가진 64비트 정수 float 0.0f 32 부호를 가진 32비트 부동 소수점 dou..
- Total
- Today
- Yesterday
- 정적변수
- Security
- @conditional
- Hash
- nginx
- AutoConfiguration
- syncronized
- Load Balancer
- 인터페이스
- java
- 자동구성
- nosql
- Spring
- 인스턴스변수
- HashMap
- 로드 밸런서
- 오블완
- fail-safe
- object
- fail-fast
- 티스토리챌린지
- spring boot
- Sticky Session
- 추상클래스
- HashSet
- Red-Black Tree
- 다중화
- JPA
- Caching
- 고정 세션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |