2024/10/15 3

[Java] 19. String 클래스

String 클래스#JavaString 클래스 - 기본char형 배열로 문자열을 관리하기 어려움 String 클래스를 사용한다.문자열을 생성하는 방법은 2가지가 있다.쌍따옴표 사용: ”hello"객체 생성: new String(“hello”)String은 기본형이 아니라 참조형이다.어? 참조형이면 인스턴스의 참조값만 들어갈 수 있는거 아닌가요?String str1 = "hello"; 이게 어떻게 가능하죠? 실제로는 “hello” 대신 new String(“hello”)와 같이 변경되어 동작한다.근데 문자열끼리 덧셈도 가능하지 않나요? 참조형이면 덧셈이 어떻게 가능하죠? 원래는 String이 제공하는 concat()과 같은 메서를 사용해야 하지만, 문자열은 너무 자주 다루어져서 자바에서 편의상 특별..

[Java] 18. 불변 객체

불변 객체#Java갑자기 java.lang에 있는 클래스를 배우다가 “불변 객체”라는 개념이 등장했다. 이 개념이 필요한 이유는 다음 챕터에서 배울 String 클래스가 “불변 객체”이기 때문이다. 먼저 불변 객체가 뭔지 알아보자.공유 : 기본형 vs 참조형기본형: 하나의 값을 여러 변수에서 절대 공유하지 않는다.참조형: 하나의 객체를 참조값을 통해 여려 변수에서 공유할 수 있다.공유 참조와 사이드 이펙트사이드 이펙트 : 프로그래밍에서 어떤 계산이 주된 작업 외에 추가적인 부수 효과를 일으키는 것공유 참조를 잘못하면 사이드 이펙트가 발생할 수 있다. 이를 방지할 수 있는 방법에 대해 알아보자.사이드 이펙트 해결 방안단순하게 서로 다른 객체를 참조해서, 같은 객체를 공유하지 않으면 문제가 해결된다. 그런데..

[Java] 17. Object 클래스

Object 클래스#Javajava.langlang은 Language의 줄임말로써, 자바 언어를 이루는데 기본이 되는 클래스를 모아둔 패키지이다.java.lang 패키지의 대표적인 클래스들Object : 모든 자바 객체의 부모 클래스String : 문자열Integer , Long , Double : 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것Class : 클래스 메타 정보System : 시스템과 관련된 기본 기능들을 제공import 생략 가능모든 자바 application에 java.lang패키지가 자동으로 임포트되서 따로 구문을 적지 않아도 된다.이번 챕터에서는 java.lang 패키지 중 Object 클래스에 대해 알아본다.Object 클래스클래스에 상속 받을 부모 클래스가 없으면, 묵시적으로 ..