Langauge/Java

Langauge/Java

자바의 정석 Chapter13. 쓰레드(Thread)

프로세스 : 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어있다. 멀티 쓰레드 프로세스 : 둘 이상의 쓰레드를 가진 프로세스 멀티 쓰레딩 하나의 프로세스 내에서 여러 쓰레드가 동시에 작업을 수행하는 것이다. 대부분의 OS는 멀티 쓰레딩을 지원한다. 쓰레드 구현하기 위한 방법으로는 두 가지가 있다. 1. Thread 클래스 상속 public class MyThread extends Thread { public void run(){ } } 2. Runnable 인터페이스 구현하기 public class MyThread extends Thread { public void run(){ } } Runable 클래스는 run() 함수로만 정의되어있는 인터페이스이다. public c..

Langauge/Java

자바의 정석 Chapter12. 지네릭스, 열거형, 애너테이션

지네릭스 : 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크 (Compile-time type check) 기능이다. 타입 안정성 제공, 타입체크와 형변환을 생략할수 있어 코드가 간결해지는 장점이 있다. public class Box { T item; void setItem(T item) { this.item = item; } T getItem(){ return item; } } 객체 생성 시 타입 변수 T에 따로 타입을 지정한 상태에서 지네릭 클래스를 사용하여야 한다. Box b = new Box(); b.setItem("ABC"); b.setItem(new Object()); 지네릭스의 제한된 역할로 Box를 생성할 경우, 모든 객체에 대해 동일하게 동작하는 static..

Langauge/Java

Java의 정석 Chapter10. 날짜와 시간 & 형식화 / Chapter11. 컬렉션 프레임워크

Chapter10 날짜와 시간 & 형식화 SimpleDateFormat parse(String source) : source문자열을 날짜 데이터의 형식으로 변환해준다. MessageFormat 데이터를 정해진 양식에 맞게 출력하도록 변환 Instant 에포크 타임부터 경과된 시간을 나노초 단위로 표현 Chapter11 컬렉션 프레임워크 : 데이터 군을 저장하는 클래스들을 표준화한 설계 Collection 인터페이스 List 인터페이스 Set 인터페이스 Map 인터페이스 key, value로 이루어진 컬렉션 클래스를 구현하는 데 사용되는 인터페이스 HashTable, HashMap, SortedMap, TreeMap 등의 구현체가 있다. HashMap은 key와 value를 묶어서 하나의 데이터(Entry..

Langauge/Java

Java의 정석 Chapter9. java.lang 패키지와 유용한 클래스

Java.lang 패키지란 ? 자바 프로그래밍에 가장 기본이 되는 클래스들을 포함하는 패키지 Object 클래스의 메소드 protected Object clone() : 객체 자신의 복사본을 반환 public boolean equals(Object obj) : 같은 객체이면 true 반환 (주솟값 참조) protected void finalize() : 객체가 소멸될 때 Garbage Collector에 의해 자동으로 호출 public Class getClass() : 객체의 Class 인스턴스를 반환한다. public int hashCode() : 객체의 해시코드를 반환 public String toString() : 객체의 정보를 문자열로 반환 public void notify() : 객체를 사용하려..

Langauge/Java

Java의 정석 Chapter8. 예외처리(Exception Handling)

프로그램 오류 컴파일 에러 : 소스코드 내의 오타나 잘못된 구문, 자료형 체크 등 기본적인 검사를 수행하는 과정에서 에러 런타임 에러 : 메모리 부족, 스택 오버플로우 등 코드에 의해서 수습될 수 없는 심각한 오류(error)와 코드에 의해 수습될 수 있는 미약한 오류(Exception)으로 구분된다. 논리적 에러 : 실행은 되지만 의도와 다르게 동작하는 경우를 말한다. 계층도를 보면 RuntimeException은 주로 프로그래머의 실수에 의해 발생하는 경우가 많다. Exception 클래스들은 FileNotFoundException, DataFormatException 등 외부의 영향으로 주로 발생한다. try-catch 문 프로그램 실행 시 예기치 못한 예외의 발생에 대비한 코드를 작성한다. 처리되..

Langauge/Java

Java InputStream에서 File 객체로 변환하기

Java.Io.InputStream을 File객체로 변환해서 파일 객체의 path 정보를 불러와야해서 새로 함수를 만들었다. public File convertInputStreamToFile(InputStream inputStream) { File tempFile = null; try { tempFile = File.createTempFile(String.valueOf(inputStream.hashCode()), ".tmp"); // 임시 파일 생성 tempFile.deleteOnExit(); copyInputStreamToFile(inputStream, tempFile); } catch (Exception e) { e.printStackTrace(); } return tempFile; } 먼저 임시파일..

Langauge/Java

Java의 정석 Chapter7.객체지향 프로그래밍2

상속 자바에서는 단일 상속만을 허용하는데, 하나의 클래스가 여러 조상 클래스를 상속받는 '다중 상속' 형태는 불가능하다. Object 클래스 모든 클래스의 상속 계층도에서 가장 상위에 있는 클래스 class Tv { // ... } 이렇게 아무것도 상속하지 않는 클래스를 컴파일하면 자동으로 Object를 상속하도록 설정한다. 오버라이딩 조상 클래스에서 상속받은 메서드 내용을 변경하는 것을 말한다. 오버라이딩의 조건은 다음과 같다. 1) 조상 클래스의 메서드와 이름이 같다. 2) 조상 클래스의 메서드와 매개변수가 같다. 3) 조상 클래스의 메서드와 반환 타입이 같다. 다만 접근 제어자와 예외는 다르게 변경할 수 있는데, - 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다. - 조상 클래..

Langauge/Java

Java의 정석 Chapter6. 객체지향 프로그래밍

객체지향 프로그래밍이란, 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 객체지향 언어의 주요 특징은 다음과 같다. 1. 코드의 재사용성이 높다 2. 코드의 관리가 용이하다 3, 신뢰성이 높은 프로그래밍을 가능하게 한다. 클래스와 객체 클래스 : 객체를 정의해놓은 것이며, 객체를 생성하는 데 사용된다. 객체 : 클래스로부터 만들어져 실제로 메모리 상에 존재하는 것 인스턴스 : 클래스로부터 만들어진 객체를 이루는 말 객체는 여러가지 속성과 기능을 가지고 있다. 이를 멤버 변수, 메서드를 이용해 구현할 수 있으며 변수는 클래스, 인스턴스, 지역 변수 총 3가지 종류로 나뉜다. 클래스 변수와 인스턴스 변수는 클래스 영역에 위치..

Langauge/Java

Java의 정석 Chapter5. 배열

배열이란, 같은 타입의 여러 변수들을 하나의 묶음으로 다루는 것을 말한다. 배열의 선언과 생성은 두 가지 방식으로 할 수있다. 1. 타입[] 배열이름; 2. 타입 배열이름[]; 생성된 배열의 인덱스는 "0부터 배열길이 - 1 까지"이다. 유효한 범위를 벗어나게 된다면 ArrayIndexOutOfBoundsException이 발생한다. public class arrayEx1 { public static void main(String[] args) { int[] score = new int[5]; int k = 1; score[0] = 50; score[1] = 60; score[2] = 70; score[3] = 80; score[4] = 90; int tmp = score[k + 2] + score[4]..

MINGYUM
'Langauge/Java' 카테고리의 글 목록