본문 바로가기

programming/java9

[java] StringBuilder, StringBuffer의 차이 String객체에 문자열을 추가하고자 할 때는 3가지 방법이 있다.String 객체간의 단순한 append 연산StringBuilder 클래스 사용StringBuffer 클래스 사용String append이 경우는 단순히 + 연산자 오버라이딩된 메서드를 통해 append가 수행된다. 이러한 연산은 string 객체 2개를 메모리에 할당하게 되기 때문에 심각한 메모리 문제로 번질 수 있다고 하지만, jdk 1.5 버전 이후 부터는 내부적으로 StringBuilder를 통해 append된다하여 성능 면에서는 크게 상관이 없다고는 한다. 다만 String은 heap 공간에 생성되었을 시 한번 생성된 객체의 내용을 수정할 수 없는 immutable class이기 때문에 메모리 이슈를 해결하지는 못하는 것 같다... 2017. 6. 1.
[java]thread Thread 생성과 실행Thread 클래스로부터 직접 생성Runnable 인터페이스를 implements한 클래스를 Thread 생성자의 매개값으로 전달한다class Task implements Runnable{} Thread t1= new Thread(new Task()); t1.start();Thread 하위 클래스로부터 생성Thread 클래스를 상속해서 바로 run()을 구현해서 실행class Task2 extends Thread{} Task2 t1= new Task2();비교implements를 통한 Thread 생성은 다중상속이 가능하지만, extends를 활용한 Thread 생성은 다중상속이 불가능하기 때문에 Thread 상속을 활용한다면 추가적인 클래스 상속이 불가능하다. 따라서 추가적인 상.. 2017. 6. 1.
[java] Collection Collection Java에서 기본적인 자료구조 제공을 위한 환경을 일컫는 것을 Java collection Framework라고 한다. 그 중 Collection은 자료의 순서나 집합적인 저장공간을 구현하고자 할때 활용할 수 있는 인터페이스이며 Map은 key, value 한 쌍으로 데이터를 다루고자 할 때 활용할 수 있는 인터페이스이다. 모든 collection들에서 공통적으로 활용되는 add(), contain(), size()와 같은 핵심 메서드가 Collection 인터페이스에 선언이 되어 있으며 하위의 List, Set 인터페이스는 Collection 인터페이스를 상속받는다. 위 그림은 Collection의 상속, 구현관계를 알 수 있는 diagram이다. List List Interface.. 2017. 5. 15.
싱글톤(Singleton) 가끔 프로젝트를 진행함에 있어서 하나의 객체만 활용하고 더이상의 객체를 생성할 필요가 없을 때가 있다. 기존의 사용하던 방법은 주구장창 클래스의 인스턴스를 생성할 수 있었기 때문에 이러한 생성을 제한할 방법이 없다. 그럴 경우 적용할 수 있는 디자인 패턴이 바로 싱글톤(Singleton)이다. 싱글톤의 구조 예제 코드 package javaexp; class SingleWoman{ // 동일한 instance인지 확인하기 위함 private int num01; // 싱글톤을 하기위해 필드로 객체 생성 private static SingleWoman singleWm= new SingleWoman(); private SingleWoman(){} static SingleWoman getInstance(){ r.. 2017. 5. 11.