
💁 자바란 ❓❓
🙋 객체지향 언어이다❗️❗️❗️
부품에 해당하는 객체를 만들고 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법을 객체 지향 기법(OOP - Object Orient Programming)라고 한다.
메모리에서 사용하고 싶은 객체가 있으면 먼저 설계도로 해당 객체를 만드는 작업이 필요하고 클래스가 바로 그 설계도이다. 클래스에는 객체를 생성하기 위한 필드와 메서드가 정의되어 있고 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 한다. 클래스 역시 객체라고 할 수 있다.
각 객체 간의 관계는 상속, 소유, 사용이 가능하고 각 객체는 언제든지 다른 객체로 교체가 가능하다.
객체 ❓ : (컴퓨터 공학에서는) 변수, 자료 구조, 함수, 메서드, 식별자에 의해 참조된 메모리 상의 값 등을 의미
인스턴스 (Instance) ❓ : 객체가 메모리에 할당되어 실제 메모리를 차지하는 것을 의미
🙋 OS로써 독립적이다 ❗️❗️❗️
운영체제는 자바 프로그램을 바로 실행할 수 없다. 자바프로그램은 완전한 기계어가 아닌 중간 단계의 바이트 코드이기때문... 이것을 해석하고 실행할 수 있는 가상의 운영체제가 필요하다. 이것이 JVM(Java Virtual Mechine)이다
JVM(Java Virtual Mechine) ❓ : OS에 종속받지 않고 CPU가 자바를 인식 · 실행할 수 있게 하는 가상 컴퓨터
👍 장점 : 운영체제와 자바 사이에 JVM을 두어 자바 프로그램이 여러 운영체제에서 동일한 실행 결과가 나오도록 설계하였다.. 그래서? 개발자는 운영체제 ( Window, macOS, Linux 등등... )와 상관없이 자바를 개발 할 수있다.
👎 단점 : 한 번의 컴파일링으로 실행 가능한 기계어가 만들어지지 않고 JVM에 의해 컴파일링 되기때문에 C와 C++ 보다 느리다. 하지만..? 최근에는 JVM과 JIT 컴파일러와 하드 웨어의 성능 향상으로 줄어들고 있다고 한다.....