전체 글 썸네일형 리스트형 자바의 정석 - 13.2 쓰레드의 구현과 실행 13.2.1 쓰레드 구현방법 Thread 클래스 상속 class A extends Thread{ public void run(){} //오버라이딩 } Runnable 인터페이스 구현 class B implements Runnable{ public void run(){} //구현 } 💡 Runnable인터페이스를 구현하는 방법이 재사용성이 높고 일관성을 유지할 수 있다. 13.2.2 Thread 클래스 구현 및 실행 class ThreadEx1 extends Thread{ public void run(){ System.out.println(getName()); } } public class A{ public static void main(String[] args){ ThreadEx1 t1 = new Thr.. 더보기 자바의 정석 - 13.1 프로세스와 쓰레드 13.1.1 프로세스와 쓰레드 프로세스 : 데이터 + 메모리등의 자원 + 쓰레드 쓰레드 : 프로세스의 자원을 이용하여 실제 작업 수행 💡 하나의 프로세스에 둘 이상의 쓰레드를 가진 것을 멀티쓰레드 프로세스(multi-threaded process)라 한다. 💡 하나의 프로세스가 가질 수 있는 쓰레드의 개수는 제한되지 않으나, 쓰레드가 작업을 수행하는데 개별적인 메모리 공간(호출스택)을 필요로 하기 때문에 프로세스의 메모리의 한계에 따라 쓰레드 수가 결정됨 13.1.2 멀티태스킹과 멀티쓰레딩 멀티태스킹 : 여러개의 프로세스가 동시 실행 멀티쓰레딩 : 하나의 프로세스에서 여러 쓰레드 실행 💡 처리해야 하는 쓰레드의 개수는 항상 코어의 개수보다 많기 때문에 일정시간 여러 작업을 번갈아 가면서 수행(ex.라운드.. 더보기 자바의 정석 - 10.3 java.time 10.3.1 time패키지 time 패키지 내부의 클래스들은 항상 변경된 새로운 객체 반환 즉, 불변성(immutable)을 가짐 항상 새호운 객체가 반환되어서 동시에 여러 쓰레드가 같은 객체에 접근하는 멀티 쓰레드 환경에서 안전함 java.time : 날짜와 시간을 다루는데 필요한 핵심 클래스들을 제공 java.time.chrono : 표준(ISO)이 아닌 달력 시스템을 위한 클래스 제공 java.time.format : 날짜와 시간을 파싱하고, 형식화하기 위한 클래스들을 제공 java.time.temporal : 날짜와 시간의 필드(field)와 단위(unit)를 위한 클래스들을 제공 java.time.zone : 시간대(time-zone)와 관련된 클래스들을 제공 10.3.2 Period와 Dura.. 더보기 자바의 정석 - 10.2 형식화 클래스 10.2.1 DecimalFormat 숫자 데이터를 정수, 부동소수점, 금액 등의 다양한 형식으로 표현 텍스트 데이터를 숫자로 쉽게 변환 double number = 1234567.89; DecimalFormat df = new DecimalFormat("#.#E0"); String result = df.format(number); //12.E6 10.2.2 SimpleDateFormat 추상클래스 DateFormat의 구현체 날짜를 출력할 때 사용 Date d = new Date(); SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat s2 = new SimpleDateFormat("''yy년 MM월 dd일 E요일"); .. 더보기 자바의 정석 - 10.1 날짜와 시간 10.1.1 Calendar 추상클래스(직접 인스턴스 생성 불가) getInstance()로 인스턴스 반환 가능 //국가와 지역설정 Calendar cal1 = Calendar.getInstance(); //Error! Calendar cal2 = new Calendar(); /* getInstance()가 static인 이유는, 인스터스 변수를 사용하거나 인스턴스 메서드르 호출하지 않기 때문이다. */ 💡 getInstance()는 국가와 지역설정을 확인. 태국 : BuddhistCalendar 인스턴스 반환 그 외 국가 : GregorianCalendar 인스턴스 반환 10.1.2 Date와 Calendar간의 변환 Date는 JDK 1.0부터 사용할 수 있지만 대부분 'deprecated'가 됨 1.. 더보기 자바의 정석 - 8.3 사용자정의 예외 8.3.1 사용자정의 예외 만들기 기존의 예외를 상속받아 예외를 만들 수 있다. 💡 하지만, 가능하면 기존의 예외를 사용하는 것을 추천 class MyException extends Exception{ private final int ERR_CODE; MyException(String msg, int errCode){ super(msg); ERR_CODE = errCode; } MyException(String msg){ this(msg, 100); } public int getErrCode(){ return this.ERR_CODE; } } 💡 요즘은 checked에러보다 unchecked에러를 상속받아 작성을 하는 트렌드 더보기 자바의 정석 - 8.2 예외 발생시키기 8.2.1 예외 발생방법 new 연산자를 통해 예외 클래스의 객체 생성 키워드 throw를 통해 예외 발생 class A{ public static void main(String[] args){ try{ Exception e = new Exception("고의 발생"); throw e; //throw new Exception e; }catch(Exception e){ e.printStackTrace(); } } //컴파일 실패 //checked 예외 class A{ public static void main(String[] args){ throw new Exception(); //try-catch로 에러처리를 하지않아 에러 발생 } } //컴파일 성공 //하지만 런타임때 에러 //unchecked 예외 .. 더보기 자바의 정석 - 8.1 프로그램 에러 8.1.1 프로그램 에러 종류 컴파일 에러 : 컴파일 시에 발생하는 에러 런타임 에러 : 실행 시에 발생하는 에러 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것 💡 컴파일 타임 때, 컴파일러가 소스코드(.java)를 클래스 파일(.class)파일로 생성을 한다. 런타임 때 클래스 파일이 실행된다. 8.1.2 에러와 예외 에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외(exception) : 프로그램 코드에서 수습될 수 있는 다소 미약한 오류 8.1.3 예외 클래스의 계층구조 예외의 두 그룹 Exception클래스와 그 자손(RuntimeException제외) RuntimeException클래스와 그 자손 💡 Exception클래스들 : 사용자의 실수와 같은 외적.. 더보기 이전 1 ··· 39 40 41 42 43 44 45 ··· 48 다음