본문 바로가기

study028

[Java] static 키워드의 메모리 구조, 사용 시기, 고전적 관점 vs 현대적 관점 🔄 static 키워드의 메모리 구조, 사용 시기, 고전적 관점 vs 현대적 관점📦 static 멤버는 메모리 어디에 저장될까?자바 프로그램이 실행되면 메모리는 아래와 같이 여러 영역으로 나뉘어 관리됩니다:메모리 영역설명Method Area (또는 Class Area)클래스가 로딩될 때 클래스 관련 정보와 static 멤버가 저장됨Heap객체가 생성될 때 인스턴스 멤버가 저장됨Stack메서드 호출 시 지역변수, 매개변수, 호출 순서 등이 저장됨🔹 static 변수와 메서드는 클래스 로더가 클래스를 메모리에 로드할 때 'Method Area'에 올라감.🔹 즉, 객체 생성과 무관하게 프로그램 실행 시점에 메모리에 올라가 있음.🧠 고전적 관점: static은 가능한 한 쓰지 말자?고전적인 객체지향 .. 2025. 4. 8.
[Java] Java에서 배열 생성과 객체 생성의 차이 정리 ✅ 핵심 요약Student[] students = new Student[10];🔹 배열 객체를 생성한 것 (크기 10짜리)🔹 아직 Student 객체는 하나도 존재하지 않음🔹 내부에는 null 값이 10개 들어 있음students[0] = new Student();🔹 진짜로 Student 객체를 생성해서 배열의 첫 번째 칸에 넣는 것✅ 1. 배열 생성: new는 "공간"만 만든다Student[] students = new Student[3];students는 참조형 배열이며,내부에는 Student 객체가 아닌 null이 3개 들어 있음:students = [null, null, null]즉, "객체를 담을 수 있는 칸만 만든 상태"이고,각 칸에 실제 객체를 넣으려면 따로 new 해야 함.✅ 2. .. 2025. 4. 2.
[Java] 객체(Object), 클래스(Class), 그리고 메서드(Method)와 속성(Property, 필드) ✅ 1. 클래스(Class)란?클래스는 객체를 만들기 위한 설계도입니다.하나의 클래스는 속성(필드)과 기능(메서드)를 포함합니다.class Car { String color; // 속성 (Property, Field) int speed; // 속성 void drive() { // 메서드 System.out.println("달립니다!"); } void stop() { System.out.println("멈춥니다!"); }}이 Car 클래스는 "자동차"라는 개념을 표현한 틀(설계도)입니다.✅ 2. 객체(Object)란?클래스는 설계도이고, 객체는 그 설계도를 바탕으로 만들어진 실제 실체입니다.클래스를 기반으로 new 키워드를 .. 2025. 3. 26.
[Java] 자바 메인 함수(Main Function) 자바에서 메인 함수(Main Function)는 자바 프로그램의 시작 지점을 의미합니다. 자바 프로그램을 실행하면 가장 먼저 호출되는 함수가 바로 main() 함수입니다.아래는 자바의 기본적인 메인 함수 선언입니다:public static void main(String[] args) { // 프로그램의 시작 지점}코드를 구성하는 각 키워드와 의미 설명🔍 1. public접근 제어자입니다.public으로 지정하면 어디서든 접근 가능하다는 의미입니다.자바 프로그램을 실행하는 자바 런타임(JVM)은 외부에서 이 main() 함수를 호출하기 때문에 반드시 public이어야 합니다.→ private이나 protected, 아무것도 안 쓰면 실행되지 않음.🔍 2. staticstatic은 클래스 로딩 시 .. 2025. 3. 24.
Java / Python / JavaScript 형변환(type casting) 정리 🔄 Java / Python / JavaScript 형변환 정리기본형 ↔ 문자열(String) 간 변환, 숫자 ↔ 숫자, 암시적/명시적 변환✅ 1. 숫자 → 문자열Java Python JavaScriptString.valueOf(123)str(123)String(123) or 123.toString()int num = 123;String s = String.valueOf(num);num = 123s = str(num)let num = 123;let s = String(num);// 또는let s2 = num.toString();✅ 2. 문자열 → 숫자Java Python JavaScriptInteger.parseInt("123")Double.parseDouble("3.14")int("123")float.. 2025. 3. 23.
Java vs Python vs JavaScript 문법 총정리 📘 Java vs Python vs JavaScript 문법 총정리  항목 Java Python JavaScript변수 선언int x = 10;String s = "hi";x = 10s = "hi"let x = 10;const s = "hi";자료형int, double, boolean, char, String, ArrayListint, float, bool, str, list, dict, tuplenumber, string, boolean, object, array, null, undefined출력System.out.println("Hi");print("Hi")console.log("Hi");조건문if, else if, elseif, elif, elseif, else if, elseelif 문법❌ 없음.. 2025. 3. 22.