2023. 7. 31. 01:16ㆍ언어들/자바
public final class String extends Object
implements Serializable, Comparable<String>, CharSequence
String 클래스 선언문이다.
final, extends, implements에대해 다시 한번 생각해 보자.
final은 더 이상 클래스 확장을 할 수 없다.
extends을 Object 즉 모든 클래스의 부모 클래스를 확장하고 있으므로 다른 확장클래스는 없다
implements는 이후에 적혀있는 인터페이스의 메소드를 이 클래스에서 "구현"한다는 의미이다.
Serializable 인터페이스는 구현해야 하는 메소드가 하나도 없는 아주 특이한 인터페이스다. 이 인터페이스를 구현한다고 선언해 놓으면, 해당 객체를 파일로 저장하거나 다른 서버에 전송 가능한 상태가 된다. 이 부분은 지금 설명해도 이해하기 쉽지 않을 테니, 나중에 다시 언급하도록 한다.
comparable 인터페이스는 campareTo()라는 메소드 하나만 선언되어 있다. 이 메소드는 매개 변수로 넘어가는 객체와 현재 객체가 같은지를 비교하는 데 사용된다. 간단하게 이름과 내용만으로 보기에는 그냥 equals() 메소드와 별 차이가 없어 보인다. 하지만, 이 메소드의 리턴 타입은 int다. 같으면 0, 순서 상으로 앞에 있으면 -1, 뒤에 있으면 1을 리턴한다. 객체의 순서를 처리할 때 유용하게 사용할 수 있다. 그리고 <>꺽쇠 안에 String이라고 적어 주었는데, 이는 제너릭이라는 것을 의미한다. 이 제너릭도 설명하자면 할말이 많기 때문에 나중 포스트에서 다시 언급하도록 한다.
CharSequence 인터페이스는 문자열을 다루기 위한 클래스라는 것을 명시적으로 나타내는 데 사용된다. StringBuilder, StringBuffer 클래스도 이 CharSequence 인터페이스를 구현해 놓았다.
String의 생성자
String name="love, You";
String의 생성자는 많다. 필요할 때마다 찾아보는게 좋다. 아래는 일부 생성자 소개를 해준 블로그 이다.
https://yangbox.tistory.com/54
String 생성자(생성자 종류 및 예시)
자바에서 String 객체는 불변(immutable)이다. 불변이라는 의미는 한번 생성되면 변경되지 않는다는 것을 말한다. 즉, String 문자열을 조작(서로 합치거나 나누거나)할 때마다 기존 객체가 변경되는
yangbox.tistory.com
String 문자열을 byte로 변환
package d.string;
public class StringSample{
public static void main(String[] args) {
StringSample sample = new StringSample();
sample.constructors();
}
public void constructors(){
try{
// 한글 값을 갖는 String 객체인 str을 생성
String str="한글";
// str을 byte 배열로 변경
byte[] array1= str.getBytes();
printByteArray(array1);
// byte배열을 갖고 String 객체를 만들기 위해서
//byte 배열을 매개 변수로 갖는 String 객체를 생성하고, 그 문자열을 출력
String str1= new String(array1);
System.out.println(str1);
byte[] array2= str.getBytes();
printByteArray(array2);
String str2=new String(array2, "EUC-KR");
System.out.println(str2);
byte[] array3= str.getBytes("UTF-16");
printByteArray(array3);
String str3=new String(array3, "UTF-16");
System.out.println(str3);
}catch(Exception e){
e.printStackTrace();
}
}
public void printByteArray(byte[] array){
for(byte data:array1){
System.out.print(data+" ");
}
System.out.println();
}
}
null 체크는 필수다.
String뿐만 아니라 어떤 객체이던 null 체크는 필수다.
public boolean nullCheck(String test){
if(test==null) return true;
else return false;
}
객체가 null이면 어떤 메소드도 사용할 수 없다. null 체크하는 것은 애플리케이션이 비정상으로 작동하여 장애로 이어질 수도 있는 문제를 방지해준다.
'언어들 > 자바' 카테고리의 다른 글
독하게 시작하는 JAVA part1-섹션 03 (2) | 2024.12.12 |
---|---|
독하게 시작하는 JAVA part1-섹션 02 (1) | 2024.12.12 |
독하게 시작하는 JAVA part1-섹션 01 (0) | 2024.12.12 |
자바 기본 문법(1) (0) | 2023.10.22 |
Java 언어와 프로그램 (0) | 2023.10.22 |