본문 바로가기

Programming/Java

(4)
[Java] String과 StringBuilder 문자열 연산이 필요할 때는 StringBuilder를 써라String 클래스불변(immutable) 객체한 번 생성된 문자열을 변경할 수 없음문자열 연산 시 매번 새로운 객체가 생성문자열 값이 자주 변경되지 않는 경우 쓰임String str = "Hello";str = str + " World";메모리에서 일어나는 일1단계: "Hello" 객체 생성[메모리]0x1234: "Hello"str -> 0x12342단계: "Hello World" 새로운 객체 생성 [메모리]0x1234: "Hello" (더 이상 참조되지 않음 -> 가비지 컬렉션 대상)0x5678: "Hello World"str -> 0x5678 StringBuilder 클래스가변(mutable) 객체문자열 수정 가능문자열 연산 시 객체를 새로 ..
[Java] 컬렉션 프레임워크 컬렉션 프레임워크는 크게 List, Set, Map 인터페이스로 구성List : 순서가 있는 데이터의 집합ArrayList: 배열 기반 리스트 데이터 검색 빈번, 삽입/삭제가 적은 경우 사용LinkedList: 양방향 연결 리스트Vector: Thread-safe 리스트 (레거시)Set : 중복을 허용하지 않는 데이터의 집합HashSet: 해시 테이블 기반 집합중복 제거가 필요한 경우 사용TreeSet: 이진 검색 트리 기반의 정렬된 집합LinkedHashSet: 입력 순서가 유지되는 해시 집합Map :  키-값 쌍으로 이루어진 데이터의 집합HashMap: 해시 테이블 기반 맵키를 통한 빠른 데이터 검색 시 사용TreeMap: 이진 검색 트리 기반의 정렬된 맵LinkedHashMap: 입력 순서가 유지되..
[Java] 접근 제어자 public어디서든 접근 가능패키지가 달라도 접근 가능public class Car { public String name; // 누구나 접근 가능} private같은 클래스 내에서만 접근 가능외부에서는 절대 접근 불가public class Car { private int price; // 같은 Car 클래스 내에서만 접근 가능} default (패키지 private)같은 패키지 내에서만 접근 가능접근 제어자를 명시하지 않을 때의 기본값class Car { // default class int speed; // default 변수} protected같은 패키지 내에서 접근 가능다른 패키지여도 상속받은 자식 클래스에서 접근 가능public class Car { protected St..
[Java] 상속(extends)과 구현(implements) extends(상속) 개념class Animal { // 부모 클래스 protected String name; // 부모의 변수 public void eat() { // 부모의 메소드 System.out.println("먹습니다"); }}class Dog extends Animal { // Animal 클래스 상속 protected String name; // 변수 숨김(hiding) @Override // 메소드 오버라이딩 public void eat() { // 부모 메소드 재정의 System.out.println("강아지가 먹습니다"); }}변수 숨김(Vari..