All

Language/Summary

Thread

ㆍThread - JVM이 시작되면 자바 프로세스가 시작이 됨. 이 프로세스 안에는 적어도 하나 이상의 쓰레드가 수행된다. - 프로세스끼리는 공유되는 자원 없이 각각 따로 메모리를 할당해주어야한다. 즉, 많은 리소스가 필요하지만 쓰레드는 상대적으로 적은 리소스가 필요하다. 따라서, 쓰레드를 '경량 프로세스'라고도 부른다. - 쓰레드를 생성하는 방법에는 크게 Runnable 인터페이스를 구현하는 것과, 이 인터페이스를 구현한 클래스인 Thread 클래스를 상속받는 두가지 방법이 있다. 이들은 모두 java.lang 패키지에 있다. - Runnable 인터페이스나 Thread 클래스를 상속받은 클래스는 run() 메소드를 구현하여 쓰레드 시작 시 수행할 작업을 지정해주어야 한다. 쓰레드의 start() 메소..

Language/Summary

Data Structure#3 - Map, Properties

ㆍMap - List, Set, Queue는 Collection 인터페이스를 구현하지만, Map은 Collection 인터페이스를 구현하지 않는다. - Set의 자료구조는 키(Key), 값(Value)으로 이루어져 있으며, Key의 중복을 허용하지 않는다.(값이 중복되는 것은 전혀 상관없다.) Map 인터페이스의 메소드 put(K Key, V value) : 키, 값이 쌍을 이루는 데이터를 저장. putAll(Map

Language/Java

[Java] 열거형 클래스, Enum

JDK 1.5 부터 도입된 'Enum'은 클래스의 일종으로, 열거형 클래스라고도 불린다. Enumeration(셈, 계산, 열거)이라는 단어의 앞부분을 따서 만들어졌으며, Enum 클래스에 상수를 선언할 수 있고 선언된 상수는 수정이 불가능하다. Enum 선언 Enum은 클래스 외부에도 선언할 수 있고, 클래스 내부에도 선언할 수 있다. 선언 할 때의 방법은 접근제어자 enum "enum클래스 명" 으로 선언하면 된다. 이후 내부에 상수를 선언하는데 상수명을 대문자로 사용하는 것이 관례이며, 콤마 , 로 연결하여 상수를 선언하면 된다. 클래스 내부 public class Cafe { public enum Coffee { // Enum 클래스 선언 AMERICANO, CAPPUCCINO, CAFELATTE..

Language/Java

[Java] 배열에서 ArrayList로, ArrayList에서 배열로 변환하기

자바에는 Collection 인터페이스를 구현하는 List, Set, Queue 계열의 자료 구조가 있다. 이 객체들을 배열로 만들거나, 배열의 데이터를 Collection 자료구조로 변환해야될 상황이 있다. 그 방법에 대해서 알아보자. 배열 -> ArrayList 먼저 ArrayList의 생성자를 살펴 볼 필요가 있다. 두 번째 생성자를 보면, 매개변수로 받은 컬렉션 데이터 목록으로 ArrayList 객체를 생성한다는 것을 알 수 있다. 그렇다면 배열을 컬렉션 자료구조로 바꾸는 방법은 무엇일까? Arrays 클래스의 정적 메소드인 Arrays.asList() 를 사용하면 된다. Array.asList() 메소드는 배열을 List 형으로 반환한다. (Arrays.asList()로 생성된 객체는 데이터 추..

Language/Summary

Data Structure#2 - Set, Linked List

ㆍSet - Collection 인터페이스를 확장하는 Set은 어떤 값이 존재하는지, 아닌지 여부를 따질때 유용하다. - Set의 자료구조는 기본적으로 순서를 따지지 않으며 중복을 허용하지 않는다. HashSet : 순서가 필요없는 데이터를 해시 테이블에 저장한다. 별도의 정렬 작업이 없으며, Set 인터페이스를 구현한 클래스 중 가장 성능이 좋다. TreeSet: 저장한 데이터의 값에 따라 정렬된다. red-black이라는 트리 타입으로 값이 저장되며, HashSet보다 약간 느리다. LinkedHashSet: 연결된 목록 타입으로 구현된 해시 테이블에 데이터를 저장한다. 저장된 순서에 따라 값이 정렬된다. HashSet, TreeSet 보다 더 느리다. ㆍHashSet - Object -> Abstr..

Language/Java

[Java] 자바 인터페이스(interface), 추상 메소드

자바의 인터페이스는 객체 지향의 핵심 개념인 추상화를 가장 잘 나타내는 개념이다. 설계시 인터페이스를 먼저 작성하면 어떠한 메소드를 구현해야 하는지, 매개 변수의 이름을 어떻게 할지를 일일이 고민하지 않아도 된다. 따라서, 어느정도 정형화된 개발이 가능해진다. 그리고 인터페이스와 같이 구현의 성질을 가지는 추상 메소드도 함께 활용한다면 선언과 구현을 구분하여 개발할 수 있다. 또한, 구체 클래스가 아니라 인터페이스의 개념인 추상화에 의존하게 함으로써 여러가지 이점을 얻을 수 있다. 인터페이스(Interface) 인터페이스 선언 방법 인터페이스의 선언 방법은 다음과 같다. public interface 인터페이스명{ } 다음과 같이 public interface "인터페이스명"으로 선언하면 된다. 인터페이..

KAispread
'분류 전체보기' 카테고리의 글 목록 (18 Page)