본문 바로가기
728x90
반응형

Web114

Java(28) - IO입출력 1. 자바의 입출력을 위한 I/O 스트림 1) 입출력 스트림 - 네트워크에서 자료의 흐름이 물의 흐름과 같다는 비유에서 유래됨. - 자바는 다양한 입출력 장치에 독립적으로 일관성있는 입출력을 입출력 스트림을 통해 제공. - 입출력이 구현되는 곳 : 파일 디스크, 키보드, 마우스, 네트워크, 메모리 등 모든 자료가 입력되고 출력되는 곳. 2) 입출력 스트림 구분 - 대상 기준 : 입력 스트림 / 출력 스트림 - 자료의 종류 : 바이트 스트림 / 문자 스트림 - 기능 : 기반 스트림 / 보조 스트림 2. 입력 스트림과 출력 스트림 1) 입력스트림 : 대상으로부터 자료를 읽어들이는 스트림 2) 출력스트림 : 대상으로 자료를 출력하는 스트림 3) 스트림 종류 - 입스 : FileInputStream, FileR.. 2022. 1. 28.
Java(27) - 예외처리 1. 오류의 종류 1) 에러(Error) - 의도치 않게 프로그램이 종료되는 것을 에러라 함. - 하드웨어의 잘못된 동작 또는 고장으로 인한 오류(ex-정전, 배드섹터 등) - 에러가 발생하면 프로그램이 비정상 종료가 됨. - 정상 실행 상태로 돌아갈수가 없음. 2) 예외(Exception) - 사용자가 잘못된 조작 또는 개발자의 잘못된 프로그래밍으로 인한 오류를 말함. - 예외가 발생하면 프로그램이 종료됨. - 단, 예외 처리를 추가하면 정상 실행 상태로 되돌릴수가 있음. 2. 프로그램에서의 예외(오류) 1) 컴파일 오류 (compile error, checked exception) - 프로그램 코드 작성 중 발생하는 문법적 오류. - 예외 처리 코드가 없다면 컴파일 예외 발생함. - eclipse, .. 2022. 1. 28.
Java(26) - Stream 1. 스트림 의미 1) 데이터 집합체를 반복적으로 처리 2) 스트림을 이용하면 다수의 스레드 코드를 구현하지 않아도 데이터를 병렬로 처리 3) 스트림은 스트림 데이터와 스트림 연산의 개념을 모두 포함. 2. 컬렉션과 스트림 비교 컬렉션 스트림 1) 처리방식 다운로드 스트리밍 2) 저장공간 필요 불필요 3) 반복방식 외부반복 내부반복 4) 코드구현 명령형 선언형 5) 원본데이터 변경 변경하지 않고 소비 6) 연산병렬화 어려움 쉬움 3. 스트림 특징 1) 자료의 대상과 관계없이 동일한 연산을 수행 배열, 컬렉션을 대상으로 연산을 수행함 2) 한번 생성하고 사용한 스트림은 재사용 할 수 없음. 자료에 대한 스트림을 생성하여 연산을 수행하여 스트림은 소모됨. 다른 연산을 수행하기 위해서는 스트림을 다시 생성해야.. 2022. 1. 28.
Java(25) - 람다식 1. 프로그래밍 방법론 1) 절차식 프로그래밍 - 순차적인 명령을 수행하고 간단한 분기만 가능 2) 구조적 프로그래밍 - 특정 변수를 묶어 구조화하고 이를 통해 프로그래밍 효율 높임. 3) 객체지향 프로그래밍 - 객체를 기반으로 프로그래밍 되며 클래스, 속성, 기능등의 현실세계 모델을 반영함. 4) 함수형 프로그래밍 - 객체의 형태를 벗어나 함수형을 확장해 함수를 변수처럼 사용 가능. 2. 함수형 프로그래밍과 람다식(Lambda expression) 1) 자바는 OOP : 기능을 수행하기 위해서는 객체를 만들고 그 객체 내부에 멤버 변수를 선언하고 기능을 수행하는 메서드를 구현. 2) 자바 8부터 함수형 프로그래밍 방식을 지원하고 이를 람다식이라 함. - 자바에서 람다식을 수용한 이유 - 코드가 매우 간.. 2022. 1. 28.
Java(24) - 내부클래스 1. 내부 클래스란? (inner class) 1) 클래스 내부에 선언한 클래스로 이 클래스를 감싸고 있는 외부 클래스와 밀접한 연관이 있는 경우가 많고, 다른 외부 클래스에서 사용할 일이 거의 없는 경우에 내부 클래스로 선언해서 사용함. 2) = 중첩 클래스라고도 함. 3) 종류 - 인스턴트 내부 클래스 - 정적(static) 내부 클래스 - 지역(local) 내부 클래스 - 익명(anonymous) 내부 클래스 2. 인스턴트 내부 클래스 1) 내부적으로 사용할 클래스를 선언 (private 선언하는 것을 권장) 2) 외부 클래스가 생성된 후 생성됨 (정적 내부 클래스와 다름) 3) private이 아닌 내부 클래스는 다른 외부 클래스에서 생성할수 있음. 4) 내부 클래스의 객체 생성 외부클래스.내부클.. 2022. 1. 28.
Java(22) - review3 1. 객체지향 프로그래밍 1) 추상화 (Abstraction)와 일반화 - 어떤 영역에서 필요로 하는 속성이나 기능을 추출하는 작업 - 데이터 구조, 표현방법에 대한 추상화 - 처리 과정에 대한 추상화 - 추상화의 의도는 단순화이며, 일반화의 의도는 공통점을 뽑아내는 것 2) 캡슐화 (Encapsulation) - 데이터를 감싸서 외부에서 사용 가능한 부분만 제공(information hiding) - 사용하는 코드(클라이언트 코드)가 세부적인 사항을 알 필요가 없음. - 단순한 접근을 제공하여 오류가 생길 부분을 감소화 - (private) 나만 볼수 있는 것, 같은 클래스 내부에서만 접근 가능 # (protected) 같은 패키지나 부모와 자식에게만 접근 가능 즉 상속관계의 클래스만 접근 가능 + (.. 2022. 1. 28.
Java(21) - 컬렉션프레임워크 1. 자료(Data)와 자료구조(Data Structure) 1) 자료(데이터)를 어디에 어떻게 관리할지... - 검색, 순회(iterate), 저장, 삭제, 변경,..... 2) 데이터의 형태와 쓰임에 가장 적합한 자료구조를 쓰는 것은 매우 중요. 3) 자료의 효율적인 관리는 프로그램의 수행속도와 밀접한 관련이 있음. 2. 자료구조 종류 1) 한줄로 자료를 관리하기 (선형 자료구조) - 배열(Array) - 연결리스트(LinkedList) - 스택(Stack) - 큐(Queue 2) 트리(tree) 3) 그래프(graph) 4) 해싱(hashing) 3. 배열(Array) 구현 1) 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조. 2) 정해진 크기가 있음. 3) 배열의 i번째 요소를 찾는 인덱스.. 2022. 1. 28.
Java(20) - Generic 프로그래밍 1. 제네릭의 개요 1) 제네릭 타입 : 타입을 파라메타화 하여, 실행 시에 구체적으로 해당하는 타입으로 결정이 되는 것. 2) 제네릭을 사용하면 컴파일시 강한 타입 체크 뿐만 아니라, 타입 변환(casting) 사전에 제거함. ==> 웹앱의 성능 저하를 막음. 3) 타입을 파라메터로 갖는 클래스 또는 인터페이스를 의미함. - 선언할 때 클래스 또는 인터페이스명 뒤에 가 붙음. - 보통 알파벳 한 문자로 표식을 함. 4) 컬렉션 프레임워크에서 많이 사용하고 있음. 2. 멀티 타입 파라메터 1) 제넥릭은 2개 이상의 타입 파라메타를 사용해서 선언할수 있음. 2) 각 타입 파라메터는 콤마(,)로 구분함. 3. 사용하기 1) 상위클래스의 필요성 - T 자료형의 범위를 제한할 수 있음. - 상위 클래스에서 선언.. 2022. 1. 28.
Java(18) - Class 클래스 Class 클래스 1) 자바의 모든 클래스와 인터페이스는 컴파일 후 .class 파일이 생성됨. 2) Class 클래스는 컴파일된 class 파일을 로드하여 객체를 동적 로드하고, 정보를 가져오는 메서드가 제공됨. 3) Class.forName("클래스 이름") 메서드로 클래스를 동적으로 로드 함. - 실행(runtime)중에 데이터 타입을 binding하는 방법. - 동적 로딩시 오류가 발생하면 프로그램의 심각한 장애가 발생가능. (컴파일 시에 타입이 정해지지 않으므로) 4) reflection 프로그래밍 - Class 클래스를 사용하여 클래스의 정보(생성자,변수,메서드)등을 알수 있고 인스턴스를 생성하고, 메서드를 호출하는 방식의 프로그래밍. 2022. 1. 28.
Java(16) - Object 클래스 1. Object 클래스 -- 모든 클래스의 최상위 클래스 2. java.lang 패키지 1) 프로그래밍시 import 하지 않아도 자동으로 import 됨. 2) 많이 사용하는 기본 클래스들이 속한 패키지. 3) String, System, Math, Integer.... 3. 모든 클래스는 Object 클래스를 상속 받음. 1) 모든 클래스는 Object 클래스의 메서드 중 일부는 재정의해서 사용할수 있음. 2) 컴파일러가 extends Object를 추가함. class Book => class Book extends Object 4. toString() 메서드 1) 객체의 정보를 String으로 바꾸어서 사용할때 쓰임(재정의) 2) String, Integer 클래스는 이미 재정의 되어 있음. 5... 2022. 1. 28.
728x90
반응형