용어 정리


# JDK (Java Development Kit): 자바 개발 도구


# JRE (Java Runtime Environment): 자바 실행 환경 


# IDE (Intergrated Development Environment): 통합 개발 환경 툴

- 효율적으로 소프트웨어를 개발하기 위한 통합개발환경 소프트웨어 어플리케이션 인터페이스

- 코드 편집기, 디버거, 인터프리터 등을 포함하고 개발자에게 제공한다.

- C, C++: Visual Studio / Java: Eclipse


# 변수 (Variable)

- 저장, 종류, 이름, 크기를 메모리에 저장

- 단 '하나'의 값을 저장할 수 있는 '메모리 공간'이다.


# = 대입(할당) 연산자

- 오른쪽의 데이터를 왼쪽의 변수에 '대입(할당)'한다.


# 자료형 (데이터 타입)

1) 기본형 (primitive type)

#1. 정수형: byte(1), short(2), int(4), long(8)

#2. 실수형: float(4), double(8)

#3. 문자형: char(2)

#4. 논리형: boolean(1)


2) 참조형 (reference type)

# 문자열: String


# 데이터 형변환 (type conversion, casting)

1) 자동 형변환 (implicit conversion, upcasting, promotion, 묵시적 형변환)

2) 강제 형변환 (explicit conversion, downcasting, demotion, 명시적 형변환)


# 오버플로우 (overflow)

- 형변환 또는 연산 작업 시, 해당 타입에 표현 범위를 넘었을 때 발생한다.

- 해당 타입의 표현 범위 내에서 값이 무한히 반복된다.


# 연산자

1) 증감 연산자 (++, --)

2) 산술 연산자 (+, -, *, / ...)

3) 비교 연산자 (>, <, >=, <=, ==, !=)

4) 논리 연산자 (&&, ||, !)

5) 대입 연산자 (=)

+) 복합 대입연산자 (+=, -= ... )

- 산술 연산자 + 대입 연산자


# SCE (Short Circuit Evaluation: 최단거리연산)

- 연산 과정에서 왼쪽의 결과가 총 결과와 같다면 오른쪽 연산은 진행하지 않음


# 제어문 

1) 반복문: for, while, do-while

2) 조건문: if, switch-case

3) 보조 제어문: break, continue;


# 배열

- '같은 타입의 데이터를 여러 개' 를 저장할 수 있는 메모리 공간이다.


# 클래스

- '여러 타입의 데이터를 여러 개' 를 저장할 수 있는 메모리 공간이다. 


# 데이터 타입에 따른 변수의 종류

1) 기본형 변수

2) 참조형 변수


# 선언 위치에 따른 변수의 종류

1) 클래스 변수

2) 인스턴스 변수

3) 지역 변수


# 메소드 

- 클래스에서 실행 가능한 기능(function)들을 의미한다.


# 메소드의 종류 

1) 클래스 메소드 

2) 인스턴스 메소드


# 메소드 오버로딩 (Overloading)

- 메소드의 이름은 동일하나, 매개변수 (parameter)의 종류나 개수를 달리하여 메서드를 생성하는 것을 의미한다. 

ex. System.out.println();


# 메소드 오버라이딩 (Overriding)

- 상속 관계에 있는 자식 클래스에서 상속받은 자원을 재정의하는 것


# 메소드 오버로딩 vs 메소드 오버라이딩 

- 참고: JAVA1_day17 | 추가공부 

- 참고: JAVA2_day01 | 상속


# 생성자

- '인스턴스 변수'의 초기화에 사용되는 일종의 메서드로 new를 통해 호출된다.


# 참조변수 this

- 인스턴스화된 자기 자신의 객체를 지칭


# 제어자

- 클래스, 메서드 혹은 변수에 대해서 추가적인 기능을 더하는 것


# 접근 지어자 (Access modifier)

- 자원에 대해서 외부에서 접근(사용, 참조 등) 가능한 범위를 제어한다.

- 접근 범위가 넓은 순: public > protected > default > private


1) public: 동일 프로젝트 내 모두 가능 

2) protected: 동일 패키지 또는 상속 관계인 패키지 내 모두 가능

3) default: 동일 패키지 내 모두 가능

4) private: 클래스 내부에서만 가능 


* 중요한 점: 객체 지향 프로그래밍의 캡슐화 개념을 구현할 수 있다. 

    개발자가 원하는 자원들에 대해 public 키워드로 클래스 외부에 노출이 가능하며,

    private 키워드로 외부와 차단 시킬 수 있다. 


# 추상화 (Abstraction)

- 만들고자 하는 객체의 특성이나 기능이 무엇인지 먼저 정리하는 것


# 상속 (Inheritance)

- 두 클래스 중 한 클래스가 갖고 있는 속성과 메소드들을 다른 클래스에게 물려주는 것을 의미


# is-a, has-a 법칙

- 논리적으로 부모 클래스와 자식 클래스를 구분할 수 있다.


# 캡슐화 (Encapsulation)

- 서로 관련 있는 기능이나 데이터들을 한 곳으로 모아서 효율적으로 관리 및 사용할 수 있도록 하는 것

- 꼭 필요한 데이터나 기능만 외부에 노출시키는 것

* 이를 정보 은닉(hiding information)이라 한다.


# 다형성(Polymorphism)

- 하나의 기능을 수행하지만 형태를 다양하게 가질 수 있는 기법

- 상속 관계에서 성립

- 오버로딩(Overloading): valueOf()


# 참조변수 super

- 인스턴스화된 부모 객체를 지칭 


# this()

- 자신 클래스의 생성자 호출 


# super()

- 부모 클래스의 생성자 호출 


# 동적 로딩

- 프로그램을 실행할 때, 필요할 때마다 동적으로 메모리를 생성하고, 필요없는 메모리는 자동으로 메모리에서 소멸시킨다. 


# 정적 로딩

- 프로그램을 실행할 때, 모든 실행파일이 메모리에 로드된다. 


# static 키워드 

- 선언된 자원들을 메모리에 바로 올리고 고정시키는 기능을 한다. 

- static 변수: 여러 객체들이 공유할 때 사용

- static 메서드: 메서드의 기능이 프로그램에서 자주 사용될 때, static 키워드를 붙여 실행 속도를 높인다. 


# 가비지 컬렉터 (Garbage Collector) 

- 정리되지 않은 메모리를 자동으로 제거해주는 역할


# 인터페이스 (Interface)

- 메소드들의 원형만 나열된 것, 일종의 명세서라고 볼 수 있다.


# final 제어자

- 상수, final 제어자를 사용하여 선언한 자원은 재정의를 할 수 없음을 의미한다. 


# 에러(Error)

- 프로그램이 더 이상 동작할 수 없는 심각한 오류


# 예외(Exception)

- 프로그램 실행 도중 오류가 발생했지만 동작을 계속 수행할 수 있는 오류 


# 예외 처리(Exception Handling)

- 수행 도중 발생하는 예외 상황을 처리할 수 있도록 하는 기능


# 컴파일 에러(Compile Error)   

- 자바 코드로 이루어진 '.java' 파일을 실행 가능한 바이너리 파일인 '.class' 로 만드는 과정에서 발생하는 에러

- 소스 파일에 잘못된 구문 오류가 있거나 JVM이 인식할 수 없는 클래스를 사용하여 코딩했을 때 발생


# 런타임 에러(Runtime Error)

- 컴파일은 되었지만 프로그램 실행 도중(runtime), 논리적인 오류나 외부 요인에 의해 발생하는 에러 


# try-catch-finally 구조

- 예외 처리를 하기 위한 가장 기본이 되는 문법 

- try 영역: 예외가 발생할 수 있는 구문

- catch 영역: 예외가 발생했을 때 보여줄 구문

- finally 영역: 반드시 실행해야 할 구문


# Throwable 클래스

- 모든 에러와 오류의 슈퍼 클래스


# 패키지(Package)

- 서로 관련있는 클래스나 인터페이스의 파일들을 한 곳에 묶어 관리하는 것 


# import문

- 다른 클래스의 메소드나 속성을 참조할 때, 명시적으로 표현하기 위해서 사용하는 것


# Object 클래스

- 모든 클래스들의 최상위 클래스


# 객체의 형 변환

- 반드시 상속 관계에 있는 객체끼리만 가능


# 객체의 형 변환: 업 캐스팅(Up-casting)

- 자식 클래스 객체를 부모 클래스 객체로 형 변환하는 것

- 묵시적 형변환


# 객체의 형 변환: 다운 캐스팅(Down-casting)

- 부모 클래스 객체를 자식 클래스 객체로 형 변환하는 것

- 명시적 형변환


# 객체끼리의 연산 비교 3가지

1) == 연산자

2) equals()

3) instanceof


# instanceof

- 연산자의 일종으로, 인스턴스(객체)와 데이터형(클래스)을 비교하는 연산자 


'JAVA > ETC' 카테고리의 다른 글

오류 | The public type [class name] must be defined in its own file  (0) 2018.01.30
정리 문제  (0) 2018.01.23
이클립스 단축키  (0) 2017.12.08