분류 전체보기

    Java JVM 메모리 구조와 메모리 저장 방식

    Java JVM 메모리 구조와 메모리 저장 방식

    JVM의 메모리 구조Java 프로그램이 실행될 때, JVM은 OS(운영 체제)로부터 해당 프로그램을 수행할 수 있도록 필요한 메모리를 할당받습니다. 할당받은 메모리를 JVM은 메모리 공간 효율성을 높이기 위해 용도에 따라 여러 영역으로 구분하여 관리합니다.method area / static area이 영역은 자바 프로그램에서 사용되는 클래스 정보와 클래스 변수(static), 상수가 저장되는 영역입니다. 클래스 로딩 시 이 영역에 저장되며, 모든 스레드에서 공유됩니다. JVM은 특정 클래스가 사용되면 해당 클래스 즉, 자바 바이트 코드인 클래스 파일(*.class)를 읽어 들인 클래스와 인터페이스에 대한 런타임 상수 풀, 멤버 변수(필드), 클래스 변수(static 변수), 생성자와 메소드를 메소드 영..

    Java 상속(Inheritance), 인터페이스(Interface), 추상 클래스(Abstract Class) 차이점

    Java 상속(Inheritance), 인터페이스(Interface), 추상 클래스(Abstract Class) 차이점

    1. 상속(Inheritance)상속은 기존 클래스의 속성과 메소드를 재사용하고, 새로운 기능을 추가하여 확장하는 기능입니다. 한 클래스가 다른 클래스를 상속하면 자식 클래스(서브 클래스)가 부모 클래스(슈퍼 클래스)의 모든 속성과 메소드를 물려받게 됩니다.코드 재사용성: 부모 클래스의 코드를 자식 클래스에서 재사용할 수 있습니다.확장성: 자식 클래스는 부모 클래스의 기능을 확장하거나 오버라이딩(재정의)할 수 있습니다.단일 상속: Java에서는 하나의 클래스만 상속받을 수 있습니다.class Animal { void sleep() { System.out.println("잠듭니다."); }}class Dog extends Animal { void bark() { S..

    Java 생성자, this()와 super()

    Java 생성자, this()와 super()

    생성자생성자는 객체가 생성될 때 호출되는 특수한 메소드입니다. 생성자의 주된 역할은 객체의 초기화로, 인스턴스 변수에 적절한 값을 할당하거나 객체를 초기 상태로 세팅하는 데 사용됩니다. 생성자 종류1. 기본 생성자Java에서 생성자를 명시하지 않으면, 컴파일러가 자동으로 기본 생성자를 추가합니다. 기본 생성자는 매개변수가 없는 생성자로, 클래스가 객체화될 때 아무런 초기화 작업을 하지 않고 객체를 생성하는 역할을 합니다.class User { String name; // 생성자가 없으므로 컴파일러가 기본 생성자를 자동으로 추가}public class Main { public static void main(String[] args) { User user = new User(); ..

    Java 객체지향 프로그래밍의 특징과 개념 이해

    Java 객체지향 프로그래밍의 특징과 개념 이해

    객체지향 프로그래밍: OOPJava는 객체지향 프로그래밍(OOP)의 대표적인 언어로, 현실에 존재하는 사물(객체)을 속성과 기능으로 정의하고 이를 코드로 구현하는 방식입니다. 객체지향 프로그래밍의 핵심은 클래스와 객체, 그리고 이를 통해 프로그램을 설계하고 구조화하는 방법에 있습니다. 이번 포스팅에서, 객체지향에 대한 설명과 Java에서 이를 어떻게 구현하는지에 대해 설명하도록 하겠습니다. 객체지향 프로그래밍의 장점코드 재사용성이미 정의된 클래스와 객체를 여러 프로그램에서 재사용할 수 있어 개발 효율이 높아집니다.유지보수성클래스와 객체를 이용해 코드를 모듈화할 수 있어 수정과 유지보수가 용이합니다.확장성새로운 기능을 추가하거나 변경할 때 기존 코드를 최소한으로 수정하고 확장할 수 있습니다.캡슐화데이터를 ..

    Java 조건문과 반복문: if, switch, for, while 그리고 break와 continue

    Java 조건문과 반복문: if, switch, for, while 그리고 break와 continue

    프로그래밍에서 조건문과 반복문은 논리적 흐름을 제어하는 문법입니다. 조건문으로 if, switch, 반복문으로 for, while, do-while 가 있습니다. 조건문1. if문if문은 주어진 조건이 true일 때만 실행되는 가장 기본적인 조건문입니다.int age = 20;if (age >= 18) { System.out.println("성인입니다.");} 2. if-else문if문과 함께 else를 사용하면, 조건이 false일 때 실행할 코드도 지정할 수 있습니다.int age = 10;if (age >= 18) { System.out.println("성인입니다.");} else { System.out.println("미성년자입니다.");} 3. if-else if문if-else if문..

    Java 변수, 데이터 타입, 리터럴과 상수 차이

    Java 변수, 데이터 타입, 리터럴과 상수 차이

    변수(variable)란?변수란 데이터를 저장하는 메모리 공간입니다. Java에서 변수를 사용하려면 선언하고, 필요에 따라 초기화해야 합니다. 변수 선언과 초기화변수 선언은 데이터 타입과 변수명을 지정하여 이루어집니다. 데이터 타입은 저장하고자 하는 값의 종류에 맞게 지정해주면 됩니다. 이렇게 타입을 지정하면 메모리의 빈 공간에 데이터 타입 크기 만큼의 저장공간이 생기게 됩니다. 변수명은 이 저장공간에 이름을 붙여 사용할 수 있게 해줍니다.int x; // 정수형(int) 변수 선언x = 10; // 변수 초기화 (값 할당)int x = 10; // 선언과 초기화 변수 네이밍 규칙컴파일러에서 제한되는 네이밍 규칙영어와 숫자, _, $만 사용 가능합니다.대소문자는 구분됩니다.숫자로 시..

    Java란 무엇인가?

    Java란 무엇인가?

    Java란 무엇인가요?Java는 1990년대 중반에 등장한, 웹 어플리케이션 코딩에 사용되는 객체지향 프로그래밍 언어입니다. Java를 사용하는 이유는 많지만, 그 중에서도 운영체제 독립성, 객체지향 설계 등이 장점이라 볼 수 있습니다.📌전자정부표준프레임워크한국 정부에서 Java/Spring을 표준(전자정부표준프레임워크)으로 정하였습니다. 이로인해 Java/Spring 기반인 정부 과제들도 많고, 높은 일자리 점유율을 갖기 때문에 사실 국내 웹 백엔드 개발에 있어서 Java/Spring은 사실 표준으로 사용되고 있습니다. Java 특징1. 운영체제 독립성운영체제 독립성 덕분에 하나의 코드로 다양한 플랫폼에서 애플리케이션을 배포할 수 있습니다. 이 기능을 가능하게 하는 것은 바로 JVM (Java Vir..

    React Hooks 이해하기

    React Hooks 이해하기

    React Hooks란?React Component는 클래스형 컴포넌트와 함수형 컴포넌트 두 가지가 존재합니다. 함수형 컴포넌트는 클래스형 컴포넌트보다 코드도 간결하고, 더 빠른 성능이 나옵니다. 그럼에도 예전엔 클래스형 컴포넌트를 더 많이 사용했었습니다. 그 이유는 상태 관리와 라이프사이클 메소드를 클래스형 컴포넌트에서만 사용할 수 있었기 때문입니다.하지만 React 16.8부터 리액트 Hooks가 발표되고 함수형 컴포넌트에서 Hooks를 사용하여 상태 관리와 사이트 이펙트를 처리할 수 있게 되어, 현재는 함수형 컴포넌트를 대다수가 사용합니다.  React 라이프 사이클  주요 React HooksuseStateuseEffectuseContextuseReduceruseCallbackuseMemouseR..