본문 바로가기
반응형

Language13

불변(Immutable)객체 불변 객체는 상태 변경이 불가능한 객체이다.수정자 메서드를 막고 read-only 메서드만 제공하며 참조 속성의 불변성을 지키기 위해 방어적 복사 메서드가 제공되기도 한다. ex) String, 원시타입의 래퍼타입(Boolean, Integer, Float, Long, Double), ResultSet 불변객체 생성1. 접근지정자 private 지정2. final 선언 3. 수정자 메서드 제공 금지 외부에서 접근이 불가하도록 private으로 선언하고, final을 통해 초기화 이후 값 변경이 불가하게 만든다.수정자 메서드를 제공하지 않음으로써 값이 변경되지 않음을 보장한다.public class Member { private final String email; private final Strin.. 2023. 11. 15.
인터페이스와 추상클래스의 차이 인터페이스란 구현체들의 동일한 행위를 보장한 추상 자료형으로 일종의 계약서 또는 설계서이다.추상클래스란 하나 이상의 추상 메서드를 포함한 클래스를 추상 클래스라고 하며 복제와 확장의 목적으로 쓰인다.(추상 메서드 없이 추상 클래스 선언 가능하나 구체 클래스와 차이가 없음) 인터페이스와 추상클래스는 모두 인스턴스화가 불가하고 구현체에서 추상 메서드를 반드시 오버라이딩 해야한다는 공통점이 있다.허나, 인터페이스와 추상 클래스는 구조적으로 큰 차이가 있고, 이로인해 그 사용성에도 큰 차이점이 있다. 인터페이스와 추상클래스의 차이점1. 구현부의 존재여부 : 캡슐화인터페이스는 메서드의 구현부가 없는 추상 메서드로만 이루어져있다. 이에 반면 추상 클래스는 메서드의 구현부가 존재한다."추상 클래스"의 구현부는 하위 .. 2023. 11. 15.
객체지향 설계의 SOLID 원칙 SOLID 원칙이란?객체지향 프로그래밍 설계의 다섯가지 기본 원칙으로 높은 응집도와 낮은 결합도 확장성 있는 시스템을 갖추도록 함SRP(Single Responsibility Principle) : 단일 책임 원칙OCP(Open/Close Principle) : 개방/폐쇄 원칙LSP(Liskov Substitute Principle) : 리스코프 치환 원칙ISP(Interface Segregation Principle) : 인터페이스 분리 원칙DIP(Dependency Inversion Principle) : 의존성 역전 원칙 1. SRP(Single Responsibility Principle) : 단일 책임 원칙모듈이나 클래스는 하나의 책임을 가져야 한다클래스를 변경해야하는 이유는 오직 하나 뿐이어야.. 2023. 11. 15.
java.lang.OutOfMemoryError: Java heap space 오류 해결 안녕하세요. 실서버에서 스프링 프로젝트를 호스팅하여 운영하던 중에 java.lang.OutOfMemoryError 가 나타났습니다. 서버관리가 초보라 처음 보는 에러였기 때문에 여기저기 구글링을 하며 오류를 미연에 방지하고 다음에 또 비슷한 유형의 에러가 나오면 빨리 해결할수 있도록 자바 메모리에 대해 깊이있게 공부를 해보았습니다. 자바 메모리 구조가 궁금하신 분들은 밑의 링크를 참조하여주세요. 제가 이번 에러를 통해 여기저기 글을 참조하며 최신 자바 버전에 맞게 변경된 내용까지 포함한 내용입니다. 글을 읽어보고 오류 해결방법을 읽어보는게 도움이 될것입니다. developer111.tistory.com/33 [자바]JVM 구조 및 자바 메모리 구조 실서버에 톰캣7과 자바8으로 호스팅한 후 한달 정도 되니.. 2021. 1. 14.
반응형