목록string (3)
개발 무지렁이
String은 상수이다. 한 번 만들어지면 값변경이 불가, immutable String str = "java"; str = "java2"; ❓ 위의 코드는 정상적으로 실행된다. WHY? 값변경을 하는게 아니라 새로운 객체가 만들어진다. 수정 전의 객체는 garbage collection이 일어난다. String str = new String("java"); String str = "java"; 는 축약표현이다. 사실은 '객체생성연산자(new)'를 통해 객체를 생성하는 것이다. ❗ 주의 new 키워드 없이 할당한 값이 이미 있으면 같은 주소를 저장한다. String str1 = "java"; String str2 = new String("java"); String str3 = "java"; str1 ==..
값변경에 잘쓰이지 않는 String public class StringTest { public static void main(String[] args) { String str = "안녕하세요"; System.out.println(str); // 안녕하세요 str = "Hello"; System.out.println(str); // Hello } } ❓ 수정이 잘되는데 왜 String은 값변경에 쓰이지 않을까? : String은 객체이다, 원래는 String str = new String("안녕하세요");의 축약형이 위 코드이다. 이 코드가 실행되면 String 객체가 만들어지고, str="Hello";로 바꿨을 때 이 객체에 있는 값이 바뀌는 것이 아니라, 새로운 객체가 만들어지고 str변수가 참조하는 ..
가장 큰 수 🪅 클래스를 정렬하는 방법을 알고 있느냐 => implements Comparable, compareTo(), Collections.sort() 🪅 클래스를 정렬할 때 두번째 정렬기준을 세울 수 있느냐 💡 문제 접근 과정 한자리 수든, 두자리 수든, 세자리 수든 첫째 자리 수가 큰 것이 중요하다. 첫째자리 수가 같을 때 둘째 자리 수가 중요하다. 즉, 하나의 숫자에서 빼올 수 있는 정보가 많고 이를 클래스를 이용해 정리해야겠다는 생각을 했다. 클래스를 이 기준에서 정렬하기 위해 Comparable 인터페이스와 compareTo 메서드를 이용해야 했고, 두번째 정렬기준까지 구현해야했다. 이 상태에서 Collections.sort()를 하면 위의 기준에 따라 클래스가 정렬된다. 나는 입력이 두자..