썬 마이크로 시스템즈에서 개발한 객체 지향 프로그래밍 언어
운영체제, 하드웨어에 관계 없이 실행이 가능하다.
-> 자바 응용프로그램이 OS나 HW가 아닌 JVM과의 통신을 통해 동작하기 때문에
상속, 캡슐화, 다형성이 잘 적용된 순수 객체지향 언어
기본 구문은 C++에서, 객체 지향 관련은 small talk에서
-> 간결하면서 명료한 객체지향적 설계가 가능하다
: Garbage Collection
자바 프로그램이 실행되면 가비지 컬렉터가 자동적으로 메모리가 관리되어 프로그래머가 메모리 관리할 필요가 없다
다양한 네트워크 프로그래밍 라이브러리를 지원
일반적으로 멀티쓰레드의 지원은 OS에 종속적
-> 자바의 멀티쓰레드는 시스템과 독립적임
-> 관련 라이브러리 제공, 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당
팔요헌 시점에 클래스를 로딩해서 사용할 수 있음
-> 일부 클래스의 변경시에도 전체 어플리케이션을 다시 컴파일할 필요가 없음
프로그램을 실행하기 위한 하드웨어를 소프트웨어로 구현
https://javatutorial.net/jvm-explained
https://asfirstalways.tistory.com/158