항해99 2주차는 알고리즘 주차이다. 내가 선택한 주특기 Spring의 기반이 되는 Java로 알고리즘 문제를 28문제 풀었고 Velog에 정리 후 깃허브에도 올렸다. 3~5주차에는 Spring을 학습하는 주차인데 Spring이 익숙해질 때쯤 알고리즘도 같이 공부해야겠다. 안하면 또 까먹는다...
Java에서 가장 중요한 개념이자 특징인 객체지향 프로그래밍과 JVM에 대해 포스팅을 해보려고 한다.
JVM( Java Virtual Machine ) : 자바 바이트코드를 실행할 수 있는 주체.
자바 바이트코드는 플랫폼에 독립적이며 모든 자바 가상 머신은 자바 가상 머신 규격에 정의된 대로 자바 바이트코드를 실행한다.
따라서 표준 자바 API까지 동일한 동작을 하도록 구현한 상태에서는 이론적으로 모든 자바 프로그램은 CPU나 운영 체제의 종류와 무관하게 동일하게 동작할 것을 보장한다.
Java는 "Write Once, Run Anywhere"
JVM에 대해 더 깊이 알고싶다면 아래 블로그가 정말 잘 설명되어있다.
객체지향프로그래밍( Object Oriented Programming, OOP ) : 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법