Lang/Java(33)
-
21. optional 클래스
Integer나 Double 클래스처럼 객체를 포장해주는 Wrapper 클래스 모든 타입의 참조변수를 저장할 수 있다 Optional 객체 사용시 NullPointerException 메서드로 간단한 회피 가능 복잡한 조건문 없이 null값으로 발생하는 예외 처리 가능 1. optional 객체의 생성 of()메서드나 ofNullable()메서드를 이용해 객체 생성 가능 of()메서드 null이 아닌, 명시된 값을 가지는 Optional 객체 반환 해당 객체에 null이 저장되면 NullPointerException 예외 발생 null 가능성 있을 시 ofNullable()메서드 사용 ofNullable() 메서드 null일 시 비어있는 객체 반환 Optional opt = Optional.ofNulla..
2023.03.28 -
20. 스트림
1. 스트림API 배열이나 컬렉션에 접근하기 위해서는 매번 새로운 코드 작성, 반복문 사용 코드가 길어지고 가독성 하락 위 문제점 해결을 위해 스트림 API 도입 특징 내부반복을 통해 작업 컬렉션은 외부반복 단 한번만 사용 가능 컬렉션은 재사용 가능 원본데이터를 변경하지 않는다 필터-맵 기반의 지연연산 parrallelStream() 메서드를 통한 병렬처리 동작흐름 스트림 생성 스트림의 변환 중개연산(필터) 중개연산(맵) 스트림의 사용 최종연산 //문자열의 길이가 5 이상인 요소 출력 sList.straem().filter(s->s.length()>=5).forEach(s->System.out.println(s)); //스트림생성 / 중간연산 / 최종연산 2. 스트림의 생성 컬렉션 컬렉션의 최고 상위인 ..
2023.03.28 -
19. 람다식
1. 람다식이란 메서드를 하나의 식으로 표현한 것 메서드 int min(int x, int y){ return xx {함수몸체} 클래스 작성 및 객체생성 없이 메서드 이용 가능 람다식은 일종의 익명클래스와 같다고 할 수 있다 람다식은 매개변수로 전달될 수 있으며, 결과로 반환될 수도 있다 유의사항 매개변수의 타입을 추론할 수 있는 경우 타입 생략 가능 매개변수가 하나인경우 괄호 생략 가능 괄호 생략 시 타입도 생략 함수의 몸체가 하나의 명령문일 경우 중괄호와 세미콜론 생략 가능 함수의 몸체가 하나의 return문으로만 이루어진 경우 중괄호 생략 불가능 return문 대신 표현문 사용 가능 반환값은 표현식의 결과값, 세미콜론 생략 int max(int a, int b) { return a > b ? a :..
2023.03.28 -
18. 내부클래스
1. 내부클래스란 클래스 내에 선언된 클래스 주로 AWT나 Swing과 같은 GUI어플리케이션 이벤트처리에 사용 클래스 내에 내부클래스를 선언하면 두 클래스의 멤버 간 접근이 용이 외부에는 불필요한 클래스를 감춘다 내부클래스 선언 위치에 따른 종류 인스턴스 클래스 외부클래스의 멤버변수 선언위치에 선언 외부클래스의 인스턴스멤버처럼 다루어진다 스태틱 클래스 외부클래스의 멤버변수 선언위치에 선언 외부캘르새의 static 멤버처럼 다루어진다 지역 클래스 외부클래스의 메서드나 초기화블럭 안에 선언 선언된 영역 내부에서만 사용가능 익명 클래스 클래스의 선언과 객체의 생성을 동시에하는 일회용 클래스 내부클래스도 클래스이기에 abstract나 final 등의 제어자 사용 가능 추가적으로 private, protecte..
2023.03.28 -
17. 오브젝트 클래스
모든 클래스의 최고 상위 클래스 object클래스의 멤버들은 모든 클래스에서 바로 사용 가능 8개의 메서드 보유 객체를 처리하기 위한 메서드 clone() : 객체의 복사본을 만들어 리턴 equals() : 객체의 주소값 비요 finalize() : 객체가 쓸모없어졌을 때 가비지컬렉터에 의해 호출 getClass() : 현재 객체의 클래스의 객체를 리턴 hashCode() : 객체에 대한 해시코드 메모리주소 리턴 toString() : 객체를 문자열로 표현하는 값 리턴 쓰레드를 위한 메서드 notify() : 객체의 모니터에 대기하고있는 단일 쓰레드를 깨운다 notifyAll() : 객체의 모니터에 대기하고있는 모든 클래스를 깨운다 wait() : 다른 쓰레드가 현재 객테에 대한 메서드를 호출할 때까지 ..
2023.03.28 -
16. 문자열 String
1. String 변경이 불가능한 문자열 상수 개념 String str = "java"; String str = new String("java"); 문자열을 더하거나 변경하면 새로운 String객체 생성 기존 객체는 버려지며 쓰레기가 된다. 같은 문자열은 하나의 String 인스턴스 공유 String str1 = "hi"; String str2 = "hi"; String str3 = "hello"; String str4 = new String("hi"); str1과 str2는 같은 인스턴스 공유 str4는 새로 객체를 생성했기 때문에, 인스턴스를 공유하지 않는다. //equals가 아닌 ==를 통해 주소값 public class StringTest { public static void main(Strin..
2023.03.28