카테고리: Java

Java MultiThread(멀티스레드) 고려사항

1. Multi Thread 고려사항 MultiThread를 구현하는 대표적인방법은 두가지가 있습니다. java.lang.Thread 클래스를 상속받아서 구현하는 방법 java.lang.Runnable 인터페이스를 구현해서 개발하는 방법 Field Member 필드의 의미는 클래스에 변수를 정의하는 공간을 의미합니다. 하지만, 객체가 여러 스레드가

Java Wrapper Class, Auto Boxing

1. Wrapper Class Wrapper Class란? 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어집니다. 대표적으로 기본 타입은 char, int, float, double, boolean 등이 있고 참조 타입은 class, interface 등이 있는데 프로그래밍을 하다 보면 기본

Java 클린코드 매직넘버 이슈 및 final 키워드

1. 매직넘버를 직접 작성하는것을 지양하라 소스코드를 보다보면 특정한 숫자 매직넘버(Magic Number)를 직접 작성하는 나쁜 스타일의 코드를 볼 수 있습니다. 만약에 캐싱으로 캐싱값들을 강제로 업데이트하는 로직이 있다고 가정해보겠습니다. 여기에서 캐시에 대한 시간값을 지정했다고 가정하면 다음과 같이 코드를 작성하는것이 올바른 코드 일까요? 아닙니다.

Effective Java 3/E Item 55 옵셔널반환은 신중히 하라

1. 옵셔널반환은 신중히 하라 자바 8전에는 메서드가 특정조건에서 값을 반환할 수 없을때 취할 수 있는 선택지가 두가지가 있었다. 예외를 던지거나 null을 반환하는것입니다. 예외 예외의 경우는 스택 추적 전체를 캡처하므로 비용이 만만치 않습니다. null 반환 null은 반환하면 이런 문제가 생기지 않지만 null을 반환할 수 있는 메서드를 호출

오버로딩(overloading)과 오버라이딩(overriding), 접근제어자(Access Modifier)

1. 오버라이딩(Overriding) 자바의 경우는 오버라이딩 시 동적바인딩되며 상위 클래스 혹은 인터페이스에 존재하는 메소드를 하위 클래스에서 필요에 맞게 재정의하는 것을 말합니다. 2. 오버로딩(Overloading) 메소드의 이름과 return 타입은 동일하지만, 매개변수만 다른 메소드를 만드는 것을 말합니다. 오버로딩은 다른 시그니쳐를 만들며 정

Java Generic(제네릭)

1. Generic(제네릭)이란? 제네릭은 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어듭니다. 타입 안정성을 높인다는 것은 의도 하지 않은 타입의 객체가 저장되는 것을 막고 저장된 객체를 꺼내올 때 원래의 타

Java Annotation(어노테이션)

1. Java Annotation Java 어노테이션은 JEE5부터 추가된 문법이며 기본적으로 인터페이스입니다. 사전적정의로는 주석이라는의미를 가지고 있고 특수한의미를 부여하거나 기능을 주입하면서 컴파일타임 시점이나 런타임시점에 해석됩니다. 기존의 xml의 불편함을 개선하기위해서 나오게된 Annotation(어노테이션) 이라고생각하면 됩니다. 2. Bu

Java Collection(컬렉션)

1. Java Collection(컬렉션) Java Collection(컬렉션)은 크게 List, Map, Set 인터페이스를 기준으로 구현체가 존재하며 Stack, Queue 인터페이스도 존재하게 됩니다. 컬렉션이 배열과 다른점? 컬렉션과 배열은 둘 다 개체에 대한 참조를 보유하고 그룹으로 관리 할 수 ​​있다는 점에서 유사합니다. 그러나 Arra

Java JVM(Java Virtual Machine) & GC(Garbage Collection)

1. JVM(Java Virtual Machine) JVM을 살펴보기전에 Java에서 사용되는 용어들을 정리하고 진행하겠습니다. JDK: Java SE Development Kit 자바 개발 키트, JRE+컴파일러, 디버거 등의 개발도구 JRE: Java SE Runtime Environment 자바 구동 환경, JVM+시스템 라이브러리 JVM