본문 바로가기
반응형

프로그래밍/Java33

[Java] JVM의 구조 💡JVM의 동작방식 [Java] 컴파일 과정 ✔️컴파일이란? 프로그래밍 언어로 작성한 코드는 사람이 이해하고 작성하기 편리한 형태입니다. 그러나 컴퓨터는 이러한 코드를 직접 실행할 수 없습니다. 여기에서 컴파일러가 등장합니다. richwish.tistory.com 자바로 개발된 프로그램을 실행하면 JVM은 OS에 메모리를 할당합니다. 자바컴파일러(javac)가 자바파일(.java)을 바이트코드(.class)로 컴파일 합니다. ClassLoader를 통해서 바이트코드를 JVM Runtime Data Area로 로딩합니다. Runtime Data Area에 있는 바이트코드들은 Excution Engine을 통해 해석됩니다. 해석된 바이트코드는 Runtime Data Area의 각 영역에 배치되어 수행하며 이.. 2023. 10. 5.
[Java] OOP의 5대원칙(SOLID) 📌 단일 책임 원칙 (Single Responsibility Principle - SRP) 하나의 클래스는 하나의 책임만 가져야 합니다. 즉, 클래스는 변경의 이유가 하나여야 합니다. 이를 통해 클래스를 변경할 필요가 있을 때 다른 부분에 영향을 미치지 않도록 할 수 있습니다. 📌 개방/폐쇄 원칙 (Open/Closed Principle - OCP) 소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에 대해서는 개방적이어야 하지만 수정에 대해서는 폐쇄적이어야 합니다. 즉, 새로운 기능을 추가할 때 기존 코드를 수정하지 않고 확장할 수 있어야 합니다. 이를 위해 인터페이스와 추상화를 활용합니다. 📌 리스코프 치환 원칙 (Liskov Substitution Principle - LSP) 자식 클래스는 부모 .. 2023. 10. 4.
[Java] 캡슐화와 은닉화의 차이 💡캡슐화 (Encapsulation) 캡슐화는 데이터와 데이터를 다루는 메서드(함수)를 하나의 단위로 묶는 것을 의미합니다. 캡슐화는 클래스 내부에 멤버 변수(필드)와 해당 변수를 다루는 메서드(게터 및 세터)를 정의함으로써 구현됩니다. 주요 목적은 데이터와 데이터를 다루는 메서드를 노출시키지 않고, 외부에서의 직접적인 접근을 제어하여 데이터의 무결성과 보안을 유지하는 것입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 public class Student { private String name; // 멤버 변수, private으로 캡슐화 private int age; public String getName() { // 게터 메서드, 데이터 반환 return name; } public voi.. 2023. 10. 4.
[Java] OOP의 4가지 특징 💡OOP란 객체 지향 프로그래밍(OOP, Object-Oriented Programming)은 소프트웨어 개발 패러다임 중 하나로, 현실 세계의 객체(Object)와 그 객체들 간의 관계를 모델링하여 프로그래밍하는 방법론입니다. OOP의 주요 특징은 다음과 같습니다. 📌 캡슐화 (Encapsulation) 캡슐화는 객체의 상태(멤버 변수)와 행동(메서드)을 하나로 묶고, 외부에서 직접 접근하지 못하도록 은닉하는 개념입니다. 즉, 데이터와 해당 데이터를 다루는 메서드를 함께 묶어 사용자가 객체의 상태를 직접 조작하지 못하게 합니다. 예시: 클래스 내부의 멤버 변수를 private로 선언하고, 외부에서 접근할 수 있는 메서드(getters와 setters)를 통해 상태를 조작하는 것이 캡슐화의 예입니다. 1.. 2023. 10. 4.
반응형