1) new 사용하지 않을 경우, 메모리상 같은 값을 참조
메모리 절약을 위해 new를 사용하지 않고 생성하는 것이 좋음.
String str ="hello";// 메모리 중 상수(변하지 않는 값)가 저장되는 영역에 저장됨
String str2 ="hello";// str1과 str2는 메모리 상에 있는 hello를 동일하게 참조
if (str1==str2)
System.out.println("str1=str2");
2) new 사용시, 같은 값을 참조하지 않음 (다른 값을 참조)
String str3 = new String("hello);
String str4 = new String("hello);
if (str3!=str4)
System.out.println("str3!=str4");
3) equl함수
==연산자 : 참조값의 비교(레퍼런스)
equals : 참조값이 아닌, 값(Value) 비교
str1.equals(str2)
메소드(함수)를 호출하여도 가지고 있는 값이 변하지 않음.
String 메소드는 모두 새로운 String을 생성 및 반환함.
//문자 자르기
String str 1 = "World"
String str 2 = str1.substring(2); //해당 인덱스부터 잘라서 반환, 2번 인덱스인 rld 반환. 이때 반환 값은 str1과 다른 새로운 String
System.out.println(str1) // World
기타 자주 사용하는 함수
//길이
string.length()
//대문자로 변환
string.toUpperCase()
//소문자로 변환
string.toLowerCase()
//문자열에서 해당하는 단어의 인덱스 번호 반환
string.indexOf("World") #6
문자열을 합쳐준다.
1) 연산자를 통한 결합
String firstName ="John";
String lastName ="Smith";
Syste,.out.println(firstName+ " " + lastName);
2) 함수사용
String firstName ="John";
String lastName ="Smith";
Syste,.out.println(firstName.concat( lastName));
int x=10;
int y=20;
int z= x+y; //z=30(int)
String x =10;
String y =20;
String z= x+y // z=1020(str)