변수의 Scope와 static 변수가 선언된 블럭이 해당 변수의 사용범위이다 public class ValueScope{ int global = 0; public int func(int val) { int local = 1; } } 클래스 속성의 변수 global 변수로서, ValueScope 전체 범위가 해당 변수의 Scope이다. 매개변수로 선언된 변수 val 변수로서, func 메소드 블럭만이 해당 변수의 Scope이다. 메소드 블럭 내에 선언된 변수 local 변수로서, 매개변수와 마찬가지로 func 메소드의 블럭만이 해당 변수의 Scope이다. static 공유 자원이며, 객체가 인스턴스화 되지 않아도 호출하여 사용할 수 있는 특징을 가지고 있다. 좀 더 자세한 설명을 봐보자 메모리 할당 지역..
제네릭 제네릭이란 무엇인가? 제네릭은 간단히 말해 데이터 타입을 명시하지 않은 상태를 말한다. 쉽게 생각해보면 클래스의 데이터 타입을 미리 정의하지 않고, 클래스가 인스턴스화 되는 시점에 데이터 타입을 지정해주는 방식이다. 제네릭은 를 활용하여 구현한다. 제네릭을 사용하는 이유는 무엇인가? 제네릭을 사용하는 이유 즉, 장점을 살펴보겠다. 제네릭을 활용하면 강제적인 타입 변환이 발생하지 않아 성능 저하를 방지할 수 있다. 중복 코드를 제거하고 코드의 재사용성을 증진시킨다. 컴파일 시에 타입 오류를 체크하여 안정적으로 데이터 타입을 체크할 수 있다. 하나씩 코드와 함께 살펴보자. 제네릭을 활용하면 강제적인 타입 변환이 발생하지 않아 성능 저하를 방지할 수 있다. 제네릭을 사용하지 않는 코드를 확인해보자 pu..
팩토리 메서드 패턴 팩토리 메서드 패턴이란, 객체를 생성하는 부분을 서브 클래스로 분리하여 처리하도록 캡슐화한 패턴을 말한다. 결과적으로, 객체를 만들어내는 공장을 만드는 패턴 Ex. //1. 로봇의 인터페이스와 로봇을 구현하는 구현체를 작성 //Robot public interface Robot { public String name(String name); } //AnimalRobot public class AnimalRobot implements Robot { @Override public String name(String name) { return "Animal"; } } //HumanRobot public class HumanRobot implements Robot { @Override publi..
- Total
- Today
- Yesterday
- java
- 스프링부트
- @Lazy
- 이펙티브자바
- effectivejava
- springboot
- jdk버전
- junit
- 점층적 생성 패턴
- 김영한
- 인프런
- Effective Java
- 빌더 패턴
- 연관관계
- try catch finally
- 정적팩터리메서드
- 빈 순환 참조
- flatMap
- java8
- 팩토리 메소드 패턴
- 생성자
- Spring
- package-private
- 복사 팩토리
- try with resources
- JPA
- 자바8
- 이펙티브 자바
- mustache
- ifPresent
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |