[JAVA] 자바 언어 특징
1. 자바는 객체지향 프로그래밍 언어이다.
- 캡슐화
- 접근에 제한을 워서 정보 은익
- 관련된 기능과 데이터를 하나의 클래스에 묶어서 사용
- public (+) : 클래스 내부/외부에서 접근이 가능하다.
- protected (#) : 해당 객체를 상속받은 객체 내부에서 접근 할 수 있다. 단순 인스턴스에선 접근 할 수 없다.
- default : 동일한 패키지 내의 객체에서 인스턴스를 생성하여 접근 할 수 없다.
- private (-) : 클래스 내부에서는 접근이 가능하나 외부에서 접근 할 수 없다.
- 상속
- 부모 클래스에서 선언한 변수나 메소드를 자식 클래스에서 직접 만들지 않고 상속 받아
자식 클래스에서 부모 클래스의 변수나 메소드를 사용 할 수 있다.
- 자바의 모든 class는 Object 클래스의 후손이다.
- 자바는 단일 상속만 지원한다.
- 부모의 private 멤버는 상속은 되지만 직접 접근이 불가하다.
- 추상화
- 객체에서 공통된 속성과 행위를 추출한다.
- 유연성을 확보하기 위해 구체적인 것은 제거한다는 의미이다.
- 프로그램에서 필요한 공통점을 추출하고, 불필요한 공통점을 제거하는 과정이다.
- 다형성
- 오버라이딩(Overriding)
- 부모 클래스와 자식클래스의 메서드 이름과 매개변수 타입, 개수, 순서가 동일하면
메서드를 재 정의 할 수 있는 것이다.
- 오버로딩(OverLoding)
- 한 클래스 내에서 같은 매개변수 타입을 다르게하여 같은 이름의 메서드를 여러개 정의하는 것이다.
2. 자바는 컴파일 언어인 동시에 인터프린터 언어이다.
- 자바는 JVM 위에서 동작하므로 *.java 원시코드를 *.class 바이트 코드로 변환한 후
자바 런타임이 바이트코드를 인터프린트 하면서 실행한다.
3. 자바는 OS에 종속 받지 않는다.
- 위에서 말했듯이 자바는 JVM 위에서 동작하므로 OS에 종속 받지 않는다.
4. 메모리 관리
- C와 다르게 자바는 객체 생성 시 메모리를 알아서 할당해 주고 사용하지 않는 건 제거 해 준다.