java/java 기본

java/java 기본

14. 람다와 스트림

1. 람다식 1.1. 람다식 사용 조건 Java 8 이상 버전 함수형 인터페이스(Functional Interface) 일 때 사용 가능 이름이 거창할 뿐이지 익명 클래스 중 아래의 조건일 때 람다식으로 변경이 가능하는 뜻 함수형 인터페이스: 하나의 추상 메서드만을 가지고 있는 인터페이스 default 메서드는 제외 Object 메서드 제외 @functionalInterface : 애노테이션을 이용해서 조건에 부합한 인터페이스인지 체크 가능 익명클래스 함수형 인터페이스 ⊂ 익명클래스 익명클래스 : 인터페이스, class 상관 없이 기준이 되는 class나 interface 를 가지고 익명 객체를 생성할 수 있다. 물론 부모의 method의 개수도 제약이 없다. 함수형 인터페이스 : lambda 식을 위한..

java/java 기본

13. 쓰레드

1. 프로세스와 쓰레드 용어 프로그램이 실행되면 프로세스가 된다. program pro:진행되는 , gram: 정보 저장되는 파일 형태 저장 공간만 존재하면 된다 - HDD, SDD process cess==go 작업이 실행되는 것 명령어가 필요한 것 -CPU 프로그램을 더블 클릭 후 수행이 되는 상태로 변하면 프로세스가 된다. * 동영상같은 것은 데이터만 있기 때문에 프로그램이지만 프로세스가 아니다. process - 쓰레드 프로세스 : 작업에 필요한 데이터와 메모리 등의 자원 쓰레드로 구성되어 있는 것 쓰레드: 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것 싱글쓰레드 : 자원 하나에 쓰레드 한 개 멀티쓰레드 : 자원 하나에 쓰레드 여러 개 -> 자원을 공유하기 때문에 동기화 문제가 생긴다. 2..

java/java 기본

15. 입출력

1.입출력(I/O)과 스트림(stream) 원리 외부와 자바프로그램간의 data를 주고 받는 과정 필요 data를 주고 받기 위해 외부와 자바프로그램을 연결시켜주는 다리가 필요 : stream stream은 14장의 Stream과 다르다. 연결시켜주는 다리(일방통행) : Input, Output 외부에서 자바로 들어가는 것 하나 : Input 자바에서 외부로 보내는 것 하나 : Output 목적 외부에서 데이터를 받아서 읽기 내부에서 데이터 작성해서 외부로 보내기 input과 output은 따로따로 이다. 연결해서 작동하는 경우가 많은 거지 서로 연결할 필요가 없다. read(), write() input과 output stream의 다른 method들이 분명 더 있겠지만 읽고 쓰기가 기본 원리이다. 외..

java/java 기본

12. 지네릭스, 애너테이션

1. 지네릭스 정의 동적일 필요없는 타입을 정적으로 변환 → 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능 → 런타임 에러를 줄여준다. 클래스에서 지정한 지네릭스 타입으로 인해 다양한 타입의 객체들을 다루는 메서드에 type을 제한할 수 있다. type 제한: 지네릭스 타입 객체 및 지네릭스 타입의 자손 타입 객체 가능 method 중 지네릭스가 지정된 method는 반환시 지네릭스 타입을 반환한다 장점 타입 안정성을 제공한다 형변환 error(classCastException)을 방지한다. 의도치 않은 타입의 객체를 저장하는 것을 막고, 저장된 객체를 꺼내올 때 월래의 타입과 다른 타입으로 형변환되어 발생할 수 있는 오류를 줄여준다. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해진다. A..

java/java 기본

11. Collection framework 개념

1. Collection Framework 컬렉션 프레임워크 컬렉션을 다루기 위한 표준화된 프로그래밍 방식 컬렉션 = 객체 1.1. 컬렉션 프레임워크 사용 이유 배열 정적배열 전통적으로 프로그래밍에서 많은 양의 자료(데이터) 처리를 위해서는 배열을 이용 배열의 단점 배열에 담는 자료형은 동일해야 한다. 다른 자료형도 함께 넣지 못함 배열은 데이터의 크기를 알 수 없는 경우에는 부적합하다. 데이터의 크기가 미리 안정해진 경우, 파악하기 어려운 경우 배열 생성이 힘들다 기준을 많이 잡아놓고 다 사용하지 않는다면 메모리만 차지 기준을 낮게 잡아놓으면 기준치초과시 다시 생성해야 함 컬렉션 프레임워크 동적배열 객체만 받음 - 오토박싱을 통한 자료형을 객체로 변환 후 받을 수 있다. 배열의 단점을 보완하기 위한 프..

java/java 기본

10. 날짜와 시간 & 형상화

1. calendar 추상 클래스 구현 객체: 서양력, 태국력, 음력 구현 순서 getInstance() -> clear() -> set() 1.1. 주요 method getInstance(); 호출 Calendar가 추상 클래스에서 getInstance를 통해서 구현 객체를 호출해야한다. clear(); 오차 제거를 위한 시간 초기화 clear(); 모든 필드 초기화 clear(Calendar.SECOND); 초 초기화 // 년, 월, 요일, 시간, 분 등 초기화 가능 set(); 원하는 날짜 시간 지정 void set(int field, int value); // 시간만 셋팅할 때는 이걸로만 지정해야함 void set(int year, int month, int date); void set(int y..

java/java 기본

9. java.lang 패키지와 유용한 클래스

java.lang package & util class Object 클래스 // 객체자신.ObjectClassMethod(); protected Object clone(); //객체자신의 복사본 반환 public boolean equals(Object obj); // 객체자신과 객체 obj가 동일한 객체인지 알려준다 public Class getClass(); // 객체자신의 클래스 정보를 담고있는 class instance를 반환 // class Class명 으로 출력 // getClass().getName()으로 출력시 Class명 만 출력 public int hashCode(); // 객체자신 해시코드 반환 public String toString(); // 객체자신 정보를 문자열로 반환 prote..

java/java 기본

8.예외 처리

1. 프로그램 오류 프로그램 오류, 프로그램 에러 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우 발생시점 컴파일 에러: 컴파일 시 발생하는 에러 * compiler: 구문체크, 최적화, 번역, 생략 코드 추가 런타임 에러: 실행 시 발생 모든 에러 논리적 에러: 실행은 되지만 의도와 다르게 동작 에러와 예외 컴파일러가 소스코드 *.java 검사 후 오류가 없을 시 *.class 파일이 생성되고 프로그램이 실행된다. 프로그램 실행시 발생하는 에러가 존재할 수 있으므로 해당 모든 경우의 수를 고려하여 대비하기 위해 에러와 예외를 둔다. 에러 : 프로그램 코드에 의해 수습될 수 없는 심각한 오류 - 복구 불가 OutOfMemoryError StackOverflowError ..

wooweee
'java/java 기본' 카테고리의 글 목록