일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Direct12
- 렌더링 파이프라인
- 자료구조
- I/O장치
- 알고리즘
- DirectX12
- 프로그래머스
- 디자인패턴
- 다이나믹프로그래밍
- 파일시스템 구현
- 운영체제
- 동적계획법
- 병행성 관련 오류
- 컨디션 변수
- directx
- codility
- 병행성
- 그리디알고리즘
- DirectX 12
- OS
- 타입 객체
- 쓰레드
- 멀티쓰레드
- 그리디 알고리즘
- 영속성
- 락
- 백준
- 멀티프로세서
- 스케줄링
- 다이나믹 프로그래밍
- Today
- Total
목록Java (23)
기록공간
○ 자주 사용하는 단축키 0. 주요 단축키 보기 ▶ Ctrl + Shift + L 1. 블럭 단위 주석 처리( /* */ ) ▶ 블럭 지정한 후에 Ctrl + Shift + / 2. 블럭 단위 주석 해제 ▶ 블럭 지정한 후에 Ctrl + Shift + \ 3. 라인 단위 주석 처리( // ) 또는 제거 ▶ Ctrl + / 4. 자동 완성 기능. 어휘의 자동완성(Content Assistance) ▶ Ctrl + Spacebar 5. 라인 이동 : 커서가 있는 라인의 모든 글자가 방향키에 따라 이동 ▶ Alt + 방향키(위,아래) 6. 라인 삭제 : 커서가 있는 라인을 삭제 ▶ Ctrl + D 7. 에러 픽스 : 에러난 곳에 대해 해결 방법을 제시함 ▶ 에러 발생 지점(빨간밑줄)에서 Ctrl + 1 8. ..
객체 직렬화는 메모리에 생성된 클래스 객체의 멤버 변수의 현재 상태를 그대로 보존해서 파일에 저장하거나, 네트워크를 통해 전달할 수 있는 기능으로 멤버 변수의 값을 보존한다거나 다른 네트워크에 있는 호스트에 값을 보낼 경우 사용하게 된다. 즉, 객체 직렬화는 내용물을 바이트 단위로 변환하여 파일 또는 네트워크를 통해 송수신(스트림)이 가능하게 만들어주는 것이다. 이 때, 객체란 멤버 변수의 메모리만으로 구성된 것을 말한다. 객체 직렬화의 장점 객체 자체의 내용을 입출력 형식에 구애받지 않고 객체를 파일에 저장함으로써 영속성을 제공할 수 있으며, 객체 자체를 네트워크를 통해 손쉽게 교환할 수 있게 된다. 객체 직렬화는 JDK 1.1 이후에 도입되었다. 그 이유는 RMI와 Bean 때문이다. RMI는 원래 ..

개요 자바에서의 모든 데이터 입출력은 스트림(Stream) 이라는 개념에 의해 이루어진다. 스트림이라는 단어의 사전적 의미는 흐르는 물의 개념이며, 이는 연속된 일련의 데이터를 일컫는다. 스트림(Stream) 데이터 입출력 시 모든 데이터를 형태와 관계없이 일련된 흐름으로 전송하는 것이 스트림 입출력 모델의 기본 개념이다. 특징 스트림은 FIFO 구조이다. FIFO(First In First Out) 구조란, 먼저 들어간 것이 먼저 나오는 형태로 스트림의 데이터는 순차적으로 흘러가며 순차적 접근 밖에 허용되지 않는다. 스트림은 단방향이다. 그렇기 때문에 자바에서 스트림을 사용하는 기능은 읽기와 쓰기가 동시에 이루어지지 않는다. 따라서 읽기 쓰기가 모두 필요하다면 읽는 스트림과 쓰는 스트림을 하나씩만 열어..
Set Set은 순서가 존재하지 않는 비선형적인 자료구조이다. Set은 중복을 허용하지 않는 구조이다. 컬렉션 프레임워크에서 Set 인터페이스는 앞서봤던 List 인터페이스처럼 단독으로 객체를 만들 수 없기 때문에 하위 클래스인 HashSet, TreeSet을 통해 다운캐스팅하여 만들어야 한다. HashSet java.util.HashSet 클래스는 Set 인터페이스를 구현하는 클래스로 순서의 개념이 아니라 집합의 개념으로 되어있는 자료구조이다. 이로 인해 데이터의 중복을 허용하지 않으며, 동기화를 지원하지 않는다. (비동기) Set dog = new HashSet(); // Set 자료구조에 요소 추가 dog.add("코카스파니엘"); dog.add("포메라니안"); dog.add("골든리트리버"); ..
List List는 순서가 있는 자료 구조이다. 순서가 있기 때문에 중복을 허용하며 차례대로 저장되는 성격이 배열과 유사하다. List 인터페이스는 그 자체에서 기능이 오버라이딩 되어 있지 않기 때문에 단독으로 사용할 수 없다. 그래서 그 하위 클래스인 Vector, ArrayList 등을 다운캐스팅하여 할당해줘야 사용이 가능하다. 이러한 특성 때문에 List 인터페이스의 하위 클래스는 대부분의 메소드가 비슷하다. Vector 자바의 자료구조 기능을 제공하는 클래스들 중 가장 기본적인 클래스로 배열과 비슷하지만, 배열과 달리 다른 종류의 데이터형을 가진 데이터 요소를 가질 수 있으며, 데이터가 가득차면 자동으로 저장 영역을 확장시키게 된다. 또한, 객체 레퍼런스를 저장하기 때문에 JDK 1.5 이전에는 ..
컬렉션 프레임워크는 컬렉션(모아놓은 데이터들 or 자료 구조)의 표현과 조작을 위한 통일된 아키텍처이다. 컬렉션 프로임워크를 구성하는 요소는 다음과 같다. 인터페이스(Interface) : 기본적으로 컬렉션에 필요한 데이터 관리 기능을 제공한다. 예를 들면, List는 추가, 삭제, 검색 기능을 제공하는 컬렉션 인터페이스가 존재한다. 각 컬렉션마다 고유의 인터페이스가 정의되어 있다. 구현(Implementation) : 인터페이스를 구현한 클래스로 각 컬렉션을 실제 어떤 자료구조를 이용하여 표현했느냐에 따라 컬렉션의 종류가 달라지게 된다. 알고리즘(Algorithms) : 각 컬렉션들마다 유용하게 사용할 수 있는 메소드를 의미한다. ※ 자바 컬렉션은 견고한 컬렉션 프레임워크 기반 위에 정의되어 있으므로 ..
프로그램에서 발생하는 오류 프로그램에서 발생할 수 있는 오류는 크게 두 가지, 컴파일 오류와 런타임 오류로 나뉜다. 컴파일 오류 잘못된 문법을 사용하거나 변수 등을 정의하지 않은 상태에서 사용함으로 인해 컴파일 단계에서 발생하는 문법적인 오류 런타임 오류 프로그램을 실행하는 과정에서 발생되는 런타임 오류이다. 더욱 세분화 하면 세가지로 나눌 수 있다. 논리적 오류 : 개발자가 문제 분석을 잘못하거나 실수에 의해 엉뚱한 결과를 가져오게 되는 오류 시스템 오류 : 시스템 이상에서 발생되는 오류 예외사항(Exception) : 프로그램 실행 중 발생되는 비정상적인 상황 (ex. 어떤 수를 0으로 나눔, 배열범위를 벗어난 접근, 존재하지 않는 파일에 접근) 이런 다양한 오류 중에서 여기서 살펴볼 것은 예외사항에..
Calendar 클래스 java.util.Calendar 클래스는 날짜와 시간을 객체 모델링화 한 클래스로 연, 월, 일, 요일, 시, 분, 초까지의 시간 및 날짜와 관련된 정보를 제공한다. Calendar 클래스는 추상 클래스이기 때문에 객체를 생성할 수 없으며 실제적인 메서드 구현을 Calendar 클래스의 서브 클래스인 GregorianCalendar 클래스에 정의되어 있다. Calendar cal = new Calendar(); //-> 이와 같은 구문을 통해 인스턴스 생성이 불가. Calendar 클래스를 생성할 수 있는 코드는 다음과 같다. // 1 Calendar cal = Calendar.getInstance(); // 스태틱 클래스 메소드를 이용한 객체 생성 // 2 Calendar ca..