[Java] 컬렉션 프레임워크 - List, Set
2022. 8. 14. 00:27
개발/JAVA
컬렉션 프레임워크? - 컬렉션 (객체의 저장) + 프레임워크(사용방법을 정해둔 라이브러리) - 자바가 널리 알려져 있는 자료구조를 사용해 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 인터페이스와 구현클래스를 java.util패키지에서 제공하는 것들 - 컬렉션 프레임워크의 주요 인터페이스로 List, Set, Map이 있다 List - 배열과 비슷하게 객체를 인덱스로 관리한다. - 배열과의 차이점은 저장용량이 자동으로 증가하며, 객체를 저장할 때 자동 인덱스가 부여됨 - 리스트 컬렉션은 객체 자체를 저장하는 것이 아니라 객체의 번지를 참조 - 동일한 객체를 중복 저장할 시 동일한 번지를 참조 - null또한 저장이 가능하나, 객체를 참조하지 않는 인덱스 List컬렉션에서 공통적으로 사용가능한 Lis..
[Java] 스레드 제어
2022. 7. 27. 07:03
개발/JAVA
스레드 상태? 스레드 객체를 생성하고 start() 메소드를 호출하면 바로 실행되는 것이 아니라 실행 대기 상태가 된다. 운영체제는 실행 대기 상태에 있는 스레드 중 하나를 선택해 실행 상태로 만든다. 실행 대기 상태에 있는 스레드 중 OS는 하나의 스레드를 선택하고 CPU(코어)가 run() 메소드를 실행하도록 한다 이 때를 실행(running)상태라고 부른다 실행상태의 스레드는 run()메소드를 모두 실행하기전 다시 실행대기상태로 돌아갈 수 있으며, 실행대기 상태에 있는 다른 스레드가 선택되어 실행상태가 될 수도 있다. 이렇게 실행 대기, 실행 상태를 번갈아가며 run()메소드를 실행한다. 실행상태에서 run()메소드가 종료되면 더 이상 실행할 없기 때문에 스레드의 실행은 멈추게되고 이 상태를 종료(..
[Java] 멀티 스레드2
2022. 7. 26. 07:05
개발/JAVA
지난시간 복습 >> 스레드(thread)? - 프로세스 내부에서 코드의 실행 흐름 프로세스? - 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 실행 - 실행중인 하나의 애플리케이션 Thread 하위 클래스로부터 생성 작업 스레드가 실행할 작업을 Runnable로 만들지 않고 Thread하위클래스로 정의해보자 import java.awt.Toolkit; public class BeepThread extends Thread{ @Override public void run() { Toolkit toolkit = Toolkit.getDefaultToolkit(); for (int i = 0; i < 5; i++) { toolkit.beep(); try {Thread.sleep(500);}..
[Java] 멀티 스레드 1
2022. 7. 25. 07:05
개발/JAVA
스레드(thread)? - 프로세스 내부에서 코드의 실행 흐름 프로세스? - 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 실행 - 실행중인 하나의 애플리케이션 multi? 운영체제는 두 가지 이상의 작업을 동시에 처리하는 멀티태스킹 을 할 수 있도록 CPU및 메모리 자원을 프로세스마다 적절히 할당해주고 병렬로 실행시켜준다. ex) 미디어 플레이어로 음악을 들으며 워드로 문서작업, 게임을 하면서 카카오톡 채팅 다만 멀티태스킹은 항상 멀티프로세스를 뜻하는 것은 아님 한 프로세스내에서 멀티태스킹이 가능하기도 하다 ex) 카카오톡으로 메신저를 하면서 파일전송, 미디어플레이어로 노래감상하며 동영상재생 이렇게 하나의 프로세스 내에서 두 가지 이상의 작업 처리하는것을 멀티스레드로 동작한다 라..
[Java] java.util 패키지 내 Date, Calendar 클래스
2022. 7. 21. 06:51
개발/JAVA
java.util 패키지 - 프로그램 개발에서 자주 사용되는 자료구조. - 날짜 정보를 제공해주는 유용한 API(Application Programming Interface) 포함 클래스 용도 Date 날짜와 시간 정보를 저장하는 클래스 Calendar 운영체제의 날짜와 시간을 얻을 때 사용 Date 클래스 Date date = new Date(); 객체 간 날짜정보를 주고 받을 때 매개변수나 리턴타입으로 주로 사용 Date 객체의 toString() 메소드는 날짜를 영문으로 리턴하기 때문에 원하는 형식의 날짜포맷은 SimpleDateFormat 클래스를 사용해야한다. 이후 format() 메소드를 호출해서 원하는 형식의 날짜 정보를 얻는다. (이 때 format()메소드의 매개값은 Date 객체사용) ..