대규모 프로젝트 시에는 자료형을 엄격하게 선언해야 한다는 점이 유지보수와 가독성을 높여주는데 큰 도움이 된다.
자바는 플랫폼(os)에 구애받지 않고 JVM(java virtual machine)이 설치된 모든 장치에서 동작한다.
표준화된 객체지향 언어
또한 보안에 강하다 → C/C++에 있는 포인터의 존재가 자바에는 없음으로 가능함.
클래스를 캡슐화하여 내/외부를 명확하게 하는 부분도 안정성
에 적용
디버깅하는 실행 속도를 개선하기 위해 JIT 컴파일러가 사용된다.
: 자바 특유의 느린 속도를 보완하기 위해서 자바에서는 기계어 코드로 컴파일 이후. CPU가 바로 기계어를 실행하는 Just in Time을 컴파일링 기법
으로 활용하면서 버전이 업그레이드되면서 속도가 이전에 비해서는
개선된 장점이 존재한다.
멀티스레드 : 멀티스레드를 지원하지 않는 os의 경우에도 자바 언어를 활용하여 멀티스레드를 구현
가비지 컬렉션 : 장점이자 단점으로 부각되는 것 같다. C++의 경우 소멸자를 사용하여 반환처리를 하지만 자바 언어는 가비지 컬렉션을 활용하여 heap을 통한 객체 생성 이후에 메모리에 할당된 객체를 하나하나 설정하는 것이 아닌 자동으로 반환
해 주는 기능
그러나 실행속도가 느리다
→ JVM 로딩 속도 문제, 가상 머신 바이트코드 실행 속도 문제, 가비지 컬렉션에 의한 실행 지연 문제 등
정적 타이핑 언어로, 유연함과는 거리가 멀다.
매번 자료형을 엄격하게 선언해야 한다.
문법이 쉬우며 가독성이 높다.
스크립트 언어
*컴파일(Compile)
컴파일이란 인간이 작성한 코드를 컴퓨터가 이해할 수 있도록 기계어(바이너리 코드)로 번역하는 과정을 의미합니다.
즉, C++나 Java와 같은 언어로 코드를 작성하면 컴퓨터가 이해할 수 있도록 해당 코드를 컴파일하여 기계어로 번역하게 됩니다.
이후 실행할 때 기계어로 번역된(컴파일된) 파일을 실행하는 원리입니다.
반면, 스크립트 언어는 이런 컴파일 과정 없이 실행과정에서 번역과 실행이 동시에 일어나므로,
수정이 빠르지만 컴파일 언어보다 느린 실행속도를 보여줍니다.