Java 25

[Java] Scanner(sc.nextInt() 와 Integer.parseInt(sc.nextLine())의 차이)

의문점 자바 Scanner 관련 자료를 찾아보니 sc.nextInt();로 입력받아도 무방한 것을 굳이 Integer.parseInt(sc.nextLine()); 으로 문자로 받아 숫자로 변환시키는 것들이 보였다.그래서 왜? 문자를 받고 숫자로 변화시키는지에 대해 궁금함이 들었다.  조사nextInt();장점사용자가 입력한 값을 int타입으로 바로 변환되서 추가적인 변환작업이 필요가 없다간단명료 하다.단점입력을 받을 때 nextInt();에 내재되어 있는 줄바꿈이 실행되므로 뒤에 nextLine();을 사용할 때 입력하지 않았는데 바로 실행되는 오류가 나타날 수 있다.Int 관련 자료형이 아니면 오류가 나타날 수 있다.Integer.parseInt(sc.nextLine());장점nextInt();에 내재..

Java 2024.10.02

[Java] Singleton 패턴

Singleton 패턴소프트웨어 설계 패턴 중 하나클래스의 인스턴스가 하나만 생성되도록 보장해당 클래스의 인스턴스에 전역적인 접근을 제공하지만 일관된 상태를 유지 싱글턴 패턴의 장단점장점: 자원의 중복 생성을 방지, 메모리 사용 최적화, 전역 상태를 공유 + 통제된 접근단점: 전역 상태를 관리 + 다른 클래스에 영향(결합의 가능성), 테스트가 어려움(예제 코드)더보기public class Singleton { private static Singleton instance; private Singleton() {}; // 생성자를 private으로 선언 - 외부에서 직접 인스턴스 생성 X // 전역 접근성을 제공하는 메서드를 제공 public static Singleton getInstance() { ..

Java 2024.09.23

[Java] 제네릭

자바 제네릭클래스나 메서드를 정의할 때 사용할 데이터 타입을 미리 지정하는 대신 구체적인 사용 시 타입으로 대체특정 타입에 의존하지 않고 다양한 타입을 지원하는 클래스 또는 메서드 설계(제네릭 타입 사용 예제)더보기// class 클래스명class Pair{ // (접근제어자) 반환타입 필드명; private K key; private V value; public Pair(K key, V value) { this.key = key; this.value = value; } public K getKey() { return key; } public V getValue() { return value; } // 제네릭 메서드 // (접근제한자 static) 반환타입 메서드명() {} static ..

Java 2024.09.23

[Java] MVC 패턴

MVC 패턴사용자 인터페이스를 설계하는 소프트웨어 디자인 패턴 중 하나세 가지 구성 요소로 나누어(역할을 분담하여) 개발을 진행1. Model(모델)애플리케이션의 데이터와 비즈니스 로직을 담당데이터베이스, 파일 시스템, 외부 서비스와 통신을 통해 데이터를 저장하고 검색상태 변경에 대해 뷰와 컨트롤러에게 알릴 수 있는 매커니즘 제공뷰와 컨트롤러의 구현 세부사항으로부터 독립적2. View(뷰)사용자에게 데이터를 표시하는 방법을 정의Model의 정보를 표시, 사용자의 액션을 Controller에게 전달모델이 가진 정보를 사용자가 이해할 수 있는 형태로 변환3. Controller(컨트롤러)사용자의 입력을 처리하고 모델과 뷰 사이의 상호작용을 관리사용자의 입력에 반응하여 모델을 업데이트하고, 필요한 경우 뷰를 ..

Java 2024.09.23

[Java] Map

Map 인터페이스키(key)와 값(value)의 쌍으로 요소를 저장하는 데이터 구조키는 고유한 데이터(하나의 값)를 가진다Map의 주요 특징키의 유일성값의 중복성순서 보장 X (LinkedHashMap은 순서 보장 O)1. HashMap해시 테이블을 사용하여 키-값 쌍을 저장순서 유지 X (작업 시간 빠름)null 허용(키, 값 모두 허용)2. LinkedHashMap삽입 순서를 유지삽입 순서가 중요하고 빠른 검색이 필요할 때 주로 사용3. TreeMap키-값 쌍을 트리에 저장, 키에 따라 정렬키에 null 값 허용Map 인터페이스 메서드더보기// put(K key, V value) : 키와 값을 Map에 추가// get(Object key) : 지정된 키에 매핑된 '값'을 반환// remove(Obje..

Java 2024.09.23

[Java] Set

Set 인터페이스중복된 요소를 포함하지 않는 객체의 집합객체의 저장 순서를 저장하지 X (삽입 순서 유지X)null 요소 포함 가능Set 컬렉션 종류 1. HashSet가장 많이 사용되는 Set 구현체, 빠른 성능을 제공삽입 순서나 요소의 정렬 상태를 보장 X2. LinkedHashSetHashSet에서 순서를 추가한 형태요소를 삽입 순서대로 유지3. TreeSet정렬된 순서대로 요소를 유지요소의 순서가 중요하거나 요소를 정렬된 상태로 유지해야 할 때 사용자동 정렬더보기더보기public static void main(String[] args) { // Set 컬렉션의 주요 메서드 // add, remove, contains, size // isEmpty: Set이 비워져 있는지 확인 // == H..

Java 2024.09.23

[Java] List

List(리스트)데이터를 순차적으로 저장하고 접근하는데 사용하는 메서드를 정의데이터의 중복 저장을 허용, 저장된 순서에 따라 데이터를 관리List 특징요소의 인덱스를 통한 정확한 위치 지정요소의 중복 허용다양한 구현체를 통해 사용 가능List 인터페이스 구현 클래스ArrayList: 내부적으로 배열을 사용하여 데이터를 관리1. 동적 크기를 조절 : 요소가 추가되거나 제거될 때 자동으로 크기를 조절2. 인덱스 기반 접근 : 특정 위치의 데이터를 빠르게 읽거나 수정 가능, 중간에 데이터를 삽입하거나 삭제하는 작업은 비교적 느림3. 순차적인 데이터 저장, 중복 데이터 허용4. 널(Null) 값을 허용→ 데이터를 빠르게 조회할 때 사용 (데이터의 삽입, 삭제 X)→ null 값을 허용, null 값이 허용될 수..

Java 2024.09.23

[Java] 자바 기초 용어 정리

1. 접근제한자: 클래스, 메서드, 필드 등에 대한 접근 권한을 제어하는 데 사용public: 모든 클래스에서 접근 가능protected: 같은 패키지 또는 상속 받은 클래스에서만 접근 가능default: 접근제한자를 명시하지 않으면 기본으로 같은 패키지 내에서만 접근 가능private: 같은 클래스 내에서만 접근 가능→ 접근 범위에 따라 결정→ 같은 클래스 / 패키지 / 상속 클래스에서 접근할 수 있는지 여부가 중요!! 2. static: 클래스 수준에서 공유되는 변수를 정의하거나 메서드를 선언할 때 사용static 변수: 모든 인스턴스가 공유하는 클래스 변수static 메서드: 인스턴스가 아닌 클래스에서 직접 호출할 수 있는 메서드→ 객체 인스턴스가 아니라 클래스 자체에 속하는 변수나 메서드→ 정적 ..

Java 2024.09.23

[Java] Collection

자바 컬렉션 프레임워크데이터를 저장하고 처리하는 자료구조의 표준화된 설계컬렉션 프레임워크 사용 방법데이터의 특성에 맞는 클래스 선택데이터의 중복에 대한 필요성, 순서 유지에 대한 필요성 점검키-값 쌍 데이터의 필요성 컬렉션 프레임워크의 주요 인터페이스 1. Collection자바 컬렉션 프레임워크의 상위 인터페이스, 데이터의 집합을 다룸2. List데이터의 순서를 유지, 중복 허용 (ArrayList, LinkedList 등)List 인터페이스데이터를 순차적으로 저장하고 접근하는데 사용하는 메서드를 정의데이터의 중복 저장을 허용, 저장된 순서에 따라 데이터를 관리List의 특징요소의 인덱스를 통한 정확한 위치 지정요소의 중복 허용다양한 구현체를 통해 사용 가능List 인터페이스 구현 클래스ArrayLis..

Java 2024.09.12

[Java] API

API(Application Programming Interface)소프트위에 또는 시스템 간 상호작용을 가능하게 하는 정의된 메서드들의 집합소프트웨어나 하드웨어와 상호작용할 수 있는 인터페이스를 제공자바 API 클래스자바 프로그래밍을 위한 APIjava.lang : 기본 클래스(String, Math, System 등)import 없이도 자바 내에서 사용 가능한 기능자바 프로그램의 가장 기본적인 클래스들을 포함1) Object 클래스자바의 모든 클래스의 최상위 클래스, 기본적으로 생략더보기더보기class MyClass extends Object{ // toString() 메서드 // : 객체의 문자열 표현을 반환 // equals() 메서드 // : 두 객체가 동등한지 비교 private int id..

Java 2024.09.12