[국비 학원 기록/자바] Object 클래스, String 클래스, Class 클래스, Wrapper 클래스
my code archive
article thumbnail
반응형
Object 클래스 -- 모든 클래스의 최상위 클래스

 

1. java.lang 패키지

1)프로그래밍 시 import하지 않아도 자동으로 import 됨.

2)많이 사용하는 기본 클래스들이 속한 패키지.

3)String, System, Math, Integer...

 

2. 모든 클래스는 Object 클래스를 상속받음.

1)모든 클래스는 Object클래스의 메서드 중 일부를 재정의해서 사용할 수 있음.

2)컴파일러가 extends Object를 추가함.

- ex) class Book => class Book extends Object

 

3. toString( ) 메서드

1)객체의 정보를 String으로 바꾸어서 사용할 때 쓰임.(재정의)

2)String, Integer 클래스는 이미 재정의되어 있음.

 

4. equals( ) 메서드

1)두 인스턴스 주소 값을 비교하여 true/false 반환.

2)재정의하여 두 인스턴스가 논리적으로 동일함의 여부를 구현함.

3)인스턴스가 다르더라도 논리적으로 동일한 경우 true를 반환하도록 재정의할 수 있음.

 

 

5.hashCode( ) 메서드

1)hashCode( )는 인스턴스의 저장 주소를 반환함.

2)힙메모리에 인스턴스가 저장되는 방식이 hash방식.

3)두 인스턴스가 같다는 것은?

-equals( )
-hashCode( )

:논리적으로 동일함을 위해 equals( )메서드를 재정의,
hashCode( )메서드도 재정의하여 동일한 hashCode 값이 반환되도록 함.

 

6. clone( ) 메서드

1)객체의 원본을 복제하는데 사용하는 메서드.

2)해당 클래스의 clone( )메서드를 사용하는 것을 허용한다는 의미로

  cloneable 인터페이스를 명시해 줌.

3)OOP의 캡슐화, 정보은닉, 추상화 관점에서 위배될 수 있음.

 

String 클래스

 

1. String 선언

-String str1 = new String("abc");
-String str2 = "abc";

 

1) 힙 메모리에 인스턴스로 생성되는 경우 (1)와 ==>생성될 때마다 다른 주소값을 가짐.

   상수 풀(constant pool)에 있는 주소를 참조하는 두 가지 방법이 있음(2).

   =>모두 같은 주소값 가짐.

2)한 번 생성된 String 객체는 불변함.(immutable)

3)String을 연결하면 기존의 String에 연결되는 것이 아닌 새로운 문자열이 생성됨.

 

 

2. StringBuilder, StringBuffer

1)내부적으로 가변적인 char[ ]를 멤버 변수로 가짐.

2)문자열을 여러번 연결하거나 변경할 때 사용하면 유용함.

3)새로운 인스턴스를 생성하지 않고 char[ ]를 변경함.

4)StringBuffer는 멀티쓰레드 프로그래밍에서 동기화를 보장.

5)단일 쓰레드 프로그램에서는 StringBuilder 사용.

 

Class 클래스

 

1. Class 클래스

 

1)자바의 모든 클래스와 인터페이스는 컴파일 후 .class 파일이 생성됨.

2)Class 클래스는 컴파일된 class 파일을 로드하여 객체를 동적으로 로드하고.

  정보를 가져오는 메서드가 제공됨.

3)Class.forName("클래스 이름") 메서드로 클래스를 동적으로 로드함.

  -실행(runtime)중에 데이터 타입을 binding하는 방법.

  -동적 로딩 시 오류가 발생하면 프로그램의 심각한 장애가 발생 가능.

   (컴파일 시에 타입이 정해지지 않으므로)

4)reflection 프로그래밍

  -Class 클래스를 사용하여 클래스의 정보(생성자, 변수, 메서드) 등을 알 수 있고

   인스턴스를 생성하고 메서드를 호출하는 방식의 프로그래밍.

 

Wrapper 클래스

 

1. Primitive 자료형과 Wrapper 클래스

 

1)정의 : 각 기본 데이터형별로 기본 데이터에 관계된 기능을 미리 만들어 제공하는 클래스

2)종류

boolean       Boolean
byte            Byte

char            Character
short           Short
int               Integer
long            Long
float            Float
double         Double

3)ArrayList 등 객체만을 핸들링하는 기능을 사용하기 위해.

 

 

반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형