본문 바로가기

Back-End/Java4

Unmodifiable Collection? Collection.copyOf? 이 글은 전반적으로 컬렉션의 복사 방법을 정리해봅시다! (unmodifiable view / list) 를 참고하였습니다. 더 자세한 내용을 원하시면 리차드님 블로그를 방문해주세요! 좋은 글이 넘쳐납니다!! 뭐가 다른거지? 우리는 주로 외부와 내부에서 주소값을 공유하는 인스턴스의 관계를 끊어주기 위해서 방어적 복사를 사용한다. (불변 유지) 또한, 외부로 값을 노출시킬 때도 관계를 끊어주기 위해서 복사본을 반환해준다. 이 때 사용되는 것이 주로 Unmodifiable Collection와 Collection.copyOf이다. 주로 Unmodifiable Collection을 사용했는 데 인터넷을 보다보면 Collection.copyOf을 사용하는 글도 많이 볼 수 있었다. 과연 무엇이 다르고 언제 써야하.. 2022. 4. 27.
Object 클래스 Object 클래스 자바의 최상위 클래스 Object클래스는 모든 클래스의 최고 조상이기 때문에 Oject클래스의 멤버들은 모든 클래스에서 바로 사용 가능하다. Object클래스의 멤버 Object클래스는 멤버변수는 없고 오직 11개의 메서드만 가지고 있다. 이 메서드들은 모든 인스턴스가 가져야 할 기본적인 것들이다. equals(Object obj) ==연산 결과 반환 ( 주소 값 비교 ) Overriding 목적 : 물리적으로 다른 메모리에 위치하는 객체여도 논리적으로 동일함을 구현하기 위해 public class Number { private final int value; public Number(int value) { this.value = value; } public static void mai.. 2022. 3. 31.
IntelliJ로 Maven 프로젝트 만들기 IntelliJ 2021.3 버전 기준으로 작성하였습니다. 이때까지의 프로젝트는 Gradle을 사용했지만 데브코스에서는 Maven을 사용한다하여 과제를 실시할 때 Maven으로 프로젝트를 생성해보았다. 자세한 설정은 없고 그저 과제를 하기 위한 프로젝트이니 간단하게만 만들었다. 프로젝트 생성 인텔리제이 시작화면에서 NEW PROJECT를 클릭한다. Maven 프로젝트를 만들것이니 왼쪽에서 Maven 프로젝트를 클릭하고 Project SDK에서 자바 버전 선택 나는 8버전으로 선택하였다. 자신이 원하는 프로젝트 이름을 Name 칸에 적어준다. ( Name에 해당 하는 폴더 생성 ) 나머지 칸도 알맞은 내용으로 적어준다. GroupId 프로젝트를 고유하게 식별할 수 있게 해주는 ID 따라서, 네이밍 스키마를.. 2022. 3. 22.
String과 StringBuilder,StringBuffer String String은 Java에서 기본 자료형으로 제공하지만, Reference-type 이다. String은 Reference-type이지만 다른 클래스들과는 다르게 String Constant Pool을 사용하는 특이한 녀석이다. String Constant Pool Java에서 String을 선언하는 방법은 두 가지가 있다. // 1. 리터럴 방식 String a = "hello"; // 2. new 방식 ( Reference 방식 ) String b = new String("hello"); 리터럴 방식의 경우 heap 메모리 영역의 String Constant Pool에서 할당되는 반면 new 방식은 메모리의 heap에 바로 할당된다. 문자열 비교 public class App { publi.. 2022. 3. 21.