Java 7

[Java] 열거형 Enum

열거형(enum)은 Java에서 고정된 상수 집합을 정의할 때 사용하는 특수한 데이터 타입이다. 주로 관련된 상수들을 그룹화하여 의미 있는 이름으로 관리하고, 이러한 상수들이 제한된 값들 중 하나임을 보장하기 위해 사용된다. 또한 코드의 가독성과 안전성을 높일 수 있다. 🔡 열거형(enum)의 기본구조enum 키워드를 사용하여 정의한다.열거형 내부에는 상수 값들이 정의되며, 이 값들은 자동으로 정수로 매핑된다(0부터 시작).하지만 실제로는 객체로 취급되므로 다양한 메서드와 필드를 가질 수 있다열거형 내에서 여러 생성자를 정의할 수 있다열거형의 생성자는 오버로딩(매개변수의 타입이나 수를 다르게 하는 방식으로 동일한 이름의 생성자를 여러 개 정의하는 것)이 가능하다.public enum Day { S..

Java 2024.08.16

[Java]인터페이스

Java 인터페이스는 객체지향 프로그래밍에서 중요한 개념으로, 클래스들이 특정 메서드를 구현하도록 강제하는 방법을 제공한다. 인터페이스는 일종의 계약이라고 볼 수 있다. 이 계약을 따르는 모든 클래스는 인터페이스에 정의된 메서드를 구현해야 한다. 🔍 인터페이스의 특징추상 메서드만 포함: 인터페이스 내에 선언된 메서드는 기본적으로 추상 메서드라고 한다. 즉, 메서드의 구현부가 없으며, 이를 구현하는 클래스에서 실제 메서드를 정의해야 합니다. 다중 상속 가능: 자바는 클래스의 다중 상속을 허용하지 않지만, 인터페이스는 여러 개를 구현할 수 있다. 이는 클래스가 여러 인터페이스에서 정의된 메서드를 모두 구현하도록 강제할 수 있음을 의미한다.구현 강제: 인터페이스를 구현하는 클래스는 인터페이스에 선언된 모든 ..

Java 2024.08.12

[Java]모던자바 Stream

Java의 Stream은 Java 8에서 도입된 기능으로, 컬렉션(ex: List, Set, Map) 및 배열의 요소를 다룰 수 있는 API이다. Stream은 다양한 방법으로 생성할 수 있다.//List부터 Stream 생성List list = Arrays.asList("a", "b", "c");Stream stream = list.stream();//Array로부터 Stream 생성String[] array = {"a", "b", "c"};Stream stream = Arrays.stream(array);//값으로 부터 Stream 생성Stream stream = Stream.of("a", "b", "c"); 🔍Stream  중간연산Stream의 중간연산을 이용하여 다양한 데이터를 원하는 방식으로 ..

Java 2024.08.09

[Java]실행시간 계산법

코딩을 할 때 사용하는 자료구조나 메서드에 따라 시간복잡도가 다르다. 알맞은 자료구조와 메서드를 사용하면 더욱 실용적이고 효율적인 메모리 부베로 런타임을 줄일 수 있다. Java에서 실행시간을 구하는 방법은 다음과 같다.public static void main(String[] args) { long startTime = System.currentTimeMillis(); // 코드의 시작 시간 // 실행하고자하는 코드.... long endTime = System.currentTimeMillis(); // 코드의 끝난 시간 long durationTimeSec = endTime - startTime; System.out.println(durationTimeSec + "m/s"); // 밀리세컨드 ..

Java 2024.08.05

[Java]비교방법 equals()와 ==의 차이

⚒️객체의 주소값 String str1 = "test"; //리터럴을 이용한 선언String str2 = "test";String str3 = new String("test");//new 연산자를 사용한 선언String str4 = new String("test");리터럴을 사용하여 객체를 선언한 경우, 선언한 값이 같다면 자바 컴파일러는 Java Constant Pool이라는 영역에 같은 값을 공유하여 메모리를 최적화하는 방법을 사용하기 때문에 두 객체 str1과 str2의 주소값은 같다. 하지만 new 연산자를 사용하여 객체를 선언한다면, JVM 의 Heap 메모리 영역에 객체 각각 고유의 주소값을 가지게 된다.🧐 == 와 equal의 차이== 연산자 (기본 데이터 타입) :기본 데이터 타입(int..

Java 2024.08.02

[Java]HashMap 사용법

🗺️HashMap컬렉션의 타입 중 하나로 데이터들을 키(Key)와 값(Value)을 짝을 이루어 저장하는 자료구죠이다.키는 유일해야 하며(중복이 불가능하다) 각 키는 하나의 값과 연관된다 (값은 중복이 가능하다).HashMap은 해시 함수를 사용하여 키를 해시 값으로 변환하고, 이 해시 값을 기반으로 내부 배열에서 값을 저장할 위치를 결정한다특징은 검색이 다른 자료구죠 보다 빠르다!⚒️생성방법(1) HashMap h1 = new HashMap( );         // 기본설정값 capacity:16, load factor:0.75(2) HashMap h2 = new HashMap(30);       // capacity:30으로 설정(3) HashMap h3 = new HashMap(25, 0.5);..

Java 2024.07.31

자바 메모리 (Heap & Stack)

자바의 메모리영역JVM(Java Virtual Machine)의 메모리 영역은 크게 3가지 구역인 메소드 영역 (Method Area), 힙(Heap) 영역 그리고 스택(stack) 영역으로 구분된다. 자바프로그램이 실행되면 데이터의 유형(DATA)타입의 따라 JVM은 운영체제(OS)로부터 받은 메모리를 각각 정해진 용도에맞춰 할당한다.Stack 영역Method 호출과 관련정보를 저장하는데 사용된다.메서드 호출시 스택에 Frame이생성되며 이 Frame에 로컬 변수, Method 매개변수, 중간 연산 결과들이 저장되고 메서드가 종료되면 해당 프레임은 스텍에서 제거된다.이름과 같이 LIFO(Last In First Out) 구조를 뛰고있어 메서드 호출과 복귀가 순서대로 관리할수있다.Heap 영역JVM에서 ..

Java 2024.07.29