본문 바로가기

항해 시절

객체지향프로그램, JVM이란 무엇인가 (항해 2주차 회고록)

728x90
728x90

2022.01.23

이번 주는 알고리즘 주차로 자바 언어로 프로그래머스에서 여러 알고리즘 문제를 풀어봤다.

알고리즘 문제 난이도는 높지 않았지만, 자바언어가 익숙치 않아 답을 구현하는데 시간이 걸렸다

실제로는 알고리즘 공부보다는 자바 기초 공부에 더 시간이 걸렸던거 같다.

자바를 공부하면서

자바가 객체지향 프로그램이라는 것과 JVM이라는 단어를 많이 듣게 되는데 이에 대해 말해 보려 한다.

객체지향프로그램이란?

자바는 객체 지향 언어이다 이 말은 프로그래밍 언어 + 객체지향개념(규칙)을 뜻한다

각각의 객체들에 역할을 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것이 객체지향프로그램이다.

객체지향개념을 공부하다 보면 클래스와 객체, 인스턴스 라는 단어가 나오는데, 단어의 표면적인 정의는 아래와 같다.

클래스 = 설계도 (객체를 정의해 놓은 것)

객체 = 실제로 존재하는 것(설계도로부터 제작된 TV, 세탁기), 모든 인스턴스를 대표하는 일반적 용어 (인스턴스와 개념 유사)

인스턴스 = 특정 클래스로부터 생성된 객체

객체는 변수와 메서드를 갖고 있으며, 우리가 객체를 쓰는 이유는 그 변수랑 메서드를 사용하기 위함이다.

(클래스와 객체 사용을 통해 우리는 서로 다른 타입의 데이터 및 함수 등을 하나로 묶어서 관리할 수 있게 된다.)

하나의 소스파일에 여러 클래스를 작성할 수 있으며, public class 클래스명 {}, class 클래스명 {} 처럼 만들 수 있다

(public class 처럼 public 가 붙은 클래스는 반드시 소스파일과 이름이 같아야 한다.)

객체 생성 방법은 클래스명이 Tv인 클래스를 예를 들면 Tv t = new Tv(); 같은 방법으로 객체를 생성할 수 있으며,

t.메서드명을 통해 Tv 클래스의 메서드를 사용할 수 있다.

JVM이란?

JVM이란 JAVA Virtual Machine, 자바 가상 머신의 약자를 따서 부르는 용어이다.

이 JVM의 역할은 JAVA와 OS와 사이에서 중개자 역할을 하여 JAVA가 OS에 구애받지 않게 사용이 가능하게 해주며, 메모리 관리 및 Garbage collection등의 기능도 함께 해준다.