용어 정리
# 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 |