래퍼 클래스 (Wrapper 클래스) > ###### 래퍼 클래스의 이름이 의미하듯이 "감싸는 클래스"이다. 그리고 래퍼 클래스가 감싸는 대상은 정수, 실수, 문자와 같은 기본 자료형의 값이다. 기본 자료형의 값을 감싸는 래퍼 클래스 래퍼클래스의 정의 래퍼 클래스의 두가지 기능 오토 박싱 & 오토 언 박싱 Number 클래스와 래퍼 클래스의 st...
인스턴스의 비교: equals 메소드 인스턴스 복사 : clone 메소드 clone 메소드의 얕은 복사와 깊은 복사  이름을 대상으로 instanceof 연산을 할 수...
상속이 도움이 되는 상황의 소개 > ###### 상속을 하는 이유는 "연관된 일련의 클래스들에 대해 공통적인 규약을 정의할 수 있기 때문" 단순한 인맥 관리 프로그램 인맥 관리 프로그램의 문제를 상속으로 해결해보자 Object 클래스와 final 선언 @Override > ###### 모든 인스턴스는 System.out.println의 인자로 전달...
상속을 위한 두 클래스의 관계 > ###### 두 클래스의 상속으의 관계로 맺는 것이 도움이 되는 상황이 있고 도움이 되지 않는 상황이 있다. 그렇다면 언제 두 클래스를 상속의 관계로 맺어야 할까? 상속의 기본 조건인 'IS-A 관계' 메소드 오버라이딩 > ###### 메소드 오버라이딩은 상위 클래스에 정의된 메소드를 하위 클래스에서 다시 정의하는 ...
상속의 기본 문법 이해 상속에 대한 매우 치명적인 오해 > ###### 상속의 코드는 재활용을 묵적으로 사용하는 문법이 아니다. 연관된 일련의 클래스들에 대해 공통적인 규약을 정의할 수 있다. 상속의 기본적인 특성 상속의 관계의 UML구도  클래스 변수의 접근 방법 클래스 변수의 초기화 시점과 초기화 방법...
정보 은닉 정보를 은닉해야 하는 이유 정보의 은닉을 위한 private 선언 접근 수준 지시자 public protected private default 캡슐화 캡슐화가 이뤄지지 않은 코드 캡슐화가 잘 이뤄진 코드 : 하나의 클래스로 캡슐화 완성하기 캡슐화가 잘 이뤄진 두번째 코드 : 포함 관계로 캡슐화 완성하기 출처 : 윤성우의
쓰레드의 이해와 쓰레드의 생성 쓰레드의 이해와 쓰레드의 생성 방법 쓰레드를 생성하는 첫번째 방법 쓰레드를 생성하는 두번째 방법 두개의 쓰레드를 생성해서 실행해보기 쓰레드의 동기화 쓰레드의 메모리 접근 방식과 그에 따른 문제점 동일한 메모리 공간에 접근하는 것이 왜 문제가 되는가? 첫번째 방법 동기화 메소드 두번째 방법 동기화 블록
파일 시스템 기본적인 파일 시스템 Paths와 Path 클래스 파일 및 디렉토리의 생성과 소멸 파일을 대상으로 하는 간단한 입력 및 출력 파일 및 디렉토리의 복사와 이동 NIO.2 기반의 I/O 스트림 생성 바이트 스트림의 생성 문자 스트림의 생성 NIO 기반의 입출력 NIO의 채널과 버퍼 성능 향상 포인트는 어디에? 파일 랜덤 접근
I/O 스트림에 대한 이해 그냥 '스트림'과 'I/O 스트림'의 차이는? > I/O 스트림 모델의 소개 I/O 모델과 스트림의 이해, 그리고 파일 대상의 입력 스트림 생성 입출력 스트림 관련 코드의 개선 바이트 단위 입출 및 출력 스트림 보다 빠른 속도의 파일 복사 프로그램 필터 스트림의 이해와 활용 바이트 단위로 데이터를 읽고 쓸줄은 알지...
스트림의 생성 : 스트림 생성에 필요한 데이터를 직접 전달 DoubleStream, IntStream, LongStream 병렬 스트림으로 변경 스트림의 연결 중간연산 flatMap 중간연산 정렬 중간연산 루핑 최종연산 최종연산 forEach allMatch, anyMatch, noneMatch collect 병렬 스트림에서의 colle...
리덕션과 reduce 메소드 병렬 스트림 ![](https://images.velog.io/images/gustjtmd/post/b8820f78-4c7f-4e3d-8d98-782a8da2c651/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%B...