Java Class Notes 16

Lambda & Stream (람다식과 스트림)

람다식과 스트림(Lambda & Stream) 람다식이란 자바 8부터 함수적 프로그래밍 위해 람다식 지원 람다식(Lambda Expressions)을 언어 차원에서 제공 - 람다 계산법에서 사용된 식을 프로그래밍 언어에 접목 - 익명 함수(anonymous function)을 생성하기 위한 식 자바에서 람다식을 수용한 이유 • 코드가 매우 간결해진다. - 컬렉션 요소(대용량 데이터)를 필터링 또는 매핑해 쉽게 집계 자바는 람다식을 함수적 인터페이스의 익명 구현 객체로 취급 - 어떤 인터페이스를 구현할지는 대입되는 인터페이스에 달려있음 함수적 스타일의 람다식 작성법 (타입 매개변수) -> { 실행문; ... } (int a) -> {System.out.println(a)} 매개 타입은 런타임시에 대입값 따..

Java Class Notes 2023.03.16

Network (네트워크)

네트워크 Network 네트워트란 네트워크(Network)란 같은 데이터 전송 프로토콜(protocol)을 가지고 통신을 하는 연결된 장치들을 총칭하는 것을 말한다. 여러 장치들이 서로 교신하기 위해서는 같은 의사소통방식을 사용해야 하는데 이런 역할을 하는 것을 프로토콜이라 한다. 프로토콜은 컴퓨터와 컴퓨터가 통신 하기 위한 일종의 규약으로 서로 다른 언어를 사용하는 사람 사이에 의사소통이 안되듯이 네트워크 에서도 동일한 규격의 프로토 콜을 사용해야만 네트워크가 가능 하다. 사전적 의미로 전선이나 혈관, 통로 등으로 이루어진 망형 조직을 말하는 것으로 IT 에서 네트워크는 컴퓨터와 컴퓨터를 연결해주는 망을 의미한다. 일상적으로 사용하고 있는 인터넷은 네트워크 응용 서비스의 한 종류로 TCP/IP 라고 하..

Java Class Notes 2023.03.15

Thread(스레드)

Thread(쓰레드) Process and Thread 프로그램 ----- 실행 -----> 프로세스 프로그램 : 실행 가능한 파일(HDD) 프로세스 : 실행 중인 프로그램(메모리) Thread in Java 하나의 프로그램이 동시에 여러 개의 일을 수행할 수 있도록 해 주는것 순차적으로 동작하는 문장들의 단일 집합 경량(lightweight) 프로세스 다중 스레드 - 하나의 프로세스(프로그램)에 하나 이상의 스레드를 생성하 여 실행할 때 자바는 스레드를 지원하기 위해 java.lang.Thread 클래스 제공 Process and Thread Process : 실행 중인 프로그램, 자원(resources)과 쓰레드로 구성 Thread : 프로세스 내에서 실제 작업을 수행. 모든 프로세스는 하나 이상의 ..

Java Class Notes 2023.03.10

Ex - Customer Account

Customer DB를 사용하지 않고 클래스 파일이 실행되는 동안에만 사용자의 id, pw, email, name, date created 를 저장할 수 있는 프로그램. 사용자가 저장한 정보를 수정할 수 있다. (등록하려는 id가 중복이거나 암호가 다르거나 하면 등록/수정 할 수 없다. ) customer customer : DTO(Data Transfer Object), VO(Value Object) Ex01(콘솔,웹) --------------> CustomerServiceImpl -----------> CustomerDaoImpl Business Model 1) 입력 ------입력요청-----> 업무처리 -----------> Map을 통해 메모리에 데이터 처리 (있는 데이터인지 확인) 다시 입력..

Java Class Notes 2023.03.10

Genetic and Collection (제네릭과 컬렉션)

제네릭과 컬렉션(Genetic and Collection) 컬렉션 프레임웍 (Collection Framework) 컬렉션 프레임웍(collection framework) 데이터 군(群)을 저장하는 클래스들을 표준화한 설계 다수의 데이터를 쉽게 처리할 수 있는 방법을 제공하는 클래스들로 구성 JDK1.2부터 제공 컬렉션(collection) 다수의 데이터, 즉, 데이터 그룹을 의미한다. 프레임웍(framework) 표준화, 정형화된 체계적인 프로그래밍 방식 컬렉션 클래스(collection class) 다수의 데이터를 저장할 수 있는 클래스(예, Vector, ArrayList, HashSet) 컬렉션 프레임웍의 동기화(synchronization) 멀티쓰레드 프로그래밍에서는 컬렉션 클래스에 동기화 처리..

Java Class Notes 2023.03.06

Exception (예외처리)

예외처리 (Exceptiton) 오류의 종류 에러(Error) 하드웨어의 잘못된 동작 또는 고장으로 인한 오류 • 에러가 발생되면 프로그램 종료 정상실행상태로돌아갈수없음 예외(Exception) 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인한 오류 예외가 발생되면 프로그램 종료 예외처리추가하면정상실행상태로돌아갈수있음 예외의 종류 일반(컴파일 체크) 예외(Exception) 예외처리코드없으면컴파일오류발생 실행 예외(RuntimeException) 예외 처리 코드를 생략하더라도 컴파일이 되는 예외 • 경험따라예외처리코드작성필요 예외의 개요 예외 : 프로그램 실행 중에 발생하는 예기치 않은 사건 예외가 발생하는 예 정수를 0으로 나누는 경우 배열의 첨자가 음수 또는 범위를 벗어나는 경우 부적절한 형변..

Java Class Notes 2023.03.03

Interface (다형성&추상 메서드)

다형성 (Polymorphism) 다형성이란? "one interface, multiple implementation" 하나의 인터페이스를 사용하여 다양한 구현 방법을 제공 하나의 클래스나 함수가 다양하게 동작하는 것 “여러 가지 형태를 가질 수 있는 능력” “하나의 참조변수로 여러 타입의 객체를 참조할 수 있는 것” 즉, 조상타입의 참조변수로 자손타입의 객체를 다룰 수 있는 것이 다형성. 오버라이딩(overriding) “조상클래스로부터 상속받은 메서드의 내용을 상속받는 클래스에 맞 게 변경하는 것을 오버라이딩이라고 한다.” * override - vt. ‘~위에 덮어쓰다(overwrite).’, ‘~에 우선하다.’ 오버라이딩의 조건 선언부가 같아야 한다.(이름, 매개변수, 리턴타입) 접근제어자를 좁은..

Java Class Notes 2023.02.27

Inner Class(내부 클래스)

내부 클래스 (Inner Class) 내부 클래스란? 클래스 안에 선언된 클래스 특정 클래스 내에서만 주로 사용되는 클래스를 내부 클래스로 선언한다. GUI어플리케이션(AWT, Swing)의 이벤트처리에 주로 사용된다. 내부 클래스의 장점 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다. 코드의 복잡성을 줄일 수 있다.(캡슐화) 내부 클래스의 종류와 특징 내부 클래스의 종류는 변수의 선언위치에 따른 종류와 동일하다. 유효범위와 성질도 변수와 유사하므로 비교해보면 이해하기 쉽다. 내부 클래스 ( Inner Class ) 특 징 ( Chacteristic ) 인스턴스 클래스 ( Instance class ) 외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 instance멤버처럼 다루어..

Java Class Notes 2023.02.24

Inheritance(상속)

상속 (Inheritance) 객체지향 프로그래밍에서 상속이란? 자식(하위, 파생) 클래스가 부모(상위) 클래스의 멤버를 물려받는 것 자식이 부모를 선택해 물려받음 상속 대상: 부모의 필드와 메소드 상속의 효과 부모 클래스 재사용해 자식 클래스 빨리 개발 가능 유지보수편리성제공 반복된코드중복줄임 객체다형성구현가능 상속 대상 제한 부모 클래스의 private 접근 갖는 필드와 메소드 제외 부모 클래스가 다른 패키지에 있을 경우, default 접근 갖는 필드와 메소드도 제외 Extends 자식 클래스가 상속할 부모 클래스를 지정하는 키워드 상속 클래스간의 관계 공통부분은 조상에서 관리하고 개별부분은 자손에서 관리한다. 조상의 변경은 자손에 영향을 미치지만, 자손의 변경은 조상에 아무런 영향을 미치지 않는다..

Java Class Notes 2023.02.24