Language/JAVA 16

[JAVA] 메모리 영역

📌JVM (Java Virtual Machine)이란?   :  자바 가상 머신으로, JVM 설치만 한다면 OS에 상관없이 자바의 바이트 코드를 해석하고 실행하는 역할을 한다. JVM 실행 순서 .java 파일을 컴파일러(Compiler)를 통해 .class 파일로 변환한다. .class 파일을 JVM의 ClassLoader(클래스로더)에게 보낸다.클래스로더에서 JVM 런타임 영역으로 로딩하여 메모리에 올린다. 메모리란?: 주기억장치인 하드웨어 RAM을 의미하며, 프로그램을 실행하기 위한 정보를 저장한다.컴퓨터에 존재하는 모든 영역은 RAM이란 기억장치 내 고유한 영역을 할당받는다.→ 효율적으로 프로그램이 실행되기 위해 메모리 영역은 구분된다. 자바의 메모리 영역- 자바 프로그램을 실행하게 되면 JVM..

Language/JAVA 2024.08.25

[JAVA] 스레드(Thread) 의미와 사용법

Process와 Thread📌 프로세스(Process) : cpu에 의해 메모리에서 실행 중인 프로그램자바 JVM(Java Virtual Machine)은 주로 하나의 프로세스로 실행되며, 동시에 여러 작업을 수행하기 위해 멀티 스레드를 지원한다. 📌 스레드(Thread) : 메모리에 올라가 실행 중인 프로세스 안에서 실질적으로 작업을 실행하는 단위단일 스레드 : 한 프로그램에 스레드가 1개일 경우멀티 스레드 : 한 프로그램에 스레드가 2개 이상인 경우 👐🏻작업 단위로 보는 운영체제와 스레드👐🏻운영 체제의 입장에서  →  작업의 단위는 프로세스cpu입장에서 →  작업의 단위는 스레드 Process와 Thread의 차이점가장 큰 차이 키워드 : 독립성 (각각의 메모리를 할당 받는 것)→ 프로세스..

Language/JAVA 2024.08.24

[JAVA] 추상 클래스와 인터페이스

📌 추상클래스 : 부모 클래스는 제공하지만, 실제 생성되면 안 되는 클래스📌 인터페이스 : 순수 추상 클래스로, 실행 로직을 전혀 가지고 있지 않은 모든 메서드가 추상 메서드인 추상 클래스 추상클래스 선언법abstract class abstractClass {...}  : 클래스를 선언할 때 앞에 추상이라는 의미의 abstract 키워드를 붙여주면 된다. 추상클래스 특징직접 인스턴스를 생성하지 못한다.추상 메서드가 하나라도 있는 클래스는 추상 클래스로 선언해야 한다. 추상 메서드 선언법public abstract void abstractMethod(); : 메서드 앞에 추상이라는 의미의 abstract 키워드를 붙여주면 된다. 추상 메서드 특징바디 부분이 없다.상속받는 자식 클래스가 반드시 오버라이딩..

Language/JAVA 2024.08.19

[JAVA] static의 의미와 사용법

📌 static : '정적인' 이라는 뜻으로, JAVA에서 프로그램 실행 시점에 만들어지고 프로그램 종료 시점에 제거된다는 특징에 붙여진 이름. 정적 멤버 : 정적 변수(필수) + 정적 메서드 정적 변수 (= 클래스 변수, Static 변수) : Static이 붙은 멤버 변수정적 변수는 자바 프로그램을 시작할 때 딱 1개 만들어진다. 인스턴스 변수와 다르게 보통 여러곳에서 공유하는 목적으로 사용된다.클래스에서 공용으로 관리한다.인스턴스가 아닌 클래스를 통해서 접근하는 것이 더 명확하다. 정적 메서드 (=클래스 메서드) : Static이 붙은 메서드인스턴스(객체) 생성 없이 클래스에 있는 메서드를 '클래스이름.변수명'으로 바로 호출할 수 있다.참조값의 개념이 없음클래스 내부의 기능을 사용할 때, 정적 메..

Language/JAVA 2024.08.19

[JAVA] 객체(Object)란?

📌 객체 : 클래스를 기반으로 생성된 인스턴스로, 현실 세계의 사물이나 개념을 소프트웨어로 표현한 것   →  클래스에 정의된 속성과 메서드를 실제로 사용할 수 있는 형태로 만든 실체. 실체, 주체, 객체실체 : 실제로 존재하는 것주체 : '나'라는 실체를 1인칭으로 보는 이름객체 : 주체인 내가 다른 주체(타인)을 부르는 이름.→ 본인 이외의 다른 실체 객체의 구성요소속성(데이터, 필드) + 행동(메서드)속성 : 객체이자 실체가 스스로를 나타낼 수 있는 특징행동 : 객체이자 실체가 할 수 있는 역량이나 동작 클래스와 객체의 관계 클래스 : 객체를 만들기 위한 설계도하나의 클래스에서 여러 객체 생성 가능클래스는 객체의 개체의 속성(필드)와 메서드(동작)을 정의한다.// 클래스 정의class Car { ..

Language/JAVA 2024.08.16

[JAVA] 객체 지향 프로그래밍의 4가지 특징 - 캡슐화, 상속성, 다형성, 추상화

📌 객체 지향 프로그래밍(Object Oriented Programming, OOP)은 각각의 기능들을 객체화(클래스화)시켜 메인함수에서는 객체화시킨 기능들을 호출해서 사용하는 상향식 프로그래밍 기법이다. 등장 배경 - 절차적 프로그래밍 방식의 "코드 재사용과 확장성의 한계, 관리와 유지보수"의 한계: 기존 절차적 프로그래밍의 경우 프로시저(함수) → 구조화를 구현하였을 뿐, 결국 순차적 프로그래밍 방식이다.   ✨ 객체 지향 프로그래밍의 4가지 특징 : 캡슐화, 상속성, 다형성, 추상화 ✨  객체 지향 프로그래밍 OOP의 네 가지 주요 특징은 캡슐화, 상속, 다형성, 추상화이다.이 네 가지 특징으로 인해 객체지향 프로그래밍은 코드 재사용성과 유지보수성이 높다.  1. 캡슐화(Encpsulation):..

Language/JAVA 2024.08.16