더 자바, Java 8 - 인프런 | 강의 자바 8에 추가된 기능들은 자바가 제공하는 API는 물론이고 스프링 같은 제 3의 라이브러리 및 프레임워크에서도 널리 사용되고 있습니다. 이 시대의 자바 개발자라면 반드시 알아야 합니다. 이 www.inflearn.com Optional은 언제 사용되는 것인가? 아래 소스를 확인해보자. public class App { public static void main(String[] args) { OnlineClass spring_boot = new OnlineClass(1, "spring boot", true); Duration studyDuration = spring_boot.getProgress().getStudyDuration(); //출력을 하면 결과는 어떻..
개발을 하다보면 인스턴스 필드들만 모아놓는 목적만 가진 아래와 같은 클래스를 구성하는 경우가 있다. public class Point{ public double x; public double y; } 이유는, 이러한 클래스 형태로 구현했을 때는 클라이언트에서 필드에 직접 접근할 수 있으므로 캡슐화의 이점을 제공하지 못한다는 단점이 있다. 또한 좀 더 알아보면, API를 수정하지 않고는 내부 표현을 바꿀 수 없다. public 필드로만 구성되어 있기 때문에 내부 표현을 변경하기 위해서는 API의 필드를 변경해야 한다. (메소드가 존재할 땐 파라미터에 따라 내부 표현이 변경 가능) 불변식을 보장할 수 없다. 클라이언트에서 직접적으로 필드에 접근하고 있으므로 클라이언트에 의해 언제든지 변경이 가능하다. 외부에..
Cloneable은 어떤 클래스를 복제해도 된다는 사실을 알리기 위해서 만들어진 믹스인 인터페이스(아이템20)이다. Java의 Cloneable 인터페이스를 보면 아무런 메소드가 보이지 않지만 사실 Object의 clone() 메소드의 동작방식을 결정하고 있다. By convention, classes that implement this interface should override Object.clone (which is protetected) with a pulibc method. See {@link java.lang.Object#clone()} for details on overriding this method. 그럼 Cloneable의 목적을 자세히 살펴보자. 다시 말해, Cloneable의 인터..
지난 포스팅 때, 책을 그저 적기만 한 것 같아 다시 한번 포스팅을 시작했다.. 생성자와 정적 팩터리 메서드 보통 클래스의 인스턴스는 public 생성자를 활용하여 생성한다. 그런데 클래스 자체는 생성자와 별도로 아래와 같은 정적 팩토리 메소드를 제공할 수 있다. public static int testMethod() { return 0; } 위에서 설명한 바와 같이 클래스에서는 클라이언트에게 public 생성자를 제공해주지만 이 뿐만 아니라 정적 팩토리 메소드도 제공해줄 수 있다. //public 생성자 public class MyBook { public MyBook() {} } //static factory method public class MyBook { private MyBook() {} pub..
- Total
- Today
- Yesterday
- flatMap
- 연관관계
- springboot
- java
- 점층적 생성 패턴
- 정적팩터리메서드
- Spring
- effectivejava
- jdk버전
- 이펙티브 자바
- 스프링부트
- try catch finally
- 빌더 패턴
- 이펙티브자바
- 팩토리 메소드 패턴
- junit
- 생성자
- @Lazy
- try with resources
- package-private
- 복사 팩토리
- java8
- mustache
- 자바8
- ifPresent
- 김영한
- 인프런
- 빈 순환 참조
- JPA
- Effective Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |