개발/Java

개발/Java

ThreadLocal

ThreadLocal 쓰레드 로컬은 해당 쓰레드만 접근할 수 있는 특별한 저장소다. 쓰레드 로컬을 사용하면 각 쓰레드마다 별도의 내부 저장소를 제공한다. 따라서 같은 인스턴스의 쓰레드 로컬 필드에 접근해도 문제 없다. 여러 쓰레드가 같은 인스턴스의 멤버 변수에 접근하면 처음 쓰레드가 보관한 데이터가 사라질 수 있는데, 이런 경우 쓰레드 로컬을 사용하면 데이터를 안정적으로 접근하고 사용할 수 있다. thread-A 가 userA 라는 값을 저장하면 쓰레드 로컬은 thread-A 전용 보관소에 데이터를 안전하게 보관한다. thread-B 가 userB 라는 값을 저장하면 쓰레드 로컬은 thread-B 전용 보관소에 데이터를 안전하게 보관한다. 자바는 언어차원에서 쓰레드 로컬을 지원하기 위한 java.lang..

개발/Java

자바 애노테이션

백기선님이 과거에 진행했던 Java 스터디 12주차 스터디 입니다. 애노테이션 정의하는 방법 애노테이션이란 자바 소스 코드에 추가하여 사용할 수 있는 메타데이터의 일종이다. 보통 @ 기호를 앞에 붙여서 사용한다. JDK 1.5 버전 이상에서 사용 가능하다. 자바 애너테이션은 클래스 파일에 임베디드되어 컴파일러에 의해 생성된 후 자바 가상머신에 포함되어 작동한다. 새로운 애노테이션을 정의하는 방법은 아래와 같다. '@' 기호를 붙이는 것을 제외하면 인터페이스를 정의하는 것과 동일하다. 엄밀히 말해서 @Override는 애노테이션이고 Override는 애노테이션의 타입이다. @interface 애노테이션 이름{ 타입 요소이름(); //애노테이션의 요소를 선언한다. .. } 메타 에노테이션이란? 메타 에노테이..

개발/Java

Java I/O

백기선님이 과거에 진행했던 Java 스터디 13주차 스터디 입니다. Stream, Buffer Stream이란? 자바에서 입출력을 수행하려면, 즉 어느 한쪽에서 다른 쪽으로 데이터를 전달하려면, 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데 이것을 스트림이라고 정의한다 스트림이란 데이터를 운반하는데 사용되는 연결통로다 스트림은 단방향통시만 가능하기 때문에 하나의 스트림으로 입력과 출력을 동시에 처리할 수 없다. 그래서 입력과 출력을 동시에 수행하려면 입력을 위한 입력스트림과 출력을 위한 출력스트림, 총 2개의 스트림이 필요하다. 스트림은 먼저 보낸 데이터를 먼저 받게 되어 있으며 중간에 건너뜀 없이 연속적으로 데이터를 주고받는다. 큐와 같은 FIFO구조로 되어 있다고 생각하면 된다. Bu..

개발/Java

Java enum (열거형)

백기선님이 과거에 진행했던 Java 스터디 11주차 스터디 입니다. enum 정의하는 방법 enum(열거형)은 서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할 때 사용하면 유용하다. 열거형을 정의하는 방법은 아래와 같다. enum 열거형이름 { 상수명1, 상수명2, ... } 열거형에 정의된 상수를 사용하는 방법은 '열거형이름.상수명'이다. 클래스의 static 변수를 참조하는 것과 동일하다. enum Direction{ EAST, SOUTH, WEST, NORTH } class Unit{ int x, y; Direction dir; void init(){ this.dir = Direction.WEST; //유닛의 방향을 WEST로 초기화한다. } } 열겨형 상수간의 비교에는 ==을..

Debin
'개발/Java' 카테고리의 글 목록 (3 Page)