Java 관련 기초 지식들
Enum은 관련이 있는 상수들의 집합이다 C / C++ 은 #ifdef, #ifndef로 특정 코드를 선택적으로 컴파일할 수 있는 전처리기가 있는 반면, 자바는 없다 Java의 String class는 Immutable 한 클래스이다. 따라서 한 번 문자열을 생성하면 문자열의 값을 바꾸는 것은 불가능하다 따라서 replace, replaceAll, toLowerCase등의 메소드는 모두 기존의 문자열은 그대로 두고 새로운 문자열을 리턴한다. 문자열 병합은 StringBuilder (혹은 StringBuffer) 클래스의 append 메소드를 통해 이루어진다 StringBuffer는 멀티 쓰레드 세이프하고, 이때문에 초창기 자바는 StringBuffer를 사용했는데, .append 메소드는 매번 락을 잡았다 풀었다 하였기 때문에 심각한 속도 저하의 원인이 되기도 했었다 Java static 은 '딱 한번만' 메모리 공간에 할당한다 싱글톤 패턴이란 어떤 클래스가 오직 하나만의 객체를 갖도록 하고 프로그램 전반에 그 객체 하나만 사용하는 것이다 멀티쓰레드 환경에서의 올바른 싱글톤 public class Singleton { private SingleTon() {} public static Singleton getInstance() { return LazyHolder.INSTANCE; } private static class LazyHolder { private static final Singleton INSTANCE = new Singleton(); } } - 싱글톤 클래스에는 LazyHolder 클래스의 변수가 없기 때문에 Singleton class 로딩 시 LazyHolder 클래스를 초기화하지 ...
댓글
댓글 쓰기