일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Android
- Coroutines
- 자청
- AsyncTask
- mutable
- 언스크립티드
- SharedPreferences
- 멀티쓰레드
- JNI
- 부자의그릇
- 가치생산주의
- Kotlin
- 비동기
- 안드로이드
- java
- 코루틴
- MVVM
- ViewModel
- ViewGroup
- 람다
- 기업가정신
- 코틀린
- 책리뷰
- 타이탄의도구
- 동기
- 부의추월차선
- 인스턴스
- View
- NDK
- 부자아빠가난한아빠
- Today
- Total
타이탄의 도구들
[JAVA] 자바 개념 간단 정리 본문
자바의 기초 개념인 클래스, 객체, 인스턴스, 생성자, 쓰레드, 멀티쓰레드에 대해
최대한 간결하게 정리해보려고 합니다.
클래스란?
'객체'에 대한 설명을 적은 설명서 혹은 설계도
(개발자식 설명: 객체의 메소드(기능)와 변수(속성)를 정의해 놓은 것)
그렇다면 '객체'란?
클래스라는 설계도를 통해 만든 소프트웨어에 존재하는 대상 그 자체입니다.
인스턴스란?
인스턴스는 추상적으로 '어떤 것으로부터 생성된 복제본'
이라는 의미를 담고 있습니다.
그래서 '객체는 클래스의 인스턴스다'라고 말할 수 있습니다.
하지만, 클래스와 객체 사이의 관계에서만 쓰이는 말은 아닙니다.
생성자란?
객체 생성 시 가장 먼저 '반드시' 실행되어야 하는 것으로
객체를 초기화하기 위해 '가장 먼저 실행되는' 메소드입니다.
(생성자는 클래스 안에 기록된 클래스와 이름이 같은 메소드입니다!
심지어 클래스 내에 생성자가 정의되어있지 않으면, 새로 만들어서 실행시킵니다.)
ClassA a = new ClassA();
위 코드에서
new 연산자에 의해 생성자인(ClassA())가 실행되면, 힙 메모리 영역에 객체가 생성되고, 객체의 주소가 리턴됩니다.
이렇게 리턴된 객체 주소는 클래스 타입 변수(a)에 저장되어, 객체에 접근할 때 이용됩니다.
그렇다면 객체를 생성할 때 초기화가 왜 필요할까요?
어떤 일을 시작하기 전에 준비를 하게 되는데 이것을 다른 말로 초기화라고 합니다.
(공부하기 전에 책상을 정리한다던지, 공책을 준비한다던지, 책을 핀다던지 등등...)
이와 마찬가지로 자바에서
객체를 생성할 때 반드시 포함시켜야 하는 작업을 설정해 오류를 방지하고,
절차를 줄이는 작업(쉽게 생각해서 반복을 줄여 코드 양을 줄인다고 생각하면 편합니다!)을
초기화라고 하고, 이 역할을 생성자가 해 줍니다.
쓰레드란?
하나의 프로그램이 돌아가고 있는 상태를 프로세스라고 하는데,
그 프로세스 내에서 순차적으로 실행되는 실행 흐름의 최소 단위를 말합니다.
멀티 쓰레드란?
한 프로세스 내에서도 여러 개의 작업이 동시에 진행될 필요가 있는데,
(예를 들어 브라우저라는 하나의 프로그램에서 파일 다운로드도 하고, 영상도 보는 등
하나의 프로그램에서 동시에 여러 작업을 하는 상황을 떠올려보면 됩니다.)
그것을 가능하게 해 주는 것이 멀티 쓰레드 환경입니다.
쓰레드의 동시성과 병렬성에 관한 좋은 설명을 해 준 블로그
https://honbabzone.com/java/java-thread/
JAVA 쓰레드란(Thread) ? - JAVA에서 멀티쓰레드 사용하기
JAVA에서 Thread사용하는 방법을 배우고 멀티코어 환경에서 멀티 쓰레드를 사용하는 방법을 알아보겠습니다.
honbabzone.com
읽어주셔서 감사합니다 :)
'Dev Tools > Java' 카테고리의 다른 글
[Java] 배열과 리스트에 대하여 (0) | 2022.05.31 |
---|