일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- DirectX 12
- 스케줄링
- 영속성
- 멀티쓰레드
- 렌더링 파이프라인
- 다이나믹 프로그래밍
- I/O장치
- 동적계획법
- 병행성 관련 오류
- Direct12
- 그리디 알고리즘
- 다이나믹프로그래밍
- 그리디알고리즘
- 컨디션 변수
- 타입 객체
- 병행성
- OS
- 프로그래머스
- 백준
- 운영체제
- 락
- 디자인패턴
- 쓰레드
- codility
- 멀티프로세서
- 파일시스템 구현
- 알고리즘
- DirectX12
- 자료구조
- directx
- Today
- Total
목록Java (23)
기록공간
개요 컴퓨터는 모든 정보를 1과 0으로 인식한다. 어떠한 정보를 컴퓨터가 알 수 있게 변환해주는 작업을 인코딩이라고 한다. 반대로 1과 0으로 이뤄진 정보를 우리가 원하는 정보로 보기 위해서는 디코딩이라는 작업이 필요하다. 이러한 인코딩과 디코딩을 하기 위해서는 서로간의 약속이 필요하다. 그렇지 않으면 정보를 주고받는 과정에서 원하는 결과를 얻을 수 없기 때문이다. 문자 정보를 주고 받는 과정에서 이러한 약속을 문자 집합이라고 한다. 문자 집합을 서로 맞춰주지 않으면 정보를 주고받는 과정에 장애가 생긴다. 이러한 문자 집합에는 어떤 종류가 있는지 살펴보자. 유니코드(Unicode) 유니코드는 국제 표준으로 제정된 2바이트계의 만국 공통 국제 문자부호체계(Universal Code System. UCS)이..
String 클래스 String 클래스는 내부 문자열에 대한 수정이 불가능하다. (내용 불변 : Immutable) 문자열의 내용이 변경되면 새로운 객체를 생성하며 참조 대상을 잃어버린 객체는 가비지 컬렉션의 대상이 되고, 새로운 객체에 새 주소를 할당하게 되므로 해시코드도 변하게 된다. String 클래스 간에 + 연산자를 사용하게 되면 문자열 간의 결합이 가능하며, String 클래스와 다른 클래스 객체, 또는 기본형 데이터 간에 + 연산자를 사용하는 경우에도 내부적으로 자동 String 클래스로 변환이 가능하다. String은 내부 문자열의 내용을 변경할 수 없기 때문에 + 연산자를 사용하여 문자열의 결합을 수행하게 되면 내부적으로 StringBuffer를 생성하여 append() 메서드를 이용해 ..
개요 일반적으로 클래스는 하나만 존재하는 것이 아니라 같은 종류의 클래스를 여러개 묶어서 사용하게 되는데, 이러한 클래스나 인터페이스의 묶음을 패키지(package)라고 한다. Sun(Oracle)사에서는 자바 프로그램을 효율적으로 작성할 수 있도록 자바 표준 패키지를 제공하며, 자바 표준 패키지에는 그래픽, 네트워크, 데이터베이스 등의 다양하고 유용한 클래스들이 포함되어 있다. import 구문 자바 표준 패키지나 사용자에 의해 외부에서 만들어진 패키지를 사용하기 위해서는 컴파일을 수행하기에 앞서 프로그램에 포함시키는 과정이 필요한데, 이 때 import 문을 이용하여 패키지 또는 클래스를 프로그램에 포함시키게 된다. 하지만, java.lang.* 패키지는 자바 프로그램에 기본적으로 import 되어 ..
중첩 클래스 (내부 클래스) 란? 중첩 클래스(또는 내부 클래스)란 클래스 안에 다른 클래스가 설계되어 있는 형태로 클래스 내부에서만 사용할 보조 클래스가 필요한 경우 클래스를 중첩하여 프로그램의 구조를 보다 더 간단하고 알아보기 쉽도록 만들 수 있는 클래스이다. 이는 특정 클래스를 자신의 클래스 내부적인 용도로만 사용할 목적으로 쓰이는데 특정 클래스를 마치 자신의 멤버 변수나 메소드처럼 사용할 수 있게 한다. 중첩 클래스의 종류 4가지 1. static 중첩 클래스 (중첩 내부 클래스) 클래스 내부에... public static class 클래스명 내부 클래스를 감싸는 외부 클래스 {} 안에 static이 붙은 새로운 클래스를 설계하는 것으로 모든 접근제어지시자를 사용할 수 있다. static 중첩 ..
인터페이스(Interface) 란? 인터페이스는 클래스를 위한 템플릿으로써의 기능을 수행하는 추상 클래스의 한 종류이다. 완전히 미완성된 채로 남겨져 인터페이스 안에 존재하는 그 어떤 메소드도 몸체(정의부, 구현부) 가 없기 때문에 사실상 실행 부분이 존재하지 않는다. 인터페이스는 클래스와 다르게 다중 상속이 가능하며 인터페이스 자체도 상속된다. 기존의 C++ 언어 등에서 지원되는 다중 상속이 사용 과정에서 많은 문제점을 노출시켰기 때문에 자바에서는 다중 상속의 개념을 인터페이스라는 개념으로 변형하여 인터페이스를 통해 다중 상속을 구현하는 방법을 지원한다. 인터페이스는 상수와 추상 메소드만 가질 수 있으며 인터페이스 안의 메소드들은 접근제어 지시자를 명시하지 않아도 public으로 설정되어 클래스의 구현..
캐스팅은 '(자료형)'을 사용하며 자료형을 명시적으로 변환시켜주는 작업을 한다. 하지만 이를 기본 자료형이 아닌 클래스에서 사용하면 업 캐스팅과 다운 캐스팅을 할 수 있다. 그럼 업, 다운 캐스팅이 무엇이며 어떻게 쓰는지 알아보도록 하겠다. 예제) // super class, 부모 클래스, 상위 클래스 class Super { public int a = 10, b = 20; public void write() { System.out.println("슈퍼 클래스 write() 메소드..."); } public int hap() { return a + b; } } // sub class, 자식 클래스, 하위 클래스 class Sub extends Super { public int b = 100, c = 20..

상속(Inheritance) 이란? 새로 설계(생성)하고자 하는 클래스가 이미 설계되어 있는 다른 클래스의 기능과 중복되는 경우 이미 설계된 클래스의 일부분이나 전체 구조를 공유할 수 있도록 하는 기능을 의미한다. 즉, 상속은 객체를 좀 더 쉽게 만들 수 있는 고수준의 재사용성(reusability)을 확보하고 객체 간의 관계를 구성함으로써 객체 지향의 또 다른 큰 특징인 다형성의 문법적 토대가 된다. 상속은 기존 프로그램의 클래스 내용을 공유함으로써 중복된 코드들을 재작성할 필요 없이 반복적이고 세부적인 작업을 처리하지 않기 때문에 프로그램을 작성하는 시간을 절약할 수 있고 유지보수를 편리하게 할 수 있으며, 프로그램의 길이도 짧아지게 해 준다. 또한, 이미 작성된 프로그램들은 앞서 테스트되었기 때문에..