JAVA 14

[JAVA] clone(), 얇은 복사와 깊은 복사

이 내용을 몇 번을 찾아보는지 모르겠다... 내용이 어렵지는 않은데 정리해 놓지를 않아서 매번 헷갈린다. 제대로 공부해 보고 이번을 마지막으로 더는 헷갈리는 일이 없도록 하자. 내용은 자바의 정석 3판을 참고하였습니다.  clone()clone()은 자신을 복제하여 새로운 인스턴스를 생성하는 일을 한다. 어떤 인스턴스에 대한 작업을 할 때 원본 인스턴스는 보존해 두고 대신 복제한 새로운 인스턴스에 대해 작업을 할 때 유용하다고 한다. 왜냐하면 새로운 작업이 실패하게 될 경우 원본 인스턴스의 상태로 되돌아갈 수 있기 때문이다.  clone()은 모든 클래스들의 조상인 Object 클래스에서 기본적으로 제공하는 메서드다. clone()을 사용하고자 할 때 Cloneable 인터페이스를 구현해야 하기 때문에(..

JAVA 2024.03.26

[JAVA] toString(), String.valueOf()의 차이

toString()과 String.valueOf ()는 모두 String 클래스에 존재하는 메서드다. 두 메서드 모두 문자열을 반환한다는 공통점을 가지고 있는데, 두 메서드의 특징이 어떤 것인지, 두 메서드 간 차이점은 무엇인지 정리해 보고자 한다.  1. toString()toString() 메서드는 정확히 말하면 모든 클래스의 최고 조상인 Object의 메서드로부터 온 것이다. String 클래스 역시 이 Object를 상속하고 있기 때문에 toString() 메서드를 가지고 있다. 아래 java 공식 문서를 확인해 보면 Object 클래스의 메서드를 오버라이드를 한 것임을 확인할 수 있다. 원래 Object 클래스의 toString()은 인스턴스에 대한 정보를 문자열로 반환한다. 즉 아래 코드처럼 ..

JAVA 2024.03.20

[JAVA] String, Stringbuffer, Stringbuilder 차이

StringStringBuffer, StringBuilder내부적으로 char[] 배열을 가지고 있다불변(immutable) 객체가변(mutable) 객체 String은 인스턴스 생성 시 문자열의 내용을 변경할 수 없기 때문에 매번 새로운 객체를 생성해야 하지만, StringBuffer와 StringBuilder는 내부적으로 내용을 변경할 수 있게 되어 있다. 그렇기 때문에 후자의 경우 메모리를 더 효율적으로 사용할 수 있다. StringBufferStringBuilder기본적인 메서드 동일동기화 O동기화 X멀티 스레드에 안전싱글 스레드에 유리 참고로 StringBuffer, StringBuilder의 메서드 중 다음 메서드들은 객체 자신을 반환한다.append()delete(), deleteCharAt..

JAVA 2024.03.14

[Java] 별(*) 피라미드 출력 문제 코드 작성 (231230)

벨로그에서 95% 쓴 글이 임시저장도 안 되고 출간도 안 된 채로 순식간에 날아갔다. 정신 잃고 쓰러질 뻔 했지만 친구가 세뇌하듯 위로해줬다...고맙다 덕분에 정신승리하며 다시 쓴다..! 내가 학기 중에 필기 노트 다 날라간 것도 견뎌냈는데... 아자아자 파이팅! 파이썬이랑 c 공부할 때도 피라미드 문제는 항상 어려웠는데 이제는 더 이상 어려움 느끼면 안 될 것 같아서 각 잡고 다 다뤄보기로 다짐했다! 이렇게 앞으로 나아가는 거겠지- 실제로 어제 코드들 쳐 보면서 하나하나 되니 자신감도 생기고 더 공부하고 싶단 생각이 들었다. 이제 잡담 그만하고 바로 들어가자. (240702) 아래는 반복문을 이용해 구현했지만 시간복잡도를 더 줄이는 방법으로 조건문으로도 엮어서 풀 수 있다. 하루코딩 님 유튜브 영상을 ..

JAVA 2023.12.31