컴퓨터 메모리(RAM)에 값을 저장하기 위해 할당받는 공간프로그램에 의해서 할당받은 공간의 값이 수시로 변경될 수 있다영어 대소문자는 구분된다문자 수 제한 없다숫자로 시작하면 X특수문자는 '\_','$'만 OK여러 단어로 조합된 변수의 이름은 첫 시작 글자는 소문자로
저장돨 데이터 타입기본 타입 : 정수, 실수, 문자, 논리 타입정해진 메모리 크기 (byte)를 사용해 값을 저장단어나 문장저장시 String 타입 사용String은 클래스 타입으로 String 타입의 변수는 참조 변수소스 코드에서 프로그래머에 의해 직접 입력된 값리터
한정된 값만을 갖는 데이터 타입열거 타입은 몇 개의 열거 상수(Enumeration Constant) 중에서 하나의 상수를 저장하는 데이터 타입열거 타입은 클래스와 동일하게 소스 파일(.java)을 생성열거 상수는 모두 대문자로 작성열거 타입도 하나의 데이터 타입이므로
객체 : 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성과 기능을 가지고 다른 것과 식별이 가능한 것.클래스 : 프로그램 상에서 사용되는 속성과 행위를 모아놓은 집합체설계도로 해당 객체를 만드는 작업이 필요클래스에는 객체를 생성하기 위한 필드와
데이터, 상태 등의 속성이 저장되는 공간선언 형태는 변수와 비슷하지만, 필드를 변수라고 부르지 않음필드는 생성자와 메소드 전체에서 사용되며 객체가 생성되고 소멸하기 전까지 객체와 함께 존재클래스 중괄호 블록 어디서든 존재 가능생성자와 메소드 중괄호 블록 내부에는 선언될
Constructor생성자는 new 연산자로 호출되는 특별한 메소드클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당모든 클래스는 생성자가 반드시 존재해야하고 생성자를 하나 이상 가질 수 있음생성자와 new 연산자에 의해 Heap 영역에 객체가 생성되고 생성된
Method객체의 기능, 동작에 해당하는 코드 블록 {}수학의 함수와 비슷하며 호출을 통해 사용메소드를 호출하게 되면 중괄호 블록에 있는 코드들이 순차적으로 실행메소드는 외부로부터 필요한 값을 전달받을 수도 있고 메소드 실행 후 결과 값을 반환할 수 있음필드를 읽고 수
OOP에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것이 불가능Getter : 메소드를 통해서 필드값을 가공한 후 외부로 전달하는 역할을 하는 메소드Setter : 메소드를 통해서 검증된 유효한 값만 데이터로 저장하는 역할을 하는 메소드필드 타입이 boolea
정적 맴버는 클래스에 고정된 맴버로 객체를 생성하지 않고 사용할 수 있는 필드와 메소드정적 맴버는 인스턴스에 소속된 맴버가 아니라 클래스에 소속된 맴버이기 때문에 클래스 맴버라고도 함필드와 메소드 선언 시 static 키워드 붙여서 사용필드를 선언할 떄 객체들이 공유할
초기값이 저장되면 이후 값을 변경할 수 없음초기값은 필드를 선언할 때 명시적으로 지정하는 방법과생성자를 통해 지정하는 방법이 있음
final 필드는 한번 초기화되면 수정할 수 없는 필드지만 객체마다 다른 값으로 초기화될 수 있기 때문에 final 필드를 상수라고 하지 않는다static final 필드는 객체마다 저장되지 않고, 클래스에만 포함되고 한 번 초기값이 저장되면 변경할 수 없기 때문에 s
public 접근 제한자는 외부에서 자유롭게 접근이 가능하다.protected 접근 제한자는 같은 패키지 또는 자식 클래스에서만 접근이 가능하다.default 접근 제한자는 같은 패키지에 소속된 클래스에서만 접근이 가능하다.private 접근 제한자는 외부에서의 접근을
부모 클래스의 맴버를 자식 클래스에게 물려주는 것부모 : 부모/상위/슈퍼 클래스자식 : 자식/하위/서브 클래스상속을 통해서 다른 클래스가 가지고 있는 맴버를 직접 만들지 않고 상속을 받음으로써 자신의 멤버처럼 사용할 수 있음다중 상속 불가모든 클래스는 Object 클래
부모 클래스의 메소드를 자식 클래스에서 다시 재정의해서 사용하는 것@Override 어노테이션 붙임자식클래스에서 메소드 오버라이딩은 부모의 메소드와 동일한 선언부를 가져야함부모 클래스의 메소드가 private 접근 제한을 가지면 자식 클래스는 메소드를 오버라이딩 할 수
final 키워드는 필드뿐만 아니라 클래스와 메소드 선언 시에 사용할 수 있음final 키워드를 클래스 선언에 붙이게 되면 이 클래스는 상속할 수 없는 클래스가 됨final 키워드를 메소드 선언에 붙이게 되면 이 메소드는 재정의할 수 없는 메소드가 된다
같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질.부모 클래스 타임의 참조 변수에 자식 객체들을 대입하여 다룰 수 있는 것이 다형성의 기본 개념자식 타입의 객체가 부모 타입의 객체로 형 변환 되는 것.자동으로 형 변환이 일어나기 때문에 부모 클래스 타입의
클래스들의 공통적인 특성을 추출해서 선언한 클래스추상 클래스를 부모 타입으로, 객체로 생성될 실체 클래스가 자식 타입으로 구현되어 추상 클래스의 모든 특성을 물려받을 수 있음추상 클래스는 공통되는 필드와 메소드를 추출해서 만들었기 때문에 객체를 직접 생성해서 사용할 수
인터페이스 선언은 class 키워드 대신에 interface 키워드를 사용인터페이스는 선언된 필드는 모두 public static final 특성 가짐인터페이스에 선언된 메소드는 모두 public abstract 특성가짐자바8부터 디폴트 메소드와 정적 메소드 선언 가능
프로그램 수행 시 치명적 상황이 발생하여 비정상 종료 상황이 발생하는 것컴파일 에러 : 소스코드 상의 문법 에러로 소스코드를 수정하여 해결가능런타임 에러 : 프로그램 실행 중에 발생하는 에러로 사용자로부터 잘못된 값을 입력받거나 계산식의 오류 등으로 발생시스템 에러 :
Application Programming InterfaceAPI는 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.자바에서 말하는 API는 프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모듈을 말한다자바에서 프로그래밍 언어
기본 자료형을 객체로 포장해주는 클래스프로그램에 따라서 기본 타입을 객체로 취급해서 처리해야하는 경우에 사용기본자료형을 Wrapper 클래스로 포장해주는 것을 BoxingWrapper 클래스를 기본 자료형으로 변경해 주는 것을 unBoxing
날짜와 시간을 표현하는 클래스주로 객체 간에 날짜와 시간 정보를 주고 받을 때 사용현재 시스템의 날짜와 시간에 대한 정보를 가지고 객체를 생성한다자바 1.8부터 날짜와 시간을 나타내는 java.time 패키지를 제공한다LocalDateTime날짜와 시간 정보를 모두 저
자료구조 : 데이터를 효율적으로 이용하는 방법으로 데이터에 편리하게 접근하고, 효율적으로 사용하기 위해서 데이터를 저장하거나 조직하는 방법컬렉션 (컬렉션 프레임워크) : 자바에서 제공하는 자료구조를 담당하는 프레임위크. java.util 패키지에 컬렉션과 관련된
Set은 저장 순서를 유지하지 않는 구조를 가지고 있다.중복되는 객체를 저장할 수 없고 null도 중복을 허용하지 않기 때문에 1개만 저장할 수 있다.인덱스로 관리하지 않기 때문에 인덱스를 매개 값으로 갖는 메소드가 없다.전체 객체를 대상으로 한 번씩 반복해서 가져오는
키(key)와 값(value)으로 구성된 Entry 객체를 저장하는 구조를 가지고 있다.키(key)와 값(value) 모두 객체이다.키(key)는 중복 저장을 허용하지 않고값(value)은 중복 저장이 가능하다.Map 인터페이스의 구현 클래스이다.키로 사용할 객체는 h
클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법객체별로 다른 타입의 자료가 저장타입 파라미터는 대문자 한 글자로 표현E - ElementK - KeyV - ValueT - TypeN - NumberR - Result
데이터는 키보드, 파일 또는 네트워크로부터 입력될 수 있고 모니터, 파일 또는 네트워크로 출력 될 수 있다.입출력 장치에 데이터를 읽고 쓰기 위해서 제공하는 클래스데이터 흐름자바에선 스트림을 통해 입출력이 된다입력 스트림/출력 스트림 따로 만들어야됨다양한 장치로부터 데
운영체제에서 실행 중인 하나의 프로그램(애플리케이션)프로그램이 실행될 때 마다 개별적으로 생성하나의 프로그램(애플리케이션)은 다중 프로세스를 만들기도 함프로세스 내에서 할당된 자원을 이용해 실제 작업을 수행하는 작업 단위모든 프로세스는 하나 이상의 스레드를 가지며 각각
스레드 스케줄링 : 스레드의 개수가 CPU 코어의 수보다 많을 경우, 스레드를 어떤 순서에 의해서 동시성으로 실행할 것인가를 결정하는 것동시성 : 하나의 CPU 코어에서 멀티 스레드가 번갈아가며 실행하는 성질병렬성 : CPU 멀티 코어에서 개별 스레드를 동시에 실행하는
행 중인 스레드의 상태를 제어하기 위한 것효율적이고 정교한 스케줄링을 위한 스레드 상태를 제어하는 기능실행 대기는 스레드 생성 후 start() 호출 시, 스케줄에 의해서 실행을 대기하는 상태실행은 실행 대기 상태의 스레드 중에서 스케줄링으로 선택되어 run() 메소드
동시에 접근하는 걸 제어하는 것동기화는 스레드가 사용 중인 객체의 작업이 끝날 때까지 사용 중인 객체에 잠금을 걸어서 다른 스레드가 접근할 수 없도록 한다.자바는 동기화를 위해 동기화 메소드와 동기화 블록을 제공하는데 스레드가 객체 내부에 동기화 메소드 또는 동기화 블
Lambda Expressions자바에서 함수적 프로그래밍을 위해 자바8부터 람다식을 지원매개변수를 가지는 함수와 같은 코드 블록이지만 런타임 시에는 인터페이스의 익명 구현 객체를 생성코드가 간결해짐컬렉션의 요소들을 필터링하거나 매핑해서 원하는 결과를 쉽게 가져올 수
메소드를 참조해서 매개변수의 정보 및 리턴 타입을 알아내고, 람다식에서 불필요한 매개변수를 제거하는 것이 목적자바 8부터 도입되어 기본 메소드나 생성자를 참조해서 함수적 인터페이스의 구현 객체를 생성한다클래스 이름 뒤에 ::붙이고 정식 이름을 기술하면 된다참조 변수 뒤
스트림은 자바 8부터 추가된 기능컬렉션(배열)의 저장 요소들을 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자내부 반복자를 사용해서 병렬처리와 중간처리, 최종처리 작업 수행 가능Stream, IntStream, LongStream, DoubleStreamja