Java44 [JAVA] JVM 메모리 구조 알아보기 안녕하세요, 오늘은 Java 프로그림이 실행되는 환경인 JVM(Java Virtual Machine)의 메모리 구조에 대해 알아보겠습니다. JVM(Java Virtual Machine)이란?JVM은 Java 프로그램을 실행하는 가상 머신 입니다. java 코드는 cpu가 직접 실행할 수 없고, JVM이 바이트 코드로 변환해서 실행합니다. 따라서 OS관계없이 실행할 수 있습니다. JVM은 실행 중 메모리를 관리하고, GC(Garbage Collection)로 불필요한 객체를 정리해 줍니다. JVM 구조JVM은 크게 3개의 영역으로 나뉩니다. 1. 클래스 로더(Class Loader) : .class 파일 로드 2. 런타임 데이터 영역(Runtime Data Area) : java 실행에 필요한.. 2025. 3. 2. [JAVA] WeakReference, SoftReference 사용법 안녕하세요, 오늘은 메모리 누수 방지를 위한 WeakReference, SoftReference 사용법에 대해 알아보고자 합니다. 먼저, 참조(Reference)란, 객체의 메모리 주소를 가리키는 변수를 의미합니다. Java에서 모든 객체(클래스의 인스턴스)는 참조를 통해 접근하고, 참조가 없으면 해당 객체는 더 이상 사용할 수 없습니다. Java의 참조(Reference)는 4가지 종류가 있습니다. StrongReference기본적인 java 객체의 참조 형식, new를 통해 객체를 생성하는 경우의 참조 형식GC가 제거하지 않음 (명시적으로 null 할당해야 해제됨) WeakReferenceJVM의 Garbage Collector(GC)가 더 쉽게 객체를 수거할 수 있도록 하는 참조 타입GC가.. 2025. 2. 23. [JAVA] 자바 인텔리제이에서 DB 데이터베이스 접속하기 이번에는 JAVA에서 MYSQL DB에 접속하여 데이터 조회 및 저장도 해보겠습니다.작업 환경은 윈도우에서 작업했으며 JAR 파일을 직접다운받아 인텔리제이에 삽입해보겠습니다. 먼저 https://dev.mysql.com/downloads/connector/j/?os=26 에서 mysql-connector-j-9.0.0 파일을 다운 받습니다. 다운로드 받은 파일을 압축해제 합니다. 그 다음 인텔리제이를 실행하여 projecStructure 를 실행합니다 JAR 파일을 추가 항목을 누른 후 추가가 된것을 확인 할 수 있습니다. 자바 코드입니다.import java.sql.*;public class ConnectMySQL { public static Statement stmt; public stat.. 2024. 8. 27. [JAVA] 인텔리제이 IntelliJ IDEA JAR 파일 생성/ 만들기 JAR파일 만든 OS환경은 윈도우입니다. [윈도우 유저는 ctrl + shift + alt + s]JAR파일을 만들 클래스를 선택합니다 여기까지 했으면 다시 빌드로 들어가서빌드로 선택되어있는지 확인하고 jar을 클릭하세요여기까지하며 JAR 파일을 만들었습니다! 시연영상 2024. 8. 21. [JAVA]3항 연산자 사용하기 오늘은 3항 연산자(ternary operator)를 사용하는 예시를 보여드리겠습니다. 3항연산자(ternary operator)란 3개의 피연산자(조건, 참일때의 값, 거짓일때의 값)를 활용해 조건 결과에 따라 하나의 값을 반환하는 연산자 입니다. if-else 조건문 내용을 더 간결하게 표현할 수 있다는 장점과 중첩된 복잡한 조건을 표현하는 경우 가독성이 떨어진다는 단점을 가지고 있어 단순한 조건을 표현시 활용하기 좋습니다. 구조 조건 : 참 또는 거짓을 평가하는 표현식입니다.참일 때의 값 : 조건이 참일 경우 반환되는 값 또는 표현식입니다.거짓일 때의 값 : 조건이 거짓일 경우 반환되는 값 또는 표현식입니다. ? 와:를 사용하여 식을 표현하며 ?는 조건과 반환값들 사이 구분자 역할, :는 참.. 2024. 5. 29. [JAVA]가변인자(Varargs) 메서드 사용하기 오늘은 가변인자(Varargs)를 활용한 메서드를 만들어 사용하는 예시를 보여드리겠습니다. 가변인자(Varargs) 란 가변적으로 수가 변화하여 임의의 개수인 인자를 뜻합니다. 이 가변인자를 활용시 메서드에 매개변수를 넣을 때 같은 타입 기준 꼭 몇개로 고정하지 않고 넣을 수 있어 같은 타입의 여러 인수를 유연하게 처리 할 수 있습니다. 1.가변인자를 활용한 메서드 정의 방법 및 사용법 => 위의 이미지 처럼 타입 ... 이름 형식으로 인자 부분을 적어 메서드를 정의합니다. => 사용시 원하는 만큼 같은 타입의 인자들을 넣어 사용하면 됩니다. => 사용시 배열 자체를 넣는것도 가능합니다. 2. 주의점 (1) 가변인자 와 여러 인자를 같이 정의한 메서드를 만들 경우 가변인자를 제일 우측 끝에 넣어야 합니다.. 2024. 5. 17. [Java] Vert.x 클러스터링 예제 오늘은 Vert.x의 클러스터링을 해보겠습니다. 파일 구조는 아래와 같습니다. // Main.java public class Main { public static void main(String[] args) { // 기존 Hazelcast 클러스터 매니저와 Vert.x 옵션 설정 HazelcastClusterManager mgr = new HazelcastClusterManager(); VertxOptions options = new VertxOptions().setClusterManager(mgr); // 클러스터링된 Vert.x 인스턴스 생성 Vertx.clusteredVertx(options, res -> { if (res.succeeded()) { Vertx vertx = res.result();.. 2024. 4. 4. [Java] Vert.x HTTP 기본 예제 오늘은 Java으로 Vert.x 프레임워크를 사용해보겠습니다. 디렉토리 구조는 아래와 같습니다. 아래 코드는 터미널에서 curl을 통해 테스트해보시면 됩니다. GET 요청 (아이템 조회) curl -X GET http://localhost:8080/item/1 POST 요청 (아이템 생성) curl -X POST http://localhost:8080/item -H "Content-Type: application/json" -d '{"name":"NewItem", "description":"Description of new item"}' PUT 요청 (아이템 업데이트) curl -X PUT http://localhost:8080/item/1 -H "Content-Type: application/json".. 2024. 3. 31. [JAVA] 다양한 컬렉션 타입들을 사용해 학생 데이터 관리 시스템 만들기 안녕하세요. 이번 게시글에서는 컬렉션 프레임워크를 활용해 데이터를 관리할 수 있는 간단한 학생 데이터 관리 시스템에 대해 설명해드리겠습니다. 자바의 ArrayList, HashMap, HashSet과 같은 컬렉션들을 사용하여 데이터를 관리하는 방법을 사용할 것이며 각 학생을 객체로 표현하고, 이를 관리하는 클래스를 통해 객체 지향 프로그래밍을 만들어보려고 합니다. 그럼 ArrayList, HashMap, HashSet 의 차이점에 대해 설명하겠습니다. ArrayList 타입: ArrayList는 List 인터페이스를 구현하는 클래스입니다. 특징: ArrayList는 내부적으로 배열을 사용하여 요소를 저장합니다. 이는 인덱스를 통한 빠른 접근이 가능하게 해주지만, 크기 조정이 필요할 때는 비용이 많이 듭니.. 2024. 3. 26. 이전 1 2 3 4 5 다음