JAVA10 컬렉션 프레임워크 -1 List, ArrayList, LinkedList 컬렉션 프레임워크는 컬렉션, 다수의 데이터를 다루는데 필요한 다양한 클래스들을 제공한다. 또한 인터페이스와 다형성을 이용한 객체지향적 설계를 통해 표준화되어있기 때문에 사용법을 익히기에도 편리하고 재사용성이 높은 코드를 작성할 수 있다는 장점이 있다. Collection인터페이스의 메서드 List : 순서가 있는 데이터의 집합, 데이터의 중복을 허용한다. 예) 대기자 명단 구현클래스로는 ArrayList, LinkedList, Stack, Vector 등이 있다. 이때 ArrayList와 Vector 클래스는 거의 동일하지만, ArrayList는 Thread safe하지 않고, Vector는 Thread safe하다. (Thread safe하지 않다는 것은 객체에 여러 명이 달려들어 값을 변경하려고 하면.. 2023. 6. 11. 자바 8 이후 시간을 다루는 LocalDateTime 클래스와 DateTimeFormatter클래스 날짜와 시간을 알려주고 그것을 원하는데로 볼 수 있게 하는 format형식이다. java 8이전에는 Date클래스와 SimpleDateFormat클래스가 담당했지만 java 8이후에는 더 이상 사용되지 않는다고 한다. java.time 패키지의 LocalDateTime클래스, LocalDate, LocalTime등 더욱 강력한 기능을 가진 인터페이스들이 있다. 예를들어 LocalDateTime클래스와 DateTimeFormatter를 함계 사용하여 날짜와 시간을 포멧팅하고 파싱하는 예시를 보자 import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(.. 2023. 6. 4. 쓰레드의 상태와 제어 쓰레드의 상태 sleep() 메서드 현재 쓰레드를 지정된 시간동안 멈추게 한다. sleep() 쓰레드는 자기자신에 대해서만 멈추게 할 수 있다. interrupt()메서드 이릿정지 상태인 쓰레드를 실행 대기상태로 만든다. 아래 코드를 보면 Thread.sleep메서드로 인해 1초동안 sleep상태가 되도록 설정되어있지만 Thread를 실행하자마자 interrupt를 걸어 runnable상태로 간 것을 알 수 있다. join() 정해진 시간동안 지정한 쓰레드가 작업하는 것을 기다린다. 시간을 지정하지 않았을 때는 지정한 쓰레드의 작업이 끝날때까지 기다린다. 사용방법 Thread thread = new Thread(task, "thread"); Thread.start(); try{ Thread.join();.. 2023. 6. 2. 프로세스와 쓰레드 프로세스 : 운영체제로부터 자원을 할당받는 작업의 단위 쓰레드 : 프로세스가 할당받은 자원을 이용하는 실행의 단위 Code는 Java main 메서드와 같은 코드를 말합니다. Data는 프로그램이 실행 중 저장 할 수 있는 저장공간을 의미합니다. Memory 쓰레드 쓰레드는 프로세스 내에서 일하는 일꾼, 코드 실행의 흐름이라고 생각하면 된다. 쓰레드 생성 프로세스가 작업중인 프로그램에서 실행요청이 들어오는 순간 쓰레드를 만들어 명령을 처리하도록 한다. 쓰레드의 자원 프로세스 안에는 여러 쓰레드들이 있고, 쓰레드들은 실행을 위한 프로세스 내 주소공간이나 메모리공간(Heap)을 공유받는다. 추가로, 쓰레드들은 각각 명령처리를 위한 자신만의 메모리공간(Stack)도 할당받는다. Java프로그램을 실행하면 JV.. 2023. 6. 1. Java.lang 패키지, java,util 패키지에서 자주 사용하는 클래스 코딩테스트를 풀다보면 lang 패키지, text패키지, util패키지 등을 자주 사용하여 효율적으로 코드를 작성하는 것을 보며 패키지내에 자주 사용하는 클래스들과 메서드를 한번 정리하고자 한다. String 클래스 내 자주 사용하는 메서드 charAt(int idx) : char = idx에 해당하는 문자를 char로 변환 contains(char c) : boolean = char가 포함되어있는지 여부 concat(String str) : String = 문자열 뒤 str을 합친다. compareTo(String str) : int = 문자열 비교, 같으면 1 다르면 0 리턴 endWith(String suffix) : boolean = suffix로 끝나는지 여부 startWith(String suf.. 2023. 5. 30. String / StringBuilder / StringBuffer 차이점 & 성능 비교 자바에서는 대표적으로 문자열을 다루는 자료형 클래스로 String, StringBuffer, StringBuilder 라는 3가지 자료형을 지원한다. 하지만 세가지의 사용 용도에 따라 적합하게 사용하는 방법에 대해서 알아보고자 한다. StringBuffer vs StringBuilder 위의 두 클래스는 주로 문자열을 연산(추가/변경)할 때 주로 사용하는 자료형이다. String 자료형만으로도 +나 concat()을 사용하여 연산을 할 수 있다. 하지만 String 자료형을 사용하면 새로운 String 인스턴스를 생성하게 되며 이는 곧 공간의 낭비뿐 아니라 속도도 매우 느려지는 단점이 생기게 된다. 그래서 자바에서는 성능에 관계없이 문자열 연산을 전용으로 하는 자료형을 제공하는데 StringBuffer클.. 2023. 5. 29. 이전 1 2 다음