문자 하나와 문자열은 다르다.
문자 하나는 char형 자료형이다(기본 2byte)
문자열은 문자의 집합(시컨스)이다.
두 방법은 다른 방법이다.
인스턴스로 생성하면 힙메모리에 저장되고 힙메모리를 가르키는 방식이다.
인스턴스로 생성하지 않는 방식은 상수 풀에 저장하고 그것을 가르키는 방식이다.(프로그램이 로드 될때 생성, 데이터영역, 상수, 스테틱 등이 저장됨)
인스턴스로 생성하면 문자열의 주소를 비교하기 때문에 fasle가 출려된다.(주소가 다르다.)
인스턴스로 생성하지 않으면, 같은 문자열은 같은 주소 이기때문에 true가 출려된다.(상수 풀, 여기서도 주소를 비교하는 것이다.)
두 문자열을 이어붙이는 코드이다. 단, str1에 str2가 붙은 것이 아닌 부 문자열을 붙인 새로운 메모리가 생성되고 그 메모리 주소를 가리키는 것이다.
사용하지 않는 메모리(가비지 메모리)를 최소화 하기 위한 방법이다.
기존 배열을 변경하는 방법이다.
스트링 클래스가 아니기 때문에, 마지막에 toString 메서드로 string 클래스로 변환해야줘야 한다.
동일한 메모리에 문자열을 추가하는 방식이다.
자바9버전 이후부터
문법을 허용한다.
Class라는 클래스이다.
클래스의 정보를 알 수 있다.
로컬에 없는 클래스를 로딩할때 불러서 사용하는 리플렉션 프로그래밍을 할때 등 사용한다.
클래스정보를 불러오는 3가지 방법
1. 인스턴스를 이용하여 가져오는 법
2. 클래스명.class를 이용하여 가져오는 법
3. Class.forName 메서드를 이용하여 가져오는 법(동적로딩)
ㅡ> 컴파일 단계에서 에러가 검출되지 않고 프로그램 로딩할떄 에러가 검출된다.
클래스의 생성자, 필드, 메서드 정보를 알아오는 코드.
클래스 정보를 가져와서 인스턴스를 생성하는 방법(디폴트 생성자가 불린다.)
'JAVA' 카테고리의 다른 글
[JAVA] 기초문법 - 컬렉션 프레임워크 (0) | 2021.10.19 |
---|---|
[JAVA] 기초문법 - 제네릭 프로그래밍 (0) | 2021.10.19 |
[JAVA] 기초문법 - 기본클래스 (0) | 2021.10.19 |
[JAVA] 기초문법 - 인터페이스(3) (0) | 2021.10.19 |
[JAVA] 기초문법 - 인터페이스(2) (0) | 2021.10.03 |