본문 바로가기
반응형

java20

13주차 : I/O 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 NIO(New Input/Output) I/O I/O란 Input 과 Output의 약자로 입력과 출력, 간단히 줄여서 입출력이라고 한다. 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말한다. 1. 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O 스트림 프로그램에서는 데이터를 외부에서 읽고 다시 외부로 출력하는 작업이 빈번히 일어난다. 자바에서 데이터는 스트림(Stream.. 2021. 3. 1.
LinkedList LinkedList는 List 구현 클래스이므로 ArrayList와 사용 방법은 똑같지만 내부 구조는 완전 다르다. ArrayList는 내부 배열에 객체를 저장해서 인덱스로 관리하지만, LinkedList는 인접 참조를 링크해서 체인처럼 관리한다. ​ LinkedList에서 특정 인덱스의 객체를 제거하면 앞뒤 링크만 변경되고 나머지 링크는 변경되지 않는다. 특정 인덱스에 객체를 삽입할 때에도 마찬가지다. ArrayList는 중간 인덱스의 객체를 제거하면 뒤의 객체는 인덱스가 1씩 앞으로 당겨진다고했다. 그렇기 때문에 빈번한 객체 삭제와 삽입이 일어나는 곳에서는 ArrayList 보다 LinkedList가 더 좋은 성능을 발위한다. ​ 다음사진은 중간에 객체를 제거할 경우 앞뒤 링크의 수정이 일어나는 모습.. 2021. 2. 7.
Arraylist 컬렉션프레임워크의 첫번째 List !! List의 특징은 순서를 유지하고 저장하며, 중복 저장이 가능하다. array (배열) 1. 배열 선언시 배열의 크기를 지정 해야함. 2. 지정된 크기 이상으로 할당 안됨. ​ 1. 사이즈 10인 배열 -> 사이즈 5로 줄이기 - 불가능하다. 이러한 이유로 다른 자료구조들이 있다. - 배열은 선언할때 사이즈를 지정해줘야함. - Arrays.asList(배열) 리스트 변환 후 사이즈 변경 - Arrays.CopyOf 를 통한 사이즈 변경 ​ 2. 사이즈 변경이 가능한 자료구조 - ArrayList는 배열을 이용해서 리스트를 구현한 것을 의미한다. - ArrayList 내부구조를 보면 배열의 크기가 부족할 경우 grow 라는 메서드가 배열의 크기를 증가시켜줌. - Ar.. 2021. 2. 7.
12주차 : Annotation (애노테이션) 애노테이션 정의하는 방법 @Retention @Target @Documented 애노테이션 프로세서 어노테이션이란 - @를 이용한 주석, 자바코드에 주석을 달아 특별한 의미를 부여한 것 - 컴파일러가 특정 오류를 억제하도록 지시하는 것과 같이 프로그램 코드의 일부가 아닌 프로그램에 관한 데이터를 제공, 코드에 정보를 추가하는 정형화된 방법.' 어노테이션의 용도 - @Override 어노테이션처럼 컴파일러를 위한 정보를 제공하기 위한 용도 - 스프링 프레임워크의 @Controller 어노테이션처럼 런타임에 리플렉션을 이용해서 특수 기능을 추가하기 위한 용도 - 컴파일 과정에 어노테이션 정보로부터 코드를 생성하기 위한 용도 1. 애노테이션 정의하는 방법 새로운 애노테이션을 정의하는 방법은 아래와 같다. '@.. 2021. 2. 7.
10주차 : Thread Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 Thread는 사전적 의미로 한 가닥의 실이라는 뜻인데, 한 가지 작업을 실행하기 위해 순차적으로 실행할 코드를 실처럼 이어 놓았다고 해서 유래된 이름이다. 하나의 스레드는 하나의 코드 실행 흐름이기 때문에 한 프로세스 내에 스레드가 두 개라면 두 개의 코드 실행 흐름이 생긴다는 의미이다. 모든 자바 애플리케이션은 메인 스레드(main Thread) 가 main() 메소드를 실행하면서 시작된다. 위의 그림은 싱글 스레드 애플리케이션과 멀티 스레드 애플리케이션의 도식이다. 1. Thread 클래스와 Runnable 인터페이스 멀티 쓰레드로 실행하는 애플리케이션을 개발하려면 먼저 몇 개의 작업을 병.. 2021. 1. 31.
9주차 : 예외, 에러 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다. 1. 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 프로그램에서 예외가 발생했을 경우 프로그램의 갑작스러운 종료를 막고, 정상 실행을 유지할 수 있도록 처리하는 코드를 예외 처리 코드라고 한다. 예외 처리 코드는 try-catch-finally 블록을 이용한다. try-catch-finally 블록은 생성자 내부와 메.. 2021. 1. 31.
반응형