Synchronize, Volatile, Atomic Type과 CAS
Synchronize, Volatile, Atomic Type과 CAS atomic Type과 CAS는 무엇이고 언제 사용되는 것인가? 왜 사용하는지? ReentrantLock 을 사용하는 방법과 차이점 멀티 스레드에서 동시성 문제 멀티 스레드 환경에서 스레드들이 공유 자원에 대해 접근하여 수정하려 한다면 다른 스레드가 저...
Synchronize, Volatile, Atomic Type과 CAS atomic Type과 CAS는 무엇이고 언제 사용되는 것인가? 왜 사용하는지? ReentrantLock 을 사용하는 방법과 차이점 멀티 스레드에서 동시성 문제 멀티 스레드 환경에서 스레드들이 공유 자원에 대해 접근하여 수정하려 한다면 다른 스레드가 저...
제네릭 다양한 타입의 객체들을 다루는 메서드나 클래스에 컴파일 시 타입 체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 타입 캐스팅을 제거할 수 있다. 제네릭 예시를 통해 살펴보자. #### 제네릭 사용 전 #### List myIntList = new LinkedList(); // 1 myIntL...
Map (HashMap, LinkedHashMap, TreeMap) Map 인터페이스는 Collection 인터페이스와는 다른 저장 방식을 가진다. 자바는 java.util.Map<K,V> 인터페이스를 제공하며 키/값 모두 반드시 참조형이어야한다. Map<K,V> 인터페이스 키를 값에 매핑하는 객체이며 Map...
List (ArrayList, LinkedList) 저장된 요소들의 순서가 있고 데이터에 중복이 가능하다. 자바에서는 리스트를 ArrayList와 LinkedList 두가지 기본 형태로 나타낸다. List 구현체 1. ArrayList Resizable한 List 인터페이스의 구현체이다. 배열의 최대 크기만큼 원소를 추가할 ...
예외 예외(Exception)란 입력 값에 대한 처리가 불가능하거나, 프로그램 실행 중에 참조된 값이 잘못된 경우 등 정상적인 프로그램의 흐름을 어긋나는 것을 말한다. 에러(Error)는 시스템에 비정상적인 상황이 발생한 경우에 사용된다. 예외 구분 자바에는 크게 세종류의 예외가 존재하며 각각의 특징은 다음과 같다. Error 응용 ...
어노테이션 (메타데이터) 클래스나 메소드 등의 선언 시에 @를 사용하는 것을 말한다. 실제 코드에 직접적인 영향을 주지 않고, 해당 코드를 처리하는 Compiler , Interpreter 혹은 Runtime에서 JVM에게 처리를 위한 정보를 제공할 수 있다. @Override 해당 메소드가 부모 클래스에 있는 메소드를 상속받았다는 것을 명시...
추상클래스와 인터페이스 추상클래스 추상클래스란 미완성된 클래스로 abstract 키워드로 선언된 클래스이다. 한 개 이상의 추상 메소드를 포함하는 경우 반드시 추상 클래스로 선언해야 한다. 추상 메소드가 없어도 abstract 키워드를 통해 추상 클래스를 선언할 수 있다. 추상 메소드(Abstract Method) abstract 키...
열거형 클래스 enum 어떤 클래스가 상수만으로 만들어져 있을 경우 class로 선언하는 것이 아닌 열거형으로 선언을 하면 이 객체는 상수의 집합이라는 것을 명시적으로 나타낸다. 열거형이 가지는 값만 관리하는 것이 아니라 타입까지 관리하기 때문에 논리적인 오류를 줄일 수 있다. 특징 모든 Java의 enum들은 암시적으로 java.lang....
BigDecimal float과 double은 그 값의 정확성을 보장할 수 없으므로 정확한 계산이 요구될 때는 java.math.BigDecimal 클래스를 사용해야한다. BigDecimal 은 변경할 수 없으며 (= immutable 하며) 임의의 정밀도 와 부호를 가진 십진수이다. BigDecimal 은 불변 객체이기 때문에 연산 결과...
클래스 클래스는 객체지향 프로그래밍에서 객체를 정의해주는 틀이라고 생각하면 된다. 즉, 객체의 속성과 기능을 하나로 묶어놓은 틀이다. 자바에서 클래스는 필드, 생성자, 메소드로 구성된다. 필드(멤버 변수) : 객체지향에서 속성에 해당하며 멤버 변수라고도 한다. 생성자 : 변수에 초기값을 대입하여 사용하듯 클래스에도 동일한 형식으로 생성해...