Java5 [Java] static 알아보기 1. static이란 static 멤버란 정적 멤버를 뜻합니다. 클래스 멤버라고도 부르는 static 멤버는 어떤 객체 소속이 아닌, 클래스에 고정되어 있는 변수나 메서드라는 것을 의미합니다. static 키워드를 통해 생성된 정적 멤버들은 Heap 영역이 아닌 Static 영역에 할당되며, 그렇기 때문에 가비지 컬렉터의 관리 영역 밖에 존재합니다. 프로그램이 시작할 때 메모리에 적재되어서 모든 객체가 공유하여 사용할 수 있다는 장점이 있지만, 프로그램이 시작할 때 생성되어 프로그램이 끝날 때까지 값이 유지되므로 static 멤버를 지나치게 남용하는 것은 시스템 성능에 악영향을 줄 수도 있습니다. 2. static의 특징 (1) 메모리에 고정적으로 할당된다. static이 붙지 않은 메서드나 변수는 객체.. Java 2024. 4. 22. [Java] 래퍼 클래스(Wrapper Class)란 1. 래퍼 클래스(Wrapper Class)란 래퍼 클래스란 자바에서 기본 자료타입을 객체로 다루기 위해 사용하는 클래스입니다. 자바는 크게 기본 타입(Primitive Type)과 참조 타입(Reference Type)의 자료형을 가지고 있습니다. 대표적인 기본 타입으로는 int, float, double, char, boolean 등이 있는데요! 개발을 하다보면 종종 기본 타입 데이터를 객체로 표현해야 하는 경우가 있습니다. (저는 코딩 테스트를 풀 때 가장 많이 사용하는 것 같습니다..) 이때 래퍼 클래스가 사용됩니다! 2. 래퍼 클래스의 종류 자바의 모든 기본 타입은 객체 형태로 표현할 수 있으며, 타입명이 비슷하기 때문에 쉽게 알고 사용할 수 있습니다! 기본 타입 (Primitive Type) .. Java 2024. 4. 18. [Java] JVM GC 처리 과정 1. GC란 Garbage Collection의 약자인 GC는 JVM에서 제공하는 메모리 관리 기능입니다. Runtime Data Area의 Heap 영역에 저장된 객체들을 따로 정리하지 않으면, 메모리가 가득차 에러가 발생할 수 있습니다. 이를 방지하고자 JVM에서는 GC를 통해 메모리를 관리해 주며, 이 덕분에 개발자는 편하게 프로그래밍을 할 수 있습니다! (개발자들은 어느 시점에 GC가 동작하는지 모릅니다. 언제 역할을 수행하는지는 모르지만.. 늘 고마워 GC..) Java에서 System.gc()를 직접 호출할 수도 있지만.. 해당 메소드를 호출하는 것은 시스템의 성능에 매우 큰 영향을 미치므로 절대 호출해서는 안됩니다! 2. Java에 GC 도입이 가능했던 이유 Java는 weak generat.. Java 2024. 4. 16. [Java] JVM의 구조와 자바 컴파일 과정 0. 자바의 특징 자바의 특징이라고 하면 플랫폼 독립성이 먼저 떠오르곤 합니다. 자바가 OS에 독립적일 수 있는 이유는 바로 JVM(Java Virtual Machine) 덕분인데요! 오늘은 자바가 플랫폼 독립성을 가질 수 있는 이유인 JVM의 기능과 컴파일 과정에 대해 알아보도록 하겠습니다! 1. JVM 구조 자바 가상 머신 JVM은 자바 프로그램 실행환경을 만들어 주는 소프트웨어입니다. JVM에는 자바 실행 환경 JRE(Java Runtime Environment)가 포함되어 있기 때문에, 개발자가 작성한 자바 파일을 컴파일한 .class 파일은 JVM에서 실행됩니다! (1) 클래스 로더 (Class Loader) 자바는 동적으로 클래스를 읽어옵니다. 그렇기 때문에 런타임 환경이 되어서야 모든 코드가.. Java 2024. 4. 16. [Java] Call by Value vs Call by Reference 1. 메소드의 파라미터 전달 방법 메소드를 호출할 때 파라미터 값을 전달하는 방법은 두 가지가 있습니다. 하나는 Call by Value 이고 다른 하나는 Call by Reference 입니다. (1) Call by Value Call by Vaule는 메소드를 호출할 때 데이터 값을 넘겨주는 방식을 뜻합니다. (Pass by Value 라고도 부릅니다.) 호출자의 변수와 수신자의 변수는 서로 다른 변수이며, 서로 다른 변수이기 떄문에 메소드 내에서 해당 변수를 조작하더라도 호출자에서 사용한 변수의 값은 변하지 않습니다. (2) Call by Reference Call by Reference는 메소드를 호출할 때 참조(주소)를 직접 전달하는 방식을 뜻합니다. (Pass by Value 라고도 부릅니다... Java 2024. 4. 16. 이전 1 다음