드림어스컴퍼니

드림어스컴퍼니,드림어스 컴퍼니,dreamus company,dreamuscompany,드림어스컴퍼니(flo),flo(드림어스컴퍼니)

개발팀 리뷰

위 내용은 드림어스컴퍼니 전 • 현 재직자의 응답 결과입니다.

기술 스택

기술 스택 정보가 없어요.

재직자가 작성한 글

재직자가 좋아한 글

🕊️ 2024 버클리즈 Java SpringBoot 인터뷰 질문 (3)  |  Finally 블록에서 예외가 발생하면 어떻게 되나요? 자바에서, try-catch에서 finally 블록 내에서 예외가 발생할 때의 동작은, try-catch 블록의 예외 처리와 약간 다릅니다.    [Try-Catch 블록의 예외] * 정상적인 플로우가 중지됩니다. * 예외 유형과 일치하는 catch 블록이 있다면, 해당 블록 내의 코드가 실행됩니다. 이를 통해 예외를 처리할 수 있습니다. * catch 블록이 완료되거나 어떤 catch 블록과도 일치하지 않으면 finally 블록의 코드가 실행됩니다. [Finally 블록의 예외] * 원래의 예외가 중지됩니다. 이는 원래의 예외가 메서드 호출자에게 전달되지 않는 것을 의미합니다. * finally 블록에서 던진 예외가 호출자에게 전파되는 새로운 예외가 됩니다. [키 포인트] * finally 블록은 try-catch 블록에서 예외가 발생하는지 여부에 관계없이 항상 실행됩니다. * finally 블록의 예외는 원래의 예외를 억제합니다. * finally 블록에서 던진 예외는 호출자가 처리해야 하는 새로운 예외가 됩니다. [Finally 블록의 쓰임새] * 리소스(데이터베이스 연결, 파일 클로징)를 해제합니다. * 예외에 관계없이 항상 수행해야 하는 정리 작업을 처리합니다.   자바의 다이아몬드 문제란 무엇인가요? "다이아몬드 문제"란 여러 상속 시나리오에서 발생하는 특정한 문제를 의미합니다. 클래스 상속 다이어그램을 그릴 때 발생하는 다이아몬드 모양에서 이름을 따왔습니다. 1. 자바의 접근방식: 자바는 클래스의 다중상속을 지원하지 않습니다. 그러나 자바는 인터페이스의 다중상속은 허용합니다.  2. 자바 인터페이스의 다이아몬드 문제: 클래스가 두 개의 인터페이스를 구현하고 두 인터페이스가 모두 동일한 메소드명을 가진다면, 구현 클래스는 모호성을 해결하기 위해 메서드를 자체적으로 구현해야 합니다. interface InterfaceA { default void display() { System.out.println("Inside InterfaceA"); } } interface InterfaceB { default void display() { System.out.println("Inside InterfaceB"); } } class MyClass implements InterfaceA, InterfaceB { // Here, we must provide our own implementation of display to resolve the ambiguity. @Override public void display() { InterfaceA.super.display(); // calling InterfaceA's default implementation InterfaceB.super.display(); // calling InterfaceB's default implementation } } 어떻게 해결할 수 있을까요? 1. 메서드 오버라이딩: 구현 클래스에서 자신만의 구현을 제공하여 모호함을 해결합니다. 이 방식은 기본 구현 중 하나를 선택하거나 완전히 새로운 구현을 제공하고자 할 때 적합합니다. class MyClass implements InterfaceA, InterfaceB { @Override public void display() { System.out.println("Hello world"); } } 2. 특정 인터페이스의 메서드 호출: 특정한 인터페이스의 메서드를 호출합니다.  class MyClass implements InterfaceA, InterfaceB { @Override public void display() { InterfaceA.super.display(); // or InterfaceB.super.display() // Additional logic if needed } }   Multilevel 상속이란 무엇인가요? Multilevel 상속에서 A 클래스는 B 클래스를 상속하며, B 클래스 역시 C 클래스를 상속합니다.   자식 클래스는 부모 클래스를 통해 조부모 클래스에서 간접적으로 상속됩니다. 자식 클래스는 부모 및 조부모 클래스의 모든 public/protected 멤버에 접근할 수 있습니다.   String, Stringbuffer, Stringbuilder의 차이는 무엇인가요? (번역/원문 참고)   메서드 오버라이딩과 오버로딩은 무엇인가요? [메서드 오버로딩] * 단일 클래스 내에서 발생합니다. 이름은 같지만 매개 변수가 다른 동일한 클래스의 여러 메서드를 말합니다. * 메서드 오버로딩을 사용하면 유사한 작업을 수행하지만 입력/출력이 다른 메서드를 만들 수 있습니다. class Calculator { public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } } [메서드 오버라이딩] * 상속에서 클래스 간에 메서드 오버라이딩이 발생합니다. 하위 클래스가 상위 클래스에서 상속된 메서드를 재정의하는 것을 말합니다. 메서드는 상위 클래스 메서드와 동일한 이름, 반환 유형 및 매개 변수를 갖습니다. * 메서드 오버라이딩을 사용하면 하위 클래스가 상위 클래스에서 상속된 메서드를 자체적으로 구현하여 하위 클래스에 대한 동작을 전문화할 수 있습니다. class Animal { public void makeSound() { System.out.println("Generic animal sound"); } } class Dog extends Animal { @Override public void makeSound() { System.out.println("Woof!"); } }   예외 클래스의 계층구조는 무엇인가요? Arraylist와 Linkedlist의 차이는 무엇인가요? Set과 Arraylist의 차이는 무엇인가요? (번역/원문 참고)   번역: [https://ducktopia.tistory.com/119] 원문:

좋아요 39 저장 107

thumbnail