반응형
문자열 인스턴스 생성 방법 2가지
1. new 연산자를 사용하지 않고 인스턴스를 만드는 경우
- 상수 저장 영역에 저장됨
- 이미 같은 문자열 상수가 만들어져 있다면 그 인스턴스를 참조한다
2. new 연산자로 인스턴스를 만드는 경우
- 무조건 새로운 인스턴스 생성
- 그래서 내용이 같더라도 서로 다른 인스턴스를 참조한다
public class Main {
public static void main(String[] args) {
String str1 = "hello"; //상수 저장 영역(변하지 않는 값)에 저장됨.
String str2 = "hello"; //이미 문자열 상수가 만들어져 있으므로 str1 이 참조하는 인스턴스를 str2도 참조한다.
String str3 = new String("hello"); //new 연산자로 인스턴스를 만들면 무조건 새롭게 만들어진다.
String str4 = new String("hello"); //str3, str4는 서로 다른 인스턴스를 참조한다.
if(str1 == str2) System.out.println("1과 2는 같다.");
else System.out.println("1과 2는 다르다.");
if(str1 == str3) System.out.println("1과 3은 같다.");
else System.out.println("1과 3은 다르다.");
if(str4 == str3) System.out.println("4과 3은 같다.");
else System.out.println("4과 3은 다르다.");
}
}
문자열 비교 방법 2가지
1. == 연산자
- 변수의 레퍼런스 비교
2. .equal() 메소드
- 변수가 저장하는 값 비교
if(str1.equals(str2)) System.out.println("str1과 str2는 같은 값이다.");
else System.out.println("str1과 str2는 다른 값이다.");
String 클래스의 메소드
- str.length() : 문자열의 길이, int형 리턴
- str.concat("zzz") : 문자열 병합(뒤에 붙임), String형 리턴
- str.substring(1,3) : 문자열 자르기(1부터 3까지), String형 리턴
이 글은 아래 강의를 수강하고 개인적으로 정리한 글입니다.
https://programmers.co.kr/learn/courses/5
반응형
'Programming > Java' 카테고리의 다른 글
[중급] Object 클래스 (0) | 2019.12.19 |
---|---|
[기초] 예외 처리 (0) | 2019.12.19 |
[기초] 내부 클래스, 익명 클래스 (0) | 2019.12.19 |
Java 개발 환경 Intellij 설치 (0) | 2019.12.19 |
[Spring] DAO, DTO, Service란 (0) | 2019.04.17 |
댓글