java 15

[TIL] 프로세스와 쓰레드

프로세스와 쓰레드 프로세스 : 운영체제로부터 자원을 할당받는 작업의 단위, 실행 중인 프로그램을 의미 쓰레드 : 프로세스가 할당받은 자원을 이용하는 실행의 단위, 프로세스내에서 일하는 일꾼(코드실행의 흐름) OS가 프로그램 실행을 위한 프로세스를 할당해줄때 프로세스안에 프로그램 Code와 Data 그리고 메모리 영역(Stack, Heap)을 함께 할당해준다. 프로세스가 작업중인 프로그램에서 실행요청이 들어오면 쓰레드(일꾼)을 만들어 명령을 처리하도록 한다. 프로세스 안에는 여러 쓰레드(일꾼)들이 있고, 쓰레드들은 실행을 위한 프로세스 내 주소공간이나 메모리공간(Heap)을 공유받는다. 추가로, 쓰레드(일꾼)들은 각각 명령처리를 위한 자신만의 메모리공간(Stack)도 할당받는다. Java는 이와 같이 JV..

기타/개발일기 2024.01.04

[TIL] JVM과 기본 문법

오늘의 키워드 JVM 자바 기본 문법 JVM JVM은 `Java Virtual Machine`의 약자로 자바 가상 머신이다. 간단하게 JVM 동작을 이해할 수 있는 그림이다. 대충 이야기하자면 자바 컴파일러로 변환된 바이트 코드를 클래스 로더를 통해 메모리에 보내준다. 인터프리터는 바이트 코드를 가져와 기계어로 번역을 하고, JIT 컴파일러가 이를 보조하여 도와준다. 또 메모리에서 안쓰는 데이터를 처리해주는 Garbage Collector가 있다. 더 자세하게 JVM에 대해 공부할 수 있도록 글을 따로 정리해두었다. 2023.12.21 - [Language/Java] - JVM JVM JDK, JRE, JVM JDK, JRE, JVM에 대한 용어를 정리하자면 JDK : Java Development Ki..

기타/개발일기 2023.12.29

자바의 객체지향 정리

클래스와 객체 클래스의 정의 : 클래스란 객체를 정의해 놓은 것이다. 클래스의 용도 : 클래스는 객체를 생성하는데 사용한다. 객체의 정의 : 실제로 존재하는 것, 사물 또는 개념 객체의 용도 : 객체가 가지고 있는 속성과 기능에 따라 다르다. 쉽게 표현하자면 이렇다. 클래스 객체 제품 설계도 제품 TV 설계도 TV 붕어빵 기계 붕어빵 객체와 인스턴스 용어 정리 객체 : 모든 인스턴스를 대표하는 일반전인 용어 인스턴스 : 특정 클래스로부터 생성된 객체 인스턴스화 : 클래스 => 인스턴스 더 쉽게 정리되어진 글을 찾아봤다. 객체의 구성요소 객체 = 속성(변수) + 기능(메서드) 객체의 생성 객체의 생성 클래스명 변수명; - 클래스의 객체를 참조하기 위한 참조변수를 선언 변수명 = new 클래스명; - 생성된..

Language/Java 2023.12.22

JVM

JDK, JRE, JVM JDK, JRE, JVM에 대한 용어를 정리하자면 JDK : Java Development Kit / 자바 개발 도구 JRE : Java Runtime Environment / 자바 실행 환경 JVM : Java Virtual Machine / 자바 가상 기계 Java의 호환성 Java와 C언어의 차이점은 무엇일까? Java는 Write Once Use Anywhere 이라는 목적을 가지고 있다. 번역하자면, "소스파일을 하나만 작성하면 어디에서든지 사용이 가능하다!" 이다. 반면에 C언어는 One Source Multi Object Use Anywhere 번역하자면, "하나의 소스파일로 각 기계에 맞는 목적파일로 만들어 어디든 사용 가능하다!" 이다. 정리해 보자면, 하나의 목..

Language/Java 2023.12.21

[Java] Enum으로 상수 관리

우테코 프리코스 1주차로 숫자 야구 게임을 만들고 참가자 한 분이 static final로 상수를 관리했는데 Enum으로 관리해보라고 하셨다. Enum을 타입스크립트를 통해서 사용해 본 경험이 있어서 사용하는 방법만 익혔다. package baseball; public enum GameConstant { STARTING_STRING("숫자 야구 게임을 시작합니다."), RESTARING_STRING("게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요."), ENDING_STRING("3개의 숫자를 모두 맞히셨습니다! 게임 종료"), INPUT_STRING("숫자를 입력해주세요 : "), STRIKE("스트라이크"), BALL("볼 "), NOTHING("낫싱"), RESTART("1"), END("..

Language/Java 2023.10.27