https://sundaland.tistory.com/273 [ ▶ JDBC ]JDBC API는 특히 관계형 데이터페이스에 저장된 데이터를 포함하여 모든 종류의 표 형식 데이터를 액세스할 수 있는 자바 API이다. JDBC는 아래 세 가지 프로그래밍 활동을 관리하는 자바 애플리케이션을 작성하는데 도움이 된다.Data Source(데이터베이스)에 연결데이터베이스에 쿼리와 업데이트 문을 전송쿼리에 대한 응답으로 데이터베이스에서 받은 결과를 검색하고 처리▼ 위 세 가지 프로그래밍 활동을 간단하게 보여주는 예시public void connectToAndQueryDatabase(String username, String password) { Connection con = DriverManager.getCon..
자바 튜토리얼
단순히 여러 엘리먼트들을 단일 단위로 그룹화하는 객체이다. 때때로 컨테이너라고도 한다. 컬랙션은 Aggregate 데이터를 저장, 검색, 조작 및 전달하는데 사용된다.일반적으로 포커 핸드, 메일 폴더 또는 전화반호부와 같이 자연스러운 그룹을 형성하는 데이터 아이템들을 나타낸다. 컬렉션 프레임워크는 컬렉션을 표현하고 조작하기 위한 통합 아키텍처다. 모든 컬렉션 프레임워크엔 다음이 포함된다.인터페이스 : 컬렉션을 나타내는 추상 데이터 타입이다. 인터페이스를 사용하면 표현(Representation)의 세부 사항과 관계없기 컬렉션을 조작할 수 있다. 객체 지향 언어에서 인터페이스는 일반적인 계층 구조를 형성한다.Implementations : 컬렉션 인터페이스의 구체적인 구현체로, 본질적으로 재사용 가능한 d..
https://sundaland.tistory.com/163 [ ▶ 타입 소거 (Type Erasure) ]제너릭은 컴파일 타임에 더 엄격한 타입 체크를제공하고 제너릭 프로그래밍을 지원하기 위해 자바 언어에 도입되었다.제너릭을 구현하기 위해 자바 컴파일러는 타입 소거를 다음에 적용한다.제너릭 타입에 제한(Bounds)이 있다면 제한 타입으로, 타입 파리미터가 없다면 Object로 대체한다. 따라서 생성된 바이트코드는 일반 클래스, 인터페이스, 메서드만을 포함한다.타입 안전을 유지하기 위해 필요한 경우 타입 케스트를 삽인한다.확장된 제너릭 타입에서 다형성을 유지하기 위해 브리지 메서드를 생성한다.타입 소거는 파라미터화된 타입에 대해 새 클래스가 생성되지 않도록 한다. 결과적으로 제너릭은 런타임 오버헤드를..
https://sundaland.tistory.com/162 [ ▶ 와일드카드 (Wildcards) ]일반 코드에서 와일드카드라고 하는 물음표(?)는 알 수 없는 타입을 나타낸다. 와일드카드는 다양한 상황에서 사용할 수 있다. 때로는 리턴 타입으로 사용된다.와일드카드는 제너릭 메서드 호출, 제너릭 클래스 인스턴스 생성 또는 상위 타입에 대한 타입 아규먼트로 사용되지 않는다. [ ▷ 상한 와일드카드 (Upper Bounded) ]상한 와일드카드를 사용하여 변수에 대한 제한을 완화할 수 있다. 예를 들어 List, List 및 List에서 작동하는 메서드를 작성한다고 가정한다. 상한 와일드카드를 선언하려면 와일드카드 문자 (?), extends 키워드, upper bound를 차례로 사용한다. 이 컨텍스트에..
https://sundaland.tistory.com/161[ ▶ Type Inference ] 타입 유추는 메서드 호출에 적용할 수 있는 타입 아규먼트 (또는 아규먼트)를 결정하기 위해 해당 메서드 호출 및 해당 메서드 선언을 살펴보는 자바 컴파일러의 기능이다.추론 알고리즘은 타입 아규먼트와 (가능한 경우) 리턴되는 타입을 결정한다.추론 알고리즘은 모든 아규먼트와 함께 동작하는 특정 타입을 찾으려고 시도한다. 아래 코드의 타입 추론은 pick 메서드에 전달되는 두 번째 아규먼트가 Serializalbe 유형임을 확인한다.static T pick(T a1, T a2) { return a2; }Serializable s = pick("d", new ArrayList()); [ ▷ 타입 유추와 제너릭 메서..
https://sundaland.tistory.com/160[ ▶ 제너릭 (Generics) ]클래스, 엔터페이스 및 메서드를 정의 할때 타입(클래스 및 인터페이스)을 파라미터로 사용할 수 있다.메서드 선언에 사용되는 formal 파라미터와 마찬가지로, 타입 파라미터는 다른 입력으로 동일한 코드를 재사용할 수 있는 방법을 제공한다. (템플릿이라고도 한다.)formal 파라미터에 대한 입력은 값이지만, 타입 파라미터에 대한 입력은 타입이다.컴파일 시간에 더 강력한 타입 검사. 자바 컴파일러는 제너릭 코드에 강력한 타입 검사를 적용하기에, 컴파일 오류를 발견하기 쉽다.캐스트 제거. 해당 리스트의 엘리먼트 타입을 알 수 없다. (raw 타입은 제너릭 JPA에서 여전히 사용되고 있다.)▼ 제너릭이 없는 아래의 ..
https://sundaland.tistory.com/276 Lesson: Interfaces and Inheritance[Inheritance 2] sundaland.tistory.com 다양성 (Polymorphism)다형성의 사전적 정의는 유기체나 종의 다양한 형태나 단계를 가질 수 있는 생물학의 원리를 의미한다.이 원칙은 객체 지향 프로그래밍(OAP) 및 자바 언어와 같은 언어에도 적용이 가능하다.클래스의 하위 클래스는 고유한 동작을 정의하면서 상위 클래스와 동일한 기능 중 일부를 공유할 수 있다. 다음 코드는 Bicycle 클래스를 약간 수정하여 다형성을 시연한 것이다. 현재 인스턴스에 저장된 모든 데이터를 표시하는 클래스에 printDescription 메서드를 추가했다.public void ..
리팩토링코드를 재구성하여 코드의 구조를 개선하고 유지보수를 쉽게 하기 위한 작업이다.결과의 변함이 없이 코드를 재구성한 것으로 주로 가독성을 높이고 유지보수를 편하게 한다. 버그를 없애거나 새로운 기능을 추가하는 행위는 ㄹ아니다.메서드 추출 (Extract Method): 긴 메서드를 작은 단위의 메서드로 분리하여 코드 가독성을 높입니다.클래스 추출 (Extract Class): 큰 클래스를 작은 클래스로 분리하여 각 클래스가 단일 책임을 가지도록 합니다.메서드 옮기기 (Move Method): 메서드가 더 잘 어울리는 다른 클래스로 이동하여 관련성을 높입니다.필드 옮기기 (Move Field): 필드가 더 잘 어울리는 클래스로 이동하여 응집도를 높입니다.인터페이스 추출 (Extract Interface..