Today's special moments become memories of tomorrow.

자바 3

[java] 스레드(thread)

스레드(thread)란, 프로세스 내에서 실행되는 하나의 실행 흐름 단위를 말한다. 멀티 스레딩은 프로세스 내에 여러 스레드가 동시에 작업을 수행하는 것을 의미한다. 자바에서 스레드는 자바 가상 머신(JVM)에 의해 스케줄링 및 관리된다. 스레드의 생명주기를 비롯해 스레드 개수, 스레드 간의 우선순위 등을 JVM이 관리한다. 자바에서 개발자가 스레드를 생성하는 코드를 작성하면, JVM은 스레드를 생성한다. 스레드 구현 자바에는 스레드를 구현하는 두 가지 방법이 있다. 1. java.lang.Thread 클래스 상속 2. java.lang.Runnable 인터페이스 구현 1. Thread 클래스 상속 Thread가 클래스이므로 extends 키워드를 이용하여 상속한다. Thread 클래스를 상속하면 run..

JAVA 2021.04.15

[java] HashMap, TreeMap, LinkedHashMap

Map은 key와 value 쌍으로 이루어져 key를 통해 원하는 데이터(value)를 찾는 자료 구조이다. 자바에서는 Map 인터페이스를 제공하고, 이 인터페이스를 상속받는 3가지 클래스가 존재한다. 바로 HashMap, TreeMap, LinkedHashMap이다. HashMap 보통 자바에서 Map을 사용하면 HashMap을 가장 흔하게 사용한다. HashMap은 해싱 테이블을 통해 데이터를 저장하는 방식이다. 따라서 HashMap은 검색 속도가 O(1)으로 매우 빠르다는 장점이 있다. 따라서, Map에 포함된 key들의 순서가 중요하지 않다면 HashMap을 사용하는 것이 유리하다. TreeMap 이진 검색 트리(Binary Search Tree)를 통해 데이터를 저장하는 방식이다. 어떠한 데이터..

JAVA 2021.04.14

[java] String, StringBuffer, StringBuilder

자바에서 문자열을 나타낼 때 String, StringBuffer, StringBuilder 3가지 클래스를 사용할 수 있다. 하지만 이 3가지는 약간의 차이가 존재한다. String 가장 기본적인 문자열 클래스이다. String str = "Hello"; 를 선언하면 str는 참조변수로써 "Hello"가 존재하는 주소를 가리킨다. String 클래스는 기본적으로 Immutable이다. Immutable 객체란, 변하지 않는 객체임을 의미한다. 예를 들어 String str = "Hello"; 라고 선언한 후, 기존의 "Hello" 문자열 뒤에 "World" 를 추가하고 싶은 경우, str = str + "World"; 을 실행하면 문자열 뒤에 "World"를 추가할 수 있게 된다. String str ..

JAVA 2021.04.02