프로그래밍/JAVA

OptionalNPE (NullPointerException)  : 개발을 할 때 가장 많이 발생하는 예외Optional는 null이 올 수 있는 값을 감싸는 Wrapper 클래스로, 참조하더라도 NPE가 발생하지 않도록 도와준다.Optional.of() - 값이 Null이 아닌 경우Optional.ofNullbale() - 값이 Null일수도, 아닐수도 있는 경우Optional은 값을 Wrapping하고 다시 풀고, null 일 경우에는 대체하는 함수를 호출하는 등의 오버헤드가 있으므로잘못 사용하면 시스템 성능이 저하된다.자바에서는 거의 모든것이 래퍼런스 -> 거의 모든것이 null이 될 수 있다.메소드의 반환 값이 절대 null이 아니라면 Optional을 사용하지 않는 것이 좋다.출처: https:..
스트림데이터 소스를 변경하지 않는다.일회용이다작업을 내부 반복으로 처리한다.데이터의 연속이다Collections.stream() 을 제공 (Java8) 스트림 연산 중간연산 : 연산 결과가 스트림인 연산. 스트림에 연속해서 중간 연산할 수 있음최종 연산 : 연산 결과가 스트림이 아닌 연산. 스트림의 요소를 소모하므로 단 한번만 가능         stream.distinct().limit(5).sorted().forEach(System.out::println)                 중간 연산   중간 연산 중간 연산         최종 연산스트림의 최종 연산forEach() : 스트림의 요소를 출력하는 용도findFirst() : 스트림의 요소 중에서 조건에 일치하는 첫 번째 것을 반환, 주로 f..
OptionalOptional지네릭 클래스로 'T타입의 객체'를 감싸는 래퍼 클래스이다. Optional 타입의 객체에는 모든 타입의 참조변수를 담을 수 있다.최종 연산의 결과를 그냥 반환하는게 아니라 Optional 객체에 담아서 반환함반환된 결과가 null인지 매번 if문으로 체크하는 대신 Optional에 정의돈 메서드를 통해서 간단히 처리할 수 있다.  Optional객체 생성하기of() / ofNullable()  Optional 객체의 값 가져오기get()을 사용한다.값이 Null일 때는 NoSuchElementException이 발생하며, 이를 대비해서 orElse()로 대체할 값을 지정할 수 있다.
Functional f =(String s) -> Integer.parseInt(s) Functional f = Integer::parseInt         종류                              람다                      메서드참조     static메서드 참조            (x)->ClassName.method(x)        ClassName::method     인스턴스메서드 참조           (obj,x)->obj.method(x)           ClassName::method     특정 객체 인스턴스메서드 참조   (x)->obj.method(x)              obj::method
객체 지향 프로그래밍프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고,객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법코드의 재사용성이 높다코드의 관리가 용이하다신뢰성이 높은 프로그래밍을 가능하게 한다객체와 인스턴스클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화어떤 클래스로부터 만들어진 객체를 그 클레스의 인스턴스라고 함인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야함 상속의 오해'공통된 기능을 여러 객체에게 전달하고 싶을 때' 라고 생각하기 쉽지만 근본적인 의도가 아님!원자 > 물질 > 생물 > 동물> ... 추상화가 되야함new 연산자를 이용해서 객체를 직접 만들지 못하게 할 수 있음 abstract class Lo..
지네릭스다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능타입의 안정성을 제공타입체크와 형변환을 생략할 수 있으므로 코드가 간결해짐타입설명TypeElementKeyValueNumberR, A, U 등등도 존재한다 class Box{ T item; void setItem(T item){ this.item = item; } T getItem(){ return item; }}Box box = new Box()box.setItem("ABC");// 이런식으로 변환됌class Box{ String item; void setItem(String item){ this.item = item; } String getItem(){ ..
류가든
'프로그래밍/JAVA' 카테고리의 글 목록 (3 Page)