[Java | #6-1] 배열(Array)이란?
·
[KOSA]MSA기반 Full-Stack 개발 전문가 양성과정/[Java] 강의 노트
📅 2025. 04. 16 수업📂 배열(Array)기존에 우리가 하나의 값을 저장하기 위해서는 하나의 변수를 선언하여 사용하여야만 했습니다.1개의 변수는 1개의 값만 저장할 수 있는 것이 보통이었습니다.int intVar = 10;double doubleVar = 10.0;String strVar = "하나의값";하지만 여기서 여러개의 값을 저장하기 위해서는 어떻게 사용해야 할까요?int intVars = 1,2,3,4,5,6..; // 이렇게는 사용 불가.그렇다면 이렇게 사용해야 할까요?이렇게 선언하게 된다면 저장할 값이 더욱 많아질 수록 코드도 그만큼 길어지는 비효율적인 모습을 볼 수 있습니다.int intVars1 = 1;int intVars2 = 2;int intVars3 = 3;int int..
[Java | #3] 객체 생성의 원리
·
[KOSA]MSA기반 Full-Stack 개발 전문가 양성과정/[Java] 강의 노트
📅 2025. 04. 11 수업 이슈1. 객체 생성의 원리현실 세계에는 긴팔 티, 반팔 티, 나시 티 등 다양한 옷이 존재합니다.그렇다면 소프트웨어, 즉 가상 세계에서 이 옷들을 표현하려면 어떻게 해야 할까요?💡 핵심 개념여러 옷들을 포괄할 수 있는 하나의 공통 타입이 필요합니다.Java에서는 이를 클래스(Class) 라고 부릅니다.2. 🔍 추상화(Abstraction)와 일반화(Generalization) - 지금은 자세히 몰라도 됩니다.🌟 2.1 추상화 (Abstraction)복잡한 현실 세계의 개체에서 핵심적인 속성이나 동작만을 뽑아내어 표현하는 것불필요한 세부 사항은 숨기고, 꼭 필요한 정보만 다룹니다.🧵 예시 – 셔츠(Shirt)셔츠를 소프트웨어로 표현할 때, 색깔, 팔 길이, 브랜드는..
5.5) JAVA | 문자열(String) 타입
·
프로그래밍 언어 공부/이것이 자바다
✅ 1. 문자열이란?자바의 문자열은 String 클래스의 객체입니다.문자열 리터럴("홍길동")이 대입되면 JVM은 이를 내부적으로 String 객체로 처리합니다.String name; // 선언name = "홍길동"; // 대입String hobby = "여행"; // 선언과 동시에 대입👉 변수(name, hobby): Stack 영역에 저장👉 문자열 객체("홍길동", "여행"): Heap 영역에 저장✅ 2. 문자열 리터럴 공유 (String Pool)🎯 중요! 자바는 동일한 문자열 리터럴을 하나의 객체로 공유합니다.이 영역을 "문자열 리터럴 풀(String Pool)" 이라고 합니다.String str1 = "Java";String str2 = "Java";System..
5.4) JAVA | null과 NullPointerException
·
프로그래밍 언어 공부/이것이 자바다
✅ null 이란?참조 타입 변수는 초기값이 없으면 자동으로 null로 초기화됩니다.null은 "참조하고 있는 객체가 없다" 는 의미입니다.int, double 등 기본 타입은 null 불가 → 오직 참조 타입만 사용 가능String str = null; // str은 현재 어떤 객체도 가리키지 않음✅ 2. NullPointerException 이란?null인 참조 변수를 사용하여 객체의 속성(field)이나 메서드(method)에 접근하려고 할 때 발생하는 런타임 에러이다.String str = null;System.out.println(str.length()); // ❌ NullPointerException 발생객체가 없는 상태인데 .length() 같은 메서드를 호출하려 하면 NullPointerE..
5.3) JAVA | 참조 타입 변수의 ==, != 연산
·
프로그래밍 언어 공부/이것이 자바다
✅ 연산자의 기본 개념==, != 연산자는 두 값이 같은지, 다른지를 비교합니다.기본 타입은 값 자체를 비교,참조 타입은 객체의 번지(주소값)를 비교합니다.📌 참조 타입 변수의 비교참조 타입 변수에는 객체가 저장된 Heap 메모리의 번지(주소) 가 저장됩니다.따라서 참조 타입 변수끼리 ==, != 연산을 하면 번지(주소)를 비교하게 됩니다. ✅ 참조 타입 비교 예제 – 사용자 정의 클래스 사용class Person { String name; Person(String name) { this.name = name; }}public class Main { public static void main(String[] args) { Person p1 = new Per..
5.2) JAVA | 메모리 사용 영역 - JVM 구조
·
프로그래밍 언어 공부/이것이 자바다
✅ 개요Java 명령어로 JVM(Java Virtual Machine) 이 구동되면운영체제로부터 메모리를 할당받아 내부적으로 다음과 같이 3가지 주요 영역으로 나눠 사용합니다.이 영역들을 통틀어 Runtime Data Area 라고 합니다.#1. Method Area (메소드 영역)JVM 실행 시 생성클래스 로딩 시 읽은 바이트코드 정보를 저장클래스별로 다음과 같은 정보가 저장됨:상수(Constant Pool)정적 변수 (static)메서드 코드생성자 코드#2. Heap Area (힙 영역)JVM 실행 시 함께 생성new 키워드로 생성된 객체들이 저장되는 공간모든 객체의 참조값(주소) 은 메소드 영역 또는 스택 영역에서 참조함Garbage Collector(GC) 가 동작하는 대상 영역#3. Stack ..