목록プログラミング/JAVA (62)
ㅤㅤㅤ
오늘 오전에는 예외 처리에 대해서 한 번 읽어보았다. 특별한 내용은 없었고, 예외 처리에 대해서 전반적인 정리와 자바7에서 추가된 자동 리소스 닫기라고 불리우는 try-catch-resources에 대해서 정리하려고 한다.자바7에서 추가된 내용만 확인하려면 3.3. 멀티 catch(자바7에서 추가된 내용) 과 4. 자동 리소스 닫기(자바7에서 추가된 try-catch-resources) 부분만 확인하면 된다.1. Exception?사용자의 잘못된 조작이나 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말하는 예외(Exception)는 발생시에 프로그램이 곧바로 종료된다는 점에서는 에러와 동일하다. 하지만 예외는 예외 처리(Exception Handling)을 통해 프로그램을 종료하지 않고 정상 ..
1. 헬로 람다 표현식사고의 전환함수형 스타일에 대해 간단히 알아보기명령형(Imperative) 스타일에서 서술적(Declarative) 스타일로의 전환명령형 스타일for (String city : cities) { if (city.equals("Chicago")) { found = true; break; } } System.out.println("Found chicago? : " + found) 개선된 서술적 스타일의 예System.out.println("Found chicago? : " + cities.contains("Chicago")) 위와 같이 코드를 수정하면 이전 코드에비해 더 나은 코드가 될 수 있다.난잡한 가변변수(Mutable Variable)의 사용을 방지이터레이션에 대한 코드가 외부로..
Chapter 16 네트워킹(Networking)1. 네트워킹(Networking)네트워킹(networking)이란 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크network)를 구성하는 것을 말한다1.1 클라이언트/서버(client/server)'클라이언트/서버는 컴퓨터간의 관계를 역할로 구분하는 개념이다 서버(server)는 서비스를 제공하는 컴퓨터(service provider)이고 클라이언트(client)는 서비스를 사용하는 컴퓨터(service user)가 된다.네트워크를 구성할 때 전용서버를 두는 것을 서버기반모델 이라고 하고 각 클라이언트가 서버역할을 동시에 수행하는 것을 P2P모델 이라고 한다서버는 제공하는 서비스의 종류에 따라 파일서버 메일서버, 어플리케이션 서버 등이 있다서버기반 모..
Chapter 15 입출력(I/O)1. 자바에서의 입출력1.1 입출력이란?컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것1.2 스트림(stream)자바에서 입출력을 수행하기 위해 두 대상을 연결하고 데이터를 운반하는데 사용되는 연결통로먼저 보낸 데이터를 먼저 받게 되어 있으며 중간에 건너뜀 없이 연속적으로 데이터를 주고 받는다.1.3 바이트기반 스트림 - InputStream, OutputStream스트림은 바이트단위로 데이터를 전송하며 입출력 대상에 따라 다음과 같은 입출력스트림이 있다.입력스트림출력스트림입출력 대상의 종류FileInputStreamFileOutputStream파일ByteArrayInputStreamByteArrayOutputStream메모리(byte배열)PipedIn..
Chapter 14 람다와 스트림1. 람다식1.1 람다식이란?람다식은 메서드를 하나의 식(expression)으로 표현한 것.- 객체 지향 언어보다는 함수 지향 언어에 가깝다. - 함수를 간략하면서도 명확한 식으로 표현할 수 있도록 해준다. - 메서드를 람다식으로 표현하면 메서드의 이름 및 반환 값이 없어지므로 익명 함수 라고도 한다. - 람다식의 형태는 매개 변수를 가진 코드 블록이지만 런타임 시에는 익명 구현 객체를 생성한다. http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-final.html1.2 람다식 작성하기(타입 매개변수) -> { 실행문; ... } ex) - ExFunctionInterfaceTest.java interface ExF..
Chapter 13 쓰레드(Thread)1. 프로세스와 쓰레드프로세스(process)란 실행 중인 프로그램(program)프로세스는 프로그램을 수행하는데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어 있다.실제로 작업을 수행하는 것이 바로 쓰레드(thread)이다.프로세스(공장), 쓰레드(일꾼) : 싱글 쓰레드 프로세스(공장), 쓰레드들(일꾼 들) : 멀티 쓰레드 쓰레드를 가벼운 프로세스, 즉 경량 프로세스(LWP,light-weight process)라고 부르기도 한다.멀티 쓰레드의 장점CPU의 사용률을 향상 시킨다.자원을 보다 효율적으로 사용할 수 있다.사용자에 대한 응답성이 향상된다.작업이 분리되어 코드가 간결해진다.멀티 쓰레드 고려할 사항여러 쓰레드가 같은 프로세스 내에서 자원을 공유..
Chapter 12 지네릭스, 열거형, 애너테이션1. 지네릭스(Generics)JDK1.5 도입JDK1.8 선택이 아닌 필수1.1 지네릭스란?다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크(compile-time type check)를 해주는 기능타입 안정성을 제공한다.의도하지 않은 타입의 객체가 저장되는 것을 막아 잘못 형변환 되는 오류를 줄여준다.형변환의 번거로움을 줄여준다. (타입체크와 형변환 생략 -> 코드 간결)ex) ArrayList클래스: 지네릭스 도입 이전에는 각 객체의 형을 체크해야 했음1.2 지네릭 클래스의 선언Box클래스/* Box클래스 선언 */ // 지네릭 타입 T를 선언 class Box { // class Box { // Object item; T ..
Chapter 11 컬렉션 프레임웍1. 컬렉션 프레임웍(Collection Framework)컬렉션 프레임웍이란데이터 군을 저장하는 클래스들을 표준화한 설계. JDK1.2 부터 등장1.1 컬렉션 프레임웍의 핵심 인터페이스컬렉션 프레임웍의 모든 컬렉션 클래스들은 List, Set, Map 중의 하나를 구현 Collection / \ Map List Set [표11-1] 컬렉션 프레임웍의 핵심 인터페이스와 특징인터페이스특징List순서가 있는 데이터의 집합. 데이터의 중복을 허용Set순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않음Map키(key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합. 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용컬렉션 클래스..
Chapter 10 날짜와 시간 & 형식화1.날짜와 시간대표적인 2개의 Apijava.util.Date (Deprecated)java.util.Calendar사용하기 매우 불편해 대체되는 오프소스 라이브러리Joda-Time결국, jdk8에서 joda-time 라이브러리를 수용Joda-Time provides a quality replacement for the Java date and time classes. Joda-Time is the de facto standard date and time library for Java prior to Java SE 8. Users are now asked to migrate to java.time (JSR-310).http://d2.naver.com/hellowo..
9. java.lang패키지와 유용한(util) 클래스1. java.lang패키지자바프로그래밍에 가장 기본이 되는 클래스들 포함import문 없이도 사용 가능1.1 Object클래스모든 클래스의 최고 조상Object클래스의 멤버들은 모든 클래스에서 사용 가능멤버변수는 없고 11개의 메서드만 가짐 (인스턴스가 가져야 할 기본적인 것들)Object클래스의 메서드설명public boolean equals(Object obj)객체 자신과 객체 obj가 같은 객체 인지 여부를 반환 (같으면 true)public int hashCode()객체 자신의 해시코드를 반환public String toString()객체 자신의 정보를 문자열로 반환protected Object clone()객체 자신의 복사본을 반환publi..