목록JAVA (25)
쯔이's Dev
컬렉션키-값 구조사용 메서드설명Map✅ 있음containsKey(key)키가 있는지 확인Set❌ 없음contains(value)값이 존재하는지 확인List❌ 없음contains(value)해당 요소가 존재하는지 확인 “List는 equals만, Set/Map은 equals + hashCode 둘 다!”컬렉션사용 메서드필수 오버라이딩Listequals()만 사용✅ equals()Set (HashSet)hashCode() → equals()✅ 둘 다Map (HashMap)hashCode() → equals()✅ 둘 다 >> containsKey(key)란?Map에서 주어진 키가 존재하는지를 검사하는 메서드if (hMap.containsKey(f)) { return false;}이 containsKey..
1️⃣ String vs StringBuilder 기본 개념 StringStringBuilder가변성 (Mutability)❌ 불변(Immutable)✅ 가변(Mutable)메모리 사용새로운 객체 생성 (낭비 多)같은 객체에서 변경 (효율적)속도느림 (객체 재생성)빠름 (내부 배열 사용)사용 목적문자열 변경이 거의 없을 때문자열을 자주 수정할 때2️⃣ String (불변 객체, Immutable)* 특징String 객체는 한 번 생성되면 변경할 수 없음.문자열을 수정하면 새로운 객체를 생성하고 기존 객체는 GC(Garbage Collector)가 제거함.문자열 변경이 많을 경우 메모리 낭비가 발생할 수 있음public class StringExample { public static void m..
둘 다 문자열을 특정 구분자로 나누어 토큰화(Tokenization)하는 기능을 한다.그런데, 몇 가지 차이점이 있다. 결론부터 말하면, 요즘은 split( )을 더 많이 사용!!!하지만 StringTokenizer는 특정 상황에서 더 편리할 수 있다.1. StringTokenizer와 split( )의 차이점비교 항목 StringTokenizer split( ) 반환 타입개별 토큰을 nextToken()으로 하나씩 가져옴**배열(String[])**로 반환사용 방식while 문을 사용하여 하나씩 가져와야 함split() 호출 후 바로 배열로 사용 가능성능빠름 (메모리 사용량 적음)조금 더 무거움 (배열 생성 필요)여러 구분자 사용가능 (여러 개의 구분자를 한 번에 지정 가능)**정규 표현식(Regex..
service > dao > db 구조는 3-tier 아키텍처에서 자주 사용되는 패턴 중 하나.서비스 계층, 데이터 접근 계층(DAO), 데이터베이스(DB)로 구분된 구조를 의미한다.이 구조에서 JDBC를 사용하여 DAO가 데이터베이스와 상호작용한다.이 과정은 아래와 같은 흐름으로 설명할 수 있다. 1. Service 계층 애플리케이션의 비즈니스 로직을 처리하는 부분.사용자의 요청을 받고, 그 요청에 맞는 처리를 수행 후 필요한 데이터를 DAO 계층을 통해 가져온다.서비스 계층은 보통 클라이언트(예: 웹 브라우저나 모바일 앱)와 DAO 계층 사이에 위치하며, 데이터 처리, 트랜잭션 관리 등을 담당한다.* 예시 : 사용자가 회원 가입을 요청하면, 서비스 계층은 입력된 정보를 검증하고 필요한 처리를 한 후..
자바에서 필드에 있는 변수와 메서드의 매개변수(또는 지역변수) 이름이 같을 때, 이름 충돌이 발생한다.이 상황에서는 매개변수(또는 지역변수)가 우선순위가 높다.즉, 메서드 내부에서는 매개변수나 지역변수가 우선적으로 참조되기 때문에, 같은 이름의 필드에 접근하려면 일반적으로 this 키워드를 사용하여 필드에 접근합니다.this는 현재 인스턴스 자신을 가리키기 때문에, this.필드명을 사용하면 필드에 접근할 수 있다. 예시 코드:public class Person { private String name; // 필드 // 생성자 public Person(String name) { // 매개변수와 필드 이름이 동일함 this.name = name; // this.name은 필드, ..
* 데이터(속성)와 해당 데이터를 처리하는 메서드(기능)를 하나로 묶어서 외부에서의 접근을 제한하는 것.- 캡슐화를 통해 데이터의 직접적인 변경을 방지하거나 제한할 수 있다.- 캡슐화가 무너지면 클래스 사용방법과 관련하여 알아야 할 사항들이 너무 많다. 결론적으로 코드가 복잡해진다. * 캡슐화를 안전하게 완성할 수 있게 해주는 장치가 바로 접근 제어자다.private * 객체의 데이터는 객체가 제공하는 기능인 메서드를 통해서 접근해야 한다.- 캡슐화에서 가장 필수로 숨겨야 하는 것은 속성(데이터)이다.- 객체 내부의 데이터를 외부에서 함부로 접근하게 두면, 클래스 안에서 데이터를 다루는 모든 로직을 무시하고 데이터를 변경할 수 있다. * 사용자 입장에서 꼭 필요한 기능만 외부에 노출하자.- 외부에 ..