반응형
Garbage Collecting (쓰레기 수집기)
- new로 생성한 객체들을 다 쓰고 이후에 해제시키는 방법이 없기때문에 가비지 컬렉터를 사용해서 자동으로 삭제되도록한다. (마치 2종보통과 같음 auto임)
- 자바에만 있는 특별한 기능이다.
new pen을 일억번 하게 되어도 에러가 안난다. 자동으로 지워주면서 공간을 확보해 주기 떄문이다.
=> new로 만들기만 하면되고 가비지 컬렉터가 알아서 객체 해제를 해주고 있다.
패키지(Package)
- 패키지는 폴더와 같다.
- JRE system Library안에 사용할수 있는 엄청난 패키지들이 있다.
다른 패키지에 있는 클래스를 사용할 때에는 아래와 같이 import작업을 해주어야 한다.

*을 사용해 위에 아래와 같이 Apple과 Banana ...등등 pac.abc 패키지 않에 있는 모든 클래스를 한번에 사용가능하도록 import 해줄 수 있다.

기본타입 vs 참조타입
기본타입 - 실제 값을 저장
참조타입 - 주소값을 저장.
stack에는 변수들에 선언한 값들이 저장
heap에는 객체를 선언했을 때 주소값이 저장.
❓ String == 비교가 안되는 이유
=> 주소 값을 비교하기 때문에
값은 같아도 주소값은 다르므로 계속 다르다고 나온다.
따라서 .equals를 사용해서 값을 비교하는 방법을 사용해야한다.
package str_ex;
public class StrEquals {
public static void main(String[] args) {
String str1 = "홍길자";
String str2 = "홍길자";
String str3 = new String("홍길자");
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
System.out.println(str1 == str2); // true
System.out.println(str2 == str3); // false
/*
* str1 == str2의 경우,
* 같은 클래스 내부에서 문자열을 선언하면 동일한 위치를 참조한다 (동일한 문자일 경우)
* 하지만, 다른 클래스에서 넘어오는 String은 다른 위치를 가지게 됩니다.
*
* 그래서 문자열 비교시에는 == 대신에 String클래스가 제공해주는 equals()를 사용한다.
*/
System.out.println(str1.equals(str3)); // true
}
}
반응형
'국비지원 > JAVA' 카테고리의 다른 글
| [JAVA] 12-3. Quiz 은행 입/출금 서비스 (0) | 2022.10.06 |
|---|---|
| [JAVA] 12-2. 상속 (Inheritance) (0) | 2022.10.06 |
| [JAVA] 11-3. 생성자(Constructor) (0) | 2022.10.05 |
| [JAVA] 11-2. 객체와 클래스 (0) | 2022.10.05 |
| [JAVA] 11-1. method 이어서 (배열과 method) (0) | 2022.10.05 |