분류 전체보기89 3.1. Generics 1. 타입파라미터와 타입 아규먼트 public class Generics { static class Hello { // T-> 타입 파라미터 T t; T method(T val) {return null;} } public static void main(String[] args) { new Hello(); // 타입 아규먼트 } } 2. 제너릭 쓰는이유 1. 컴파일시점에서 컴파일러가 정확하게 타입체킹을 할 수 있다. public static void main(String[] args) { List list = Arrays.asList(1, 2, 3); list.add("runTimeError"); List listWithGen = Arrays.asList(1, 2, 3); listWithGen.add("c.. 2021. 2. 24. 2. 슈퍼 타입 토큰 1. 제너릭 아래의 코드에서 s.value 컴파일 타임에서는 컴파일러가 미리 체크를하고, 캐스팅해준다. s.value = "String" ==(컴파일러)==> s.value = (String) "String"; 런타임에서 value 의 타입은 Object이다. type erasure 가 타입 파라미터를 지운다. public class TypeToken { static class Generic { T value; void set(T t) {} T get() {return null;} } public static void main(String[] args) throws Exception { Generic s = new Generic(); s.value = "String"; Generic i = new Gen.. 2021. 2. 20. 1. 재사용성과 다이나믹 디스패치, 더블 디스패치 1. 메소드 디스패치란? 어떤 메소드를 내가 호출한 것인가를 결정해서 실행하는 과정을 말한다. 2. 스태틱 디스패치 프로그램이 실행되는 런타임 이전에도 어느 메소드가 호출될 것인지가 이미 결정된 경우를 말한다. 예시) main 함수에서 이미 어떤 함수를 호출할 지에 대해서 런타임 이전에도 다 알고있다. public class Dispatch { static class Service { void run(int number) { System.out.println("run(" + number + ")"); } void run(String msg) { System.out.println("run(" + msg + ")"); } } public static void main(String[] args) { new S.. 2021. 2. 20. 8. 스프링이란 무엇인가 0. 스프링이란? 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 0.1. 어플리케이션 프레임워크 웹 계층을 MVC 구조로 손쉽게 만들수 있도록 도움을 준다. 포맷과 출력장치를 유연하게 변경할 수 있는 로그기능을 제공한다. ORM 기술을 제공한다. 0.2. 자바 엔터프라이즈 개발을 편하게 개발자가 복자하고 실수하기 쉬운 로우레벨 기술에 많은 신경을 쓰지 않고, 비즈니스 로직을 빠르고 효과적으로 구현하는 것 1. POJO 란 특정 규약에 종속되지 않는다. ex) 어떤 클래스를 필수적으로 상속해야하나던지, 어떤 DTO 를 필수적으로 구현해야 한다던지.. 특정 환경에 종속되지 않는다. ex) EJB 를 사용하기 위해서는 JNDI 서버가 필수적인 경우 ex) 비즈니스 코드에 Htt.. 2021. 2. 20. 이전 1 ··· 8 9 10 11 12 13 14 ··· 23 다음