목록JAVA Book Study 19
재밌고 어려운 IT를 이해해보자~!
01. 자바 입출력과 스트림 자바는 입출력을 처리하기 위해 별도의 I/O 패키지를 제공한다. 자바 프로그래밍이 디스크에 접근해 데이터를 주고받는 작업을 도와주는 통로를 '스트림(Stream)' 이라고한다. 입출력 스트립의 특징 입력과 출력이 동시에 진행되는 것이 아니라 독립적으로 한 가지 기능만 동작하기 때문에 데이터를 교환하기 위해서 입력, 출력 스트림이 따로 필요하다. 02. 입출력 스트림의 종류 03. 바이트 기반 스트림 최상위 객체 InputStream에서 가장 많이 사용되는 FileInputStream을 알아보자! FileInputStream 파일을 바이트 단위로 읽어드린다. new FileInputStream(경로/파일명); OutputStream:바이트 출력 스트림 바이트기반 출력 스트림 최..
01. 프로세스(process)와 스레드(thread) 두 가지 이상의 작업을 처리하는것을 '멀티태스킹(multi-tasking)'이라고 한다. 컴퓨터의 멀티태스킹을 위한 두가지 도구를 프로세스와 스레드 라고한다. 프로그램은 파일이 존재하지만 아직 메모리에 올라가 있지 않은 상태, 즉 실행되지 않은 코드의 집합을 말한다. 프로그램을 실행하는 순간 메모리에 올라가고 동작하게 되는데 이 상태의 프로그램을 프로세스 라고 한다. 프로그램과 프로세스는 일대다 매핑이 가능하다. 프로세스는 독립적으로 메모리에 등록되므로 여러 개의 프로그램을 동시에 실행할 수 있다. 프로세스 내부에 존재하면서 실행 흐름을 나타내는 것을 '스레드' 라고 한다. 프로세스들은 메모리에 독립적으로 등록되어 서로 간섭할 수 없다. 하나의 프로..
01. 람다식(Lambda expression) 람다식은 함수의 이름이 없는 익명 함수를 만들기 위한 표현식이다. 함수를 하나의 간결한 식으로 표현한 것이 람다식. 즉, '식별자 없이 실행 가능한 함수'를 말한다. 02. 람다식 문법 int add(int x, int y) { return x + y; } (x, y) -> {return x = y;} 매개변수함수구현 메서드의 이름과 반환 타입을 제거한다. X -> {return X*X} 매개변수 1개일때 소괄호 ( ) 생략가능 (x,y) -> System.out.println(x+y); (x,Y( -> x > y ? 1 : 0; void형 함수는 중괄호 { } 생략 가능 중괄호 안에 return문만 존재하면 return과 중괄호 생략가능 03. 함수형 인..
01. 컬레션 프레임워크 필요한 자료구조를 미리 구현하여 java.util 패키지에서 제공하고 있다. 이를 '컬렉션 프레임워크' 라고 한다. 컬렉션은 List(리스트), Queue(큐), Tree(트리)등의 자료구조를 뜻하고 프레임워크는 클래스와 인터페이스를 묶어 놓은 개념. 02. 제네릭 저장가능 데이터 타입이 Object이므로 어떤 타입의 데이터도 저장할 수 있지만, 제네릭을 사용하지 않으면 모든 데이터 타입을 담는 것이 가능해 데이터를 추출할 때 마다 어떤 데이터타입인지 확인을 해줘야하기 때문에, 일정한 데이터 타입을 담기 위해 선언한다. 클래스 생성시에도 사용가능 public class 클래스명 { ... } public interface 인터페이스명 { ... } 타입 변수 의미 Type Ele..
01. 자바 API (Application Programming Interface) 문서 자바에서 제공하는 API는 프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음을 말하며 라이브러리 라고도 부른다. 'java api doc' 겁색시 확인가능. 02. java.lang 패키지 System.String 등과 같은 클래스는 따로 선언 없이 사용이 가능했다. 그이유는 기본으로 제공해 주는 java.lang 패키지에 속해 있었기 때문. 클래스 용도 Object 자바 클래스의 최상위 클래스로 사용 System 시스템의 표준 입력/출력 장치로부터 데이터를 입력,출력하기 위해, 자바 가상기계를 종료하기 위해 String 문자열을 저장하고 여러 가지 정보를 얻을 떄 StringBuffer / StringBu..
01. 예외 처리 에러(error)와 예외(exception) 자바 프로그램을 실행하다 갑자기 프로그램이 종료되거나, 예기치 못한 오류가 발생한다. 이러한 오류를 개발자가 처리해 에러 대신 개발자가 지정한 메세지를 출력하게할 수 있다. 자바는 에러 또는 예외가 발생할 경우, 해당 사항을 클래스로 관리한다. 컴파일 또는 실행 중에 문제가 발생하면 해당 문제에 따른 클래스 객체를 생성해서 예외들을 처리할 수 있다. 에러(error) 에러의 종류 상황 OutOfMemoryError 프로그램 실행 중 메모리 부족 IOError 입출력 에러 StackOverFlowError 가용 메모리 부족 현상, 재귀 호출 문제 시 발생 예외(exception) 예외란 대체로 프로그램 구동 중에 나타나는 오류들을 말한다. 문법..
01. 내부 클래스 클래스 안에 만들어진 또 다른 클래스로 중첩 클래스라고도 부른다. public class OuterClass { class InnerClass { } ] 내부 클래스는 클래스 간의 긴밀한 관계가 필요할 때 사용한다. 02. 내부 클래스의 종류 클래스 안에서 선언된 위치에 따라 구분된다. 인스턴스 클래스 인스턴스 멤버와 동일한 위치에 생성 public class Outer { private String name; public class Inner { private String name; } } 객체선언 방식 Outer outer = new Outer(); Outer.Inner in = outer.new Inner(); 지역 클래스 지역 클래스는 다음과 같이 메서드 내에서 선언하고 사용한..
01. 추상 클래스와 추상 메서드 오버라이딩을 위한 텅빈 생성자를 생성할 필요는없다. 추상 메서드를 사용하면 된다! 추상 메서드 선언부만 작성하고 구현부는 작성하지 않고 남겨둔 미완성 메서드 구현부가 없다는 의미로 선언부 끝에 세미콜론(;) 사용. 추상 메서드가 1개이상 이면 그 클래스는 무조건 추상 클래스로 선언. 추상 클래스 접근제한자 abstract 반환 타입 메서드 이름 (매개변수......) public abstract class Animal { abstract void cry(); } 일반 클래스 처럼 객체 생성 불가능. super()를 통해 추상 클래스의 생성자를 호출하여 부모 객체를 생성 후 자식 객체 생성 메서드 재정의 강제를 위해 사용. 추상 클래스와 메서드의 용도 자식 클래스 간의 공..