Programming/Java 18

[Java] - 컬렉션 프레임워크 (Collection Framework)

컬렉션 프레임워크 (Collection Framework)자료 구조(Data Structure)는 데이터를 효율적으로 저장하고 관리하기 위한 방식이며, 컬렉션 프레임워크는 자바에서 이러한 자료 구조들을 표준화하여 미리 만들어 놓은 클래스와 인터페이스의 모음입니다.이 프레임워크 덕분에 개발자는 데이터의 크기가 동적으로 변하는 상황을 쉽게 처리할 수 있으며, 삽입, 삭제, 검색, 정렬과 같은 복잡한 작업을 편리하게 수행할 수 있습니다.https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Collection.html Collection (Java SE 17 & JDK 17)Type Parameters: E - the type of ele..

Programming/Java 2025.10.08

[Java] - 인터페이스와 제네릭

인터페이스 (Interface) - 클래스를 위한 명세서인터페이스(Interface)는 두 대상 간의 상호작용 규칙을 정의한 '약속' 또는 '규격'입니다. 프로그래밍에서는 클래스가 어떤 메서드를 반드시 가지고 있어야 하는지에 대한 명세(Specification)를 정의하는 역할을 합니다.추상 클래스가 미완성된 설계도였다면, 인터페이스는 구현부는 전혀 없이 밑그림만 있는 '완전한 추상 설계도'라고 할 수 있습니다.💡 쉬운 비유USB 포트를 생각해 보세요. 어떤 회사(삼성, LG, Apple)의 어떤 장치(키보드, 마우스, 외장하드)를 만들든, USB 인터페이스 규격에 맞게 만들면 어떤 컴퓨터에든 꽂아서 사용할 수 있습니다. 인터페이스는 이 USB 포트 규격처럼, "이렇게 만들어야 서로 통신할 수 있어!"..

Programming/Java 2025.10.08

[Java] - 다형성과 추상 클래스

다형성 (Polymorphism) - 하나의 이름, 여러 가지 모습다형성은 말 그대로 "여러 가지 형태를 가질 수 있는 능력"을 의미합니다. 프로그래밍에서는 하나의 객체 인스턴스가 여러 가지 타입의 참조 변수로 다뤄질 수 있는 성질을 말합니다.특히 상속 관계에 있을 때, 부모 클래스 타입의 참조 변수로 자식 클래스의 인스턴스를 참조할 수 있습니다.// 부모 타입으로 자식 객체를 참조Person p = new Student();Object obj = new Student();이렇게 참조 변수의 타입이 달라지더라도, 힙(Heap) 메모리에 생성된 실제 객체 자체가 변하는 것은 아닙니다. 단지 그 객체를 바라보는 "관점" 또는 "리모컨"이 달라지는 것뿐입니다.다형성의 장점 유연성: 코드가 특정 클래스에 묶이지..

Programming/Java 2025.10.08

[Java] - 자바 상속의 원리 및 활용

상속 (Inheritance)상속(Inheritance)은 객체지향 프로그래밍의 핵심 개념 중 하나로, 기존에 있던 부모 클래스(상위 클래스)의 속성(필드)과 기능(메서드)을 새로운 자식 클래스(하위 클래스)가 그대로 물려받아 사용하고, 자신만의 기능을 추가하여 확장하는 것을 말합니다.`extends` 키워드를 사용하여 상속 관계를 명시하며, 이를 통해 코드의 재사용성을 높이고 중복을 줄여 유지보수가 쉬운 프로그램을 만들 수 있습니다.💡 쉬운 비유'사람(Person)' 클래스를 부모로 하여 '학생(Student)' 클래스를 만든다고 상상해 보세요. 모든 학생은 사람이므로 '이름', '나이'와 같은 속성과 '먹는다'는 행동을 물려받습니다. 그리고 '전공'이라는 자신만의 속성과 '공부한다'는 새로운 행동을..

Programming/Java 2025.10.08

[Java] - JVM구조와 접근제어자 그리고 캡슐화

JVM 메모리 구조자바 프로그램은 운영체제에 직접 실행되는 것이 아니라, JVM(Java Virtual Machine)이라는 가상 머신 위에서 동작합니다. JVM은 자바 코드가 어떤 운영체제에서든 동일하게 실행될 수 있도록 해주는 환경을 제공하며, 프로그램을 실행하기 위해 메모리를 여러 영역으로 나누어 체계적으로 관리합니다.JVM의 메모리 구조는 크게 5가지 영역으로 나눌 수 있습니다. 이 중 메서드 영역과 힙 영역은 모든 스레드가 공유하며, 나머지는 각 스레드마다 개별적으로 생성됩니다.💡 JVM 버전에 따라 달라질수 있습니다.모든 스레드가 공유하는 영역메서드 영역 (Method Area)메서드 영역은 클래스에 대한 정보가 저장되는 공간입니다. 프로그램이 실행될 때 사용될 클래스의 구조, 메서드, `s..

Programming/Java 2025.10.07

[Java] - 함수, 클래스, 그리고 객체지향

본 내용을 들어가기에 앞서 함수(Function)에 대해서 짚고 가야합니다.함수(Function)프로그래밍에서 함수는 특정 작업을 수행하도록 설계된 독립적인 코드 블록입니다. 마치 커피 자판기와 같죠. 동전을 넣고(입력) 버튼을 누르면(호출) 맛있는 커피(결과)가 나오는 것처럼, 함수도 필요한 값을 전달받아 정해진 작업을 수행하고 그 결과를 반환합니다.함수를 사용하는 이유함수를 사용하면 여러 가지 장점이 있습니다.재사용성: 한번 만들어 둔 함수는 필요할 때마다 몇 번이든 다시 불러서 사용할 수 있습니다. 똑같은 코드를 여러 번 작성할 필요가 없어지죠.가독성: 복잡한 코드를 기능별로 함수로 나누어 놓으면 전체적인 코드의 흐름을 파악하기가 훨씬 쉬워집니다. "1부터 5까지 더하기"라는 이름의 함수는 그 자체..

Programming/Java 2025.10.07

[Java] - 배열

배열배열(Array)이란?: 동일한 데이터 타입의 값들을 하나로 묶어 저장하는 자료구조입니다. 여러 개의 변수를 선언하는 대신, 하나의 배열 변수로 여러 데이터를 관리할 수 있어 코드가 훨씬 간결해집니다. 특징동일한 데이터 타입: 하나의 배열에는 정수(int), 문자열(String) 등 같은 종류의 데이터만 저장할 수 있습니다.고정된 크기: 배열은 한 번 생성되면 크기를 변경할 수 없습니다.인덱스(Index): 각 데이터는 0부터 시작하는 고유한 번호(인덱스)를 가지며, 이 인덱스를 통해 특정 위치의 데이터에 직접 접근할 수 있습니다.연속된 메모리 공간: 배열의 요소들은 메모리상에 연속적으로 저장됩니다.💡 배열은 참조 자료형! Java에서 배열은 기본 자료형(int, char 등)이 아닌 참조 자료형입..

Programming/Java 2025.10.05

[Java] - 기본문법 & 제어문

미리 알아두면 좋은 개념JVM (Java Virtaul Machine)자바 프로그램이 실행되는 환경JRE (Java Runtime Environment)자바 프로그램을 실행하기 위한 환경 제공JDK (Java Development Kit)자바 애플리케이션을 개발하고 실행하기 위한 모든 도구를 제공Hello Java프로그램(Program)컴퓨터의 명령어들의 집합프로그래밍(Programming) → 컴퓨터에게 명령을 내리는 과정저급언어(기계어, 어셈블리어) / 고급언어(Java, Python)운영체제(Operating System, OS) 역시 프로그램컴퓨터의 자료표현비트 : 0 또는 1의 값만 가질 수 있음 → 2진수 사용바이트 : 8개의 비트로 구성된 정보단위, 컴퓨터 메모리의 기본 단위10진수 기반 단..

Programming/Java 2025.09.22

Java_basic 2. 기본형과 참조형

#1 기본형과 참조형 변수의 데이터 타입을 크게 두가지로 분류하면 기본형과 참조형으로 분류할 수 있다. 기본형 : int, long, double, boolean 과 같이 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입 참조형 : Car car, int[] students와 같이 메모리 데이터에 접근하기 위한 참조(주소)값을 저장하는 타입을 참조형이라고 한다. 기본형 변수에는 직접 사용할 수 있는 값이 들어있지만, 참조형 변수에는 메모리상의 주소인 참조값이 들어있다. 참조형 변수를 쓰기 위해선 참조값 해당 위치로 이동해야 한다. 기본형은 int형 변수에 숫자 10, 20 과 같이 실제 사용하는 값을 담을 수 있다. 참조형은 실제 사용하는 값을 변수에 담는 것이 아닌 객체의 위치를 저장한다. 객체는 ...

Programming/Java 2024.03.24

Java_basic 1. 클래스와 객체(class&instance)

#1 클래스, 객체 클래스(class)는 객체를 생성하기 위한 설계도, 틀이라고 생각할 수 있다. 이런 클래스를 통해서 실제 메모리에 만들어진 실체를 객체 또는 인스턴스(instance)라고 한다. 클래스는 객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메소드(method)로 구성된다. 필드란 클래스에 포함된 변수를 의미하고, 메소드는 어떤 특정한 작업을 수행하기 위한 집합이라고 할 수 있다. 인스턴스는 자바에서 클래스를 사용하기 위해 해당 클래스의 객체(object)를 선언해야하는데, 클래스로부터 객체를 선언하는 과정을 클래스의 인스턴스 화라고 한다. 즉, 인스턴스는 메모리에 할당된 객체이다. 자바에서 하나의 클래스로부터 여러 개의 인스턴스를 생성할 수 있다. 각각의 인스턴스는 자산..

Programming/Java 2024.03.20