우당탕 개발 블로그

[CS스터디] JAVA 3. 본문

IT 기초지식/CS 스터디

[CS스터디] JAVA 3.

예린_dev 2022. 6. 9. 22:29
  • SOLID(객체지향 5대원칙)에 대해서 설명해주세요.
    • SRP(Single Responsibility Principle): 단일책임원칙
      • 하나의 클래스는 하나의 책임만(책임을 캡슐화)
      • 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다.
    • OCP(Open closed Principle): 개방폐쇄원칙
      • 소프트웨어 요소는 확장에 열려 있으나 변경에는 닫혀 있어야 한다.
    • LSP(Listov Substitution Principle): 리스코프치환원칙
      • 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
    • ISP(Interface Segregation Principle): 인터페이스 분리 원칙
      • 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
    • DIP(Dependency Inversion Principle): 의존역전원칙
      • 추상화에 의존해야지, 구체화에 의존하면 안된다.

 

  • 동일성(identity)와 동등성(equality)에 대해 설명해주세요. (equals(), ==)
    • 동일성: 객체의 주소 값이 동일(==)
    • 동등성: 객체가 같은 정보(값)을 가지고 있음, 주소가 달라도 값이 같으면 같다.(equlas())

 

  • 원시타입과 참조타입의 차이에 대해 설명해주세요.
    • 원시타입은 Java에서 단 8개 밖에 존재하지 않는 타입(boolean, byte, short, long, int, char, float, double)
    • 참조타입은 원시타입을 제외한 나머지
    • 원시타입은 항상 값이 존재해야 한다. 반면, Object 타입은 null 포인터를 가질 수 있다. 그리고 멤버변수가 초기화될 때, 원시타입은 기본 값을 가지지만, 참조타입은 null 포인터를 가지는 차이도 있다.

 

  • String, StringBuilder, StringBuffer 각각의 차이에 대해 설명해주세요.
    • String, StringBuilder, StringBuffer 은 Java에서 문자열은 다루는 대표적인 클래스이다.
    • String은 불변의 속성을 가진다. 변하지 않는 문자열을 자주 읽어들이는 경우 String을 사용하면 좋지만 문자열 추가, 수정, 삭제 등의 연산이 빈번하게 발생하면 힙 메모리에 많은 임시 가비지가 생김
    • StringBuilder과 StringBuffer은 동기화 유무의 차이가 있다.
      • StringBuffer는 동기화를 지원하고 멀티쓰레드 환경에서 안전하다.
      • StringBuilder는 동기화를 지원하지 않고 단일 쓰레드에서 성능이 Buffer보다 좋다.

** 동기화: 프로세스, 스레드들이 수행되는 시점을 조절하여 서로가 알고 있는 정보가 일치하는 것

 

  • Checked Exception과 Unchecked Exception에 대해 설명해주세요.
    • Checked Exception(SQL Exception, IOException ...)
      • 예외에 대한 대처 코드가 없으면 컴파일이 진행되지 않음
    • Unchecked Exception(Runtime Exception)
      • 예외에 대한 대처 코드가 없더라도 컴파일은 진행됨
반응형

'IT 기초지식 > CS 스터디' 카테고리의 다른 글

[CS스터디] 컴파일러, 패턴, Web  (0) 2022.06.14
[CS스터디] JAVA 4.  (1) 2022.06.10
[CS스터디] JAVA 2.  (0) 2022.06.07
[CS스터디] JAVA 1.  (1) 2022.06.06
[CS스터디] Spring 3.  (1) 2022.06.05