타이탄의 도구들

[JAVA] 자바 개념 간단 정리 본문

Dev Tools/Java

[JAVA] 자바 개념 간단 정리

Titan04 2022. 5. 26. 03:54
728x90

 

 

자바의 기초 개념인 클래스, 객체, 인스턴스, 생성자, 쓰레드, 멀티쓰레드에 대해

최대한 간결하게 정리해보려고 합니다.

 


 

클래스란?

'객체'에 대한 설명을 적은 설명서 혹은 설계도

(개발자식 설명: 객체의 메소드(기능)와 변수(속성)를 정의해 놓은 것)

 

그렇다면 '객체'란?

클래스라는 설계도를 통해 만든 소프트웨어에 존재하는 대상 그 자체입니다.

 

인스턴스란?

인스턴스는 추상적으로 '어떤 것으로부터 생성된 복제본'

이라는 의미를 담고 있습니다.

그래서 '객체는 클래스의 인스턴스다'라고 말할 수 있습니다.

하지만, 클래스와 객체 사이의 관계에서만 쓰이는 말은 아닙니다.

 

생성자란?

객체 생성 시 가장 먼저 '반드시' 실행되어야 하는 것으로

객체를 초기화하기 위해 '가장 먼저 실행되는' 메소드입니다.

(생성자는 클래스 안에 기록된 클래스와 이름이 같은 메소드입니다!

심지어 클래스 내에 생성자가 정의되어있지 않으면, 새로 만들어서 실행시킵니다.)

ClassA  a =  new ClassA();

위 코드에서

new 연산자에 의해 생성자인(ClassA())가 실행되면, 힙 메모리 영역에 객체가 생성되고, 객체의 주소가 리턴됩니다.

이렇게 리턴된 객체 주소는 클래스 타입 변수(a)에 저장되어, 객체에 접근할 때 이용됩니다.

 

그렇다면 객체를 생성할 때 초기화가 왜 필요할까요?

어떤 일을 시작하기 전에 준비를 하게 되는데 이것을 다른 말로 초기화라고 합니다.

(공부하기 전에 책상을 정리한다던지, 공책을 준비한다던지, 책을 핀다던지 등등...)

이와 마찬가지로 자바에서

객체를 생성할 때 반드시 포함시켜야 하는 작업을 설정해 오류를 방지하고,

절차를 줄이는 작업(쉽게 생각해서 반복을 줄여 코드 양을 줄인다고 생각하면 편합니다!)

초기화라고 하고, 이 역할을 생성자가 해 줍니다.

 

쓰레드란?

하나의 프로그램이 돌아가고 있는 상태를 프로세스라고 하는데,

프로세스 내에서 순차적으로 실행되는 실행 흐름의 최소 단위를 말합니다.

 

멀티 쓰레드란?

한 프로세스 내에서도 여러 개의 작업이 동시에 진행될 필요가 있는데,

(예를 들어 브라우저라는 하나의 프로그램에서 파일 다운로드도 하고, 영상도 보는 등

하나의 프로그램에서 동시에 여러 작업을 하는 상황을 떠올려보면 됩니다.)

그것을 가능하게 해 주는 것이 멀티 쓰레드 환경입니다.

 


쓰레드의 동시성과 병렬성에 관한 좋은 설명을 해 준 블로그

https://honbabzone.com/java/java-thread/

 

JAVA 쓰레드란(Thread) ? - JAVA에서 멀티쓰레드 사용하기

JAVA에서 Thread사용하는 방법을 배우고 멀티코어 환경에서 멀티 쓰레드를 사용하는 방법을 알아보겠습니다.

honbabzone.com

 

읽어주셔서 감사합니다 :)

728x90

'Dev Tools > Java' 카테고리의 다른 글

[Java] 배열과 리스트에 대하여  (0) 2022.05.31
Comments