Java
[공부] 기본정리
아이탬
2020. 5. 5. 20:41
JAVA
JAVA 특징
- 객체지향
- 추상화 : 현상에 존재하는 객체의 주요특징을 추출하는 과정
- 캡슐화 : 하나의 클래스 안에 데이터와 기능을 담아 정의하고, 중요한 데이터나 복잡한 기능 등은 숨시고, 외부에서 필요한 기능만을 공개하는 것.
- 상속 : 객체 정의 시 기존에 존재하는 객체의 속성과 기능을 상속받아 정의하는 것
- 다형성 : 같은 타입 또는 같은 기능의 호출로 다양한 효과를 가져오는 것
- 플랫폼 독립적
- JVM 위에서 작동되어지기 때문에 Java의 컴파일 코드는 JVM이 해석 가능하도록 번역
- 간단하다
- 복잡성, 메모리관리의 어려움을 해결하여 쉽게 접근
- 분산 프로그래밍 지원
- 네트워크를 이용한 프로그래밍 지원, 원격 접속을 위한 다양한 기술셋을 가지고 있다.
- 멀티 스레드
- 운영체제에 종속적이지 않는 독립적인 설계, JVM에 의해 스케쥴링이 되도록 구현
JAVA 데이터 타입
- Primitive Data Type
- 기본적(일반적)인 값을 기억하는 변수의 type
- byte, short, int ,float, double, char ,boolean
- Reference Data Type
- 객체의 참조(Reference)값을 기억하는 변수
- class, interface, 배열 등
JVM의 메모리 관리
- Class Loader : 하드 디스크에 있는 번역된 class 파일을 메모리로 읽어온다.
- class area(Method Area) : 메모리로 읽어온 클래스의 정보를 기억하는 곳
- heap : 클래스의 객체를 생성하여 기억하는 곳
- stack : 메서드 수행 시마다 프레임이 할당되어 메서드 수행에 필요한 변수나, 중간 결과값을 임시기억
- Garbage Collection
- heap영역에 생성된 객체들의 메모리 관리를 담당하는 프로그램
접근제한자
|
Class |
pakage |
subClass(자식 클래스) |
universe |
private |
○ |
|
|
|
(default) |
○ |
○ |
|
|
protected |
○ |
○ |
○ |
|
public |
○ |
○ |
○ |
○ |
Overriding vs Overloading
- Overriding
- 상속을 기반
- super부터 상속받은 기능 중 특정 기능을 재정의
- Overloading
- 하나의 클래스나 상속받은 클래스의 내에 같거나 비슷한 기능의 method의 이름을 같게 정의함
Collection API
- 정의 : 객체들을 저장, 검색, 삭제하는 기능 등을 제공하는 클래스들의 집합
- Set : 객체 저장 시 순서 없이 저장하고, 같은 데이터는 부시한다.
- List : 인덱스를 가지고 순서대로 저장, 중복된 데이터도 새로운 인덱스를 부여하여 저장
- Map : key, value로 구분하여 관리
Exception, Error
- exception
- 예외가 발생할지 모르는 상황에 체크를 해준다.
- 프로그램을 중단시키지 않고, 복구하여 지속적으로 실행할 수 있도록
- Error
- Checked - RuntimeExcpetion을 제외한 모든 Exception
- unChecked - SW적으로 복구 불가능하기 때문에 컴파일러가 체크하지 않는다. Error, RuntiemException