21.01.11-34일차

되자개발자·2021년 3월 31일
0

기록하기

목록 보기
33/46
post-thumbnail

🥚 Java.lang패키지

🍳 Object클래스

🧂 Object 클래스란?

  • 모든 클래스의 최고 조상. 오직 11개의 메서드만을 가짐.(iv, cv 없음)
  • notify(), wait() 등은 쓰레드와 관련된 메서드.
  • equals(), hashCode(), toString()은 적절히 오버라이딩해야함.
    (출처. 책: 자바의 정석 450p)

🧂 equals(Object obj)

  • 객체 자신(this)과 주어진 객체(obj)를 비교한다.
    (반환타입 boolean) 같으면 true, 다르면 false
  • Object클래스의 equals()는 객체의 주소를 비교(참조변수 값 비교)
  • 인스턴스 변수(iv)의 값을 비교하도록 equals()를 오버라이딩해야함.
class Value {
	int value;
.    
	Value(int value){
		this.value = value;
	}
}
.
public class EqualsEx {
.
public static void main(String[] args) {
	Value v1 = new Value(10);
	Value v2 = new Value(10);
.		
	// Object클래스의 equals()메서드는 객체의 주소를 비교하는 기능제공
	if(v1.equals(v2)) {
		System.out.println("v1과 v2는 같습니다.");
	}else {
		System.out.println("v1과 v2는 다릅니다.");
	}
.		
	v2 = v1; // 주소복사
.		
	if(v1.equals(v2)) {
		System.out.println("v1과 v2는 같습니다.");
	}else {
		System.out.println("v1과 v2는 다릅니다.");
		}	
	}
}
/* 실행결과 
v1과 v2는 다릅니다.
v1과 v2는 같습니다.
*/

🧂 hashCode()

  • 객체의 지문
  • 객체의 해시코드(hash code)를 반환하는 메서드
  • Object클래스의 hashCode()는 객체의 주소를 int로 변환해서 반환
  • equals()를 오버라이딩하면, hashCode()도 오버라이딩 해야함.
    ✨equals()의 결과가 true인 두 객체의 해시코드는 같아야하기때문

🧂 toString()

  • 객체를 문자열(String)으로 변환하기 위한 메서드

🍳 String클래스

🧂 String클래스란?

  • 문자열을 다루기 위한 클래스
  • String클래스 = 데이터(char[ ]) + 메서드(문자열 관련)
  • 내용을 변경할 수 없는 불변(immutable)클래스
String a = "a";
String b = "b";
a = a + b ;  // "ab"
  • 덧셈 연산자(+)를 이용한 문자열 결합은 성능이 떨어짐.
    ->문자열의 결합이나 변경이 잦다면, 내용을 변경가능한 StringBuffer(내용변경가능)를 사용

🧂 문자열의 비교

  • String str = "abc"(문자열리터럴) 와 String str = new String("abc")의 비교 (출처- 책 자바의 정석)
String str1 = "abc";  // 문자열 리터럴 "abc"의 주소가 str1에 저장됨
String str2= "abc";  // 문자열 리터럴 "abc"의 주소가 str1에 저장됨
String str3 = new String("abc"); // 새로운 String인스턴스를 생성
String str4= new String("abc"); // 새로운 String인스턴스를 생성

🧂 문자열 리터럴

  • 문자열 리터럴은 프로그램 실행시 자동으로 생성된다.(constant pool에 저장)
  • 같은 내용의 문자열 리터럴은 하나만 만들어진다.
String str1 = "aaa";
String str2 = "aaa";
String str3 = "aaa";
String str4 = "bbb";

🧂 빈 문자열("", empty String)

  • 내용이 없는 문자열. 크기가 0인 char형 배열을 저장하는 문자열
    String str = ""; // str을 빈문자열로 초기화
  • 크기가 0인 배열을 생성하는 것은 어느 타입이나 가능
char[ ] chArr = new char[0]; // 길이가 0인 char배열
int[ ] iArr = {} ;  // 길이가 0인 int배열
  • 문자(char)와 문자열(String)의 초기화
String s = "" ;  // 빈 문자열로 초기화
char c = ' ' ;  // 공백으로 초기화

🧂 참고

책 : 자바의 정석

profile
열심히가 되는 길♨_♨

0개의 댓글