-
java 특징대학/객체지향프로그래밍 2022. 10. 7. 14:32
- java의 특징
이식성(portability)과 보안성(security)이 좋다는 점이다.
즉, 네트워크 어느 플랫폼이던 상관없이동작 가능하고, 악성 코드의 실행으로부터 비교적 안전하다는 뜻.
이 것이 가능하게 된 이유는 자바는 JVM 위에서 동작하기 때문!
.java는 컴파일러에 의해 JVM이 이해할 수 있는 bytecode로 변환되고,
JVM에서 이 bytecode를 읽고 각 운영체제에 맞는 기계어로 번역하게된다.
즉, 자바 코드는 JVM 위에서 동작하기 때문에 JVM만 설치되어 있다면 플랫폼에 구애받지 않고 구동할 수 있고,
JVM 내에 sandboxing 되기 때문에 악성 코드가 JVM 밖에서는 실행되지 않게 된다.
컴파일 -> 해석 두 단계를 거치기에 성능에 이슈가 있을거 같지만,
JVM 내에 JIT(just-in-time) 컴파일러가 내장되어 있기 때문에 런타임에 미리 컴파일을 하고,
바이트 코드 실행 시점에 JIT 컴파일러가 바이트 코드를 읽고 기계어로 번역하여 성능도 챙길 수 있다.
- 객체지향의 원리
1. 캡슐화(encapsulation)
java는 class 단위로 캡슐화를 하고, 내부 변수들을 은닉하여 인터페이스 함수를 통해서만 접근하도록 구현할 수 있다.
즉, 내부 동작 원리를 몰라도 해당 기능을 사용할 수 있게 할 수 있다.
2. 상속(inheritance)
한 객체(자식, 하위)가 다른 객체(부모, 상위)의 특징, 구현을 물려받을 수 있다.
즉, 물려받은 코드를 구현하지 않아도 사용할 수 있다. (abstract, interface... 제외)
3. 다형성(polymorphism)
동일한 인터페이스 (함수)가 서로 다른 클래스에서 동작할 수 있다.
즉, 메서드의 이름이 같아도, 들어오는 인자에 따라 다른 메서드를 JIT 컴파일러가 알아서 선택해 실행시켜준다.
'대학 > 객체지향프로그래밍' 카테고리의 다른 글
java 인터페이스 (0) 2022.10.09 java 패키지 (0) 2022.10.09 java 클래스 (0) 2022.10.09 java 연산 및 제어 (0) 2022.10.07 java 기본 문법 (0) 2022.10.07