sourcecode

Java/Java EE 개발자가 대답할 수 있는 질문

copyscript 2022. 9. 13. 22:10
반응형

Java/Java EE 개발자가 대답할 수 있는 질문

는 모든 좋은 질문들을 훑어보고 있었다.Net Developer는 이 질문의 내용과 접근법에 대해 답변할 수 있어야 하며, 이에 대한 깊은 인상을 받았기 때문에 Java/Java EE Developer에게 질문합니다.

훌륭한 Java/Java EE 프로그래머가 대답할 수 있어야질문은 무엇입니까?

이 질문은 사용자 고유성이 없고 프로그래밍 커뮤니티 전체에 서비스를 제공하기 위한 것이므로 커뮤니티 위키로 표시합니다.

좋은 답변 기다리겠습니다.

편집: 댓글에 제시된 질문에도 답해 주세요.그러면 사람들이 언어에 대해 새로운 것을 배울 수 있습니다.

hashCode()와 equals()의 관계는 무엇입니까?이러한 방법의 중요성은 무엇입니까?이러한 기능을 구현하기 위한 요건이 무엇입니까?

Set, Map, List의 차이점은 무엇입니까?

나는 아직도 많은 사람들이 전화 인터뷰에서 이것을 모르는 것에 대해 놀라워하고 있다.

인터페이스는 여러 인터페이스를 확장할 수 있습니까?

대부분의 사람들은 Java가 다중 상속을 가지고 있지 않다는 것을 알고 있기 때문에 "아니오"라고 대답합니다.단, 인터페이스는 여러 인터페이스를 확장할 수 있지만 클래스는 여러 클래스를 확장할 수 없습니다.이것은 다이아몬드 문제로 이어지지 않는다.

"아니오"라고 대답한 경우, 면접관은 " 금지되었습니까?"라고 질문해야 합니다.그리고 나서 그것에 대해 생각하기 시작하고 당신은 그것에 문제가 없다는 것을 깨달아야 한다.

그래서 면접에서 (스스로) 뭔가를 배웠고 면접관에게 수업, 사물, 상속, 다형성 등에 대해 추론할 수 있다는 것을 보여줬습니다.암기하고 있지만 왜 그런지 모르는 후보보다 훨씬 낫다.

메서드 콜에서의 final 키워드 사용.예를 들어 method 파라미터의 최종 수식자를 사용했는데도 아래 코드의 메서드테스트에서 컴파일 오류가 발생하지 않는 이유는 무엇입니까?

class Name {
    private String name;

    public Name (String s) {
        this.name = s;
    }

    public void setName(String s) {
        this.name = s;
    }
}

private void test (final Name n) {
    n.setName("test");
}

한 가지 확실한 것은 문자열 비교입니다.의 차이점

문자열 helloWorld = "Hello World";
helloWorld == "Hello World";
"Hello World".equals(hello World);

트릭 질문:Java에서는 어떤 종류의 파라미터가 참조로 전달됩니까?

"원본은 가치로, 사물은 참조로 전달된다"는 주문을 아직도 앵무새처럼 따라하는 사람이 얼마나 많은지 놀랍다.

'좋다', '개발자'라고 했잖아요.여기 제 2센트도 있습니다.:)

  • '체크된 예외'란 무슨 뜻입니까?
  • 예기치 않은 상황에 대처하기 위한 어설션과 예외 중 어떤 것을 사용하는 것이 더 좋습니까?
  • String 클래스가 최종인 이유(아니면 아닌가?;)
  • wait, notify, notify 입니다.오브젝트 클래스의 모든 메서드?
  • 스레드 클래스가 최종이 아닌 이유는 무엇입니까?내가 왜 스레드를 확장해야 하지?
  • 왜 java.util 패키지와 java.sql의 두 가지 날짜 클래스가 있는 거죠?
  • 예외가 최종적으로 블록에 들어가면 어떻게 됩니까?나머지 부분은 최종적으로 실행되었습니까?
  • 가비지 콜렉터는 있습니다만, Java 어플리케이션에서는 메모리 누수가 전혀 없는 것입니까?그렇지 않다면, 어떻게?

J2EE의 경우:

  • 인스턴스/스태틱 변수를 서블릿에 포함시키는 것이 좋습니까?왜 안 되나요?그럼 "주"는 어디에 보관하나요?
  • 위의 질문으로 넘어갑니다. (Web) 어플리케이션의 '상태'란 무엇입니까?
  • "JSP"에서 DB 연결 작성/닫기를 시작하면 어떻게 됩니까?
  • JSP 예외를 처리하는 방법에는 어떤 것이 있습니까?트라이캐치?음.. 다른건 없나요?

더 많이, 더 많이, 더 많이 생각할 수 있지만, 지금은 이것으로 충분합니다.

String, String Buffer 및 String Builder의 차이점은 무엇입니까?

"도입 기술자가 뭐죠?"

후보자가 심하게 흔들리는 경우 3.0 이전 EJB에서 일한 경험이 있습니다.

많은 질문과 인터뷰는 http://www.techinterviews.com/interview-questions/java에서 볼 수 있으며, 복사/붙여넣기에는 그다지 가치가 없다고 생각합니다.

아니요, 당신이 중요하다고 생각하는 것들을 스스로 편집하는 것은 당신에게 달려 있습니다.개인적으로 저는 항상 두 단계로 진행됩니다. 먼저 경험과 기술에 대한 기본적인 아이디어를 얻기 위한 몇 가지 질문, 그 다음 문제 해결 상황입니다.알려진 질문에 대답할 수 있다는 것이 좋은지 나쁜지 알 수 없는 문제 해결사인지 확신이 안 선다.그래서 저는 사람들에게 주어진 문제를 해결하고 몇 가지 요구 사항을 제시하며 코드를 작성하도록 요청합니다(종이로 작성하지 않음).나는 그들이 어떻게 했는지, 그들의 코딩 스타일, 그들이 어떻게 제안 API를 사용했는지 등을 확인할 시간을 준다.

어쨌든, 내가 가장 좋아하는 질문은, 「자바의 어떤 점이 마음에 들지 않는가」(이것의 정신으로)입니다.이것은 정말 훌륭한 질문입니다. 후보자가 Java를 얼마나 사용하고 API를 탐색했는지, 그리고 그가 단지 그것에 대해 신앙심이 있는지(OP가 쓴 대로)에 대한 피드백을 즉시 제공합니다.

업데이트: CPerkins의 제안대로 위의 질문에 대해 "Java에서 무엇이 가장 변경되었으면 좋겠습니까?"라는 표현이 더 나을 수 있습니다.그리고 사실, 나는 이런 방식이 더 좋다.

System.out.println의 'System', 'out', 'println'이란?HashMap에서 'put'을 호출하면 어떻게 됩니까?

  1. Java에서 사용되는 다양한 액세스 수식자에 대해 설명합니다.많은 사람들이 이 문제로 어려움을 겪고 있습니다.특히 디폴트 액세스에 대해서는요.
  2. 자바 언어나 플랫폼의 한 가지를 바꿀 수 있다면 무엇을 바꾸시겠습니까?좋은 개발자들은 여기서 답을 얻을 수 있지만, 개발에 별로 관심이 없는 사람들은 아마 신경 쓰지 않을 것이다.
  3. 이력서에 EJB2.1을 사용하는 것과 같은 내용이 기재되어 있는 경우, EJB3에 대해 질문하여 고객이 알고 있는 내용을 확인하십시오.최고의 개발자는 최신 버전을 사용하지 않더라도 최신 개발 정보를 파악할 수 있습니다.
  • 우선권이 동등할 때 일반적인 계약은 무엇입니까?
  • 리스트와 어레이 중 어느 쪽을 선택하는 것이 좋습니까?
  • 일반적으로 허용되는 명명 규칙은 무엇입니까?
  • 시리얼화의 구조
  • 비교 가능한 구현 방법
  • JDBC의 준비 스테이트먼트를 사용하면 어떤 이점이 있습니까?
  • Java EE란?
  • 컨테이너란 무엇이며 어떤 서비스를 제공하는가?

Java를 사용하여 졸업생을 채용하는 경우, Null Pointer를 일으키는 코드 쓰기 등의 간단한 질문입니다.던지는 예외는 최근에 Java를 사용한 후보자를 구분할 수 있으며, 유닛/코스를 마쳤을 때 멈춘 것이 아니다.

무엇을 인쇄할 것인가?

public void testFinally(){
    System.out.println(setOne().toString());

}

protected StringBuilder setOne(){
    StringBuilder builder=new StringBuilder();
    try{
        builder.append("Cool");
        return builder.append("Return");
    }finally{
        builder.append("+1");
    }
}

답변: CoolReturn + 1

조금 더 어렵다:

public void testFinally(){
    System.out.println(setOne().toString());

}

protected StringBuilder setOne(){
    StringBuilder builder=new StringBuilder();
    try{
        builder.append("Cool");
        return builder.append("Return");
    }finally{
        builder=null;  /* ;) */
    }
}

답변: CoolReturn

추상 클래스와 인터페이스의 차이점은 무엇입니까?각각 언제 사용하시겠습니까?

많은 자바 개발자들은 이것을 알지 못한다. 나는 대학에서 컴퓨터 과학 수업을 듣는 대부분의 사람들에게 물었지만, 대부분은 대답할 수 없었다.

다음과 같은 간단한 질문입니다.

  • JRE와 JDK가 뭐죠?
  • Java가 상호 운용성을 주장하는 이유는 무엇입니까?

이것들은 매우 기본적인 것이지만, 많은 개발자들은 답을 알지 못한다.코드 관련 질의에 앞서 질문할 것을 제안합니다.

J2EE/JEE 질문 상위 5개

지금까지 접한 J2EE/JEE 미들웨어 질문 목록은 매우 길지만, 다음은 질문받은 상위 5개입니다.

  1. MDB에서 처리할 수 없는 예외가 발생하면 어떻게 됩니까?
    이 질문은 보통 포이즌 메시지, 오류 큐 등에 대한 다양한 흥미로운 토론으로 이어집니다.
  2. JMS Topic과 JVM에 있는 몇몇 소비자는 내구성이 뛰어난 소비자와 그렇지 않은 다양한 시나리오에 대해 질문합니다.
    이 질문에서는 보통 내구성이 뛰어난 서브스크라이버를 사용하는 시기, 큐를 사용하는 시기 등에 대해 논의할 수 있습니다.
  3. 휴지 상태/J에 액세스 할 수 없는 경우PA POJO의 내용은 예외로 이어지는데, 어떻게 해결할 수 있을까요?
    이로 인해 느린 부하, 재수송 등에 대한 훌륭한 논의가 이루어지게 됩니다.JPA와 엔티티 콩의 비교 및 대조로 이어지기도 했습니다.준비를 하고 개념을 명확히 하는 것이 도움이 된다는 것을 알게 되었다.
  4. 어떻게 단순한 웹 서비스가 제공될 수 있니?
    간단한 웹 서버에서 어떤 해결책이든 세련된SOAP/REST 솔루션에 기초하고, 어떤 사이 잘 해야만 한다.또한, 면접관에게 따라, 때때로 그것은 디자인에 대한 아이디어-WebServicesDescriptionLanguage먼저 doc-style, SOAP매개자 etc.,과 같은 주제에 흥미 있는 토론으로 이어진다.그것은 JAX-WS JAX-RPC, 또는 SOAP1.2에 SOAP1.1에 목록 개선과 같은 질문, 대답은 보통 얼마나 내가 기억합니다에 근거한다로 이어질 수 있다.
  5. JEE 5자원 주입
    이 문제는 많은 방법으로, 서비스 파악 패턴에부터 평가된다.javax.naming.Context문의사항.

어떻게 의존하고 도서관는 한에 포장된 나는 문제가 되고 있지만 찾는 또 다른 까다로운 질문은 직면한 것?
아니면 가시 거리가 여러 계층의 결합 기록 보관소에.
만약 논의 다른 응용 프로그램 서버, 자원 기록 보관소 등의 클래스 로더 계층을 이끌지 않고 사임하는 것이 가장 좋다.

Java의 주요 질문 5개:

  1. java.util.collections에 관한 질문
    모든 질문의 어머니다.일단 면접관을 이 분야에 효과적으로 배치하고 준비가 되면, 나머지 면접은 보통 여기에 남습니다.꼭 알아둬라Set,List,Map, 및 의 중요성Object.equals()그리고.Object.hashCode()이러한 인터페이스의 모든 실장에서는,
  2. 질문 리팩터링
    면접관이 열린 마음을 가지면 이런 것들이 좋아요.면접관이 이미 특정한 해결책을 생각하고 있고 면접관이 원하는 해결책과 일치하지 않는다면, 당신은 거의 망한 것입니다."다른 솔루션이 가능하다는 것을 이해합니다."라는 답변에 동의하는 것이 가장 좋습니다."
  3. JDK5의 멀티스레딩에 관한 질문 이전 JDK 버전과 비교하여 java.util.current 패키지 클래스를 준비하는 것이 가장 좋다는 것을 알았습니다.Doug Lea의 책은 대부분의 해답을 가지고 있다.
  4. JDK1.6/JDK1.7의 신기능...
    이것은 많은 면접관들에게 확실한 질문이다.나는 이것이 싫지만 준비하는 것이 최선이다.적어도 내가 함께 일했던 몇 가지를 기억하고 논의를 다른 방향으로 이끌면 대체로 효과적으로 문제를 피하고 해결할 수 있다.
  5. Java API의 패턴
    Java API에서 GoF 패턴을 지적해 달라는 요청을 여러 번 받았습니다.이 일에 대비하는 게 좋을 거야.

및 웹 서버와 웹 컨테이너의 차이점

Java의 어떤 점이 가장 좋거나 좋지 않은지, 그 이유는 무엇입니까?

왜 toString() 메서드를 덮어씁니까?

좀 더 순수한 자바 질문:

잠자는 것과 기다리는 것의 차이점은 무엇입니까?실제로 기다림이 어떻게 작용하는지 이해하는 사람은 많지 않다.

인터럽트 처리 방법예외?

이것이 내가 면접에서 직면했던 질문이다.

Java의 메인 메서드를 public static void main(String[] args)이라고 하는 이유는 무엇입니까?

답변:

1.main()은 프로그램 실행이 시작될 때마다 JVM에 의해 호출되므로 public으로 선언해야 합니다.JVM은 당사의 프로그램 패키지에 속하지 않습니다.

패키지 외부에 있는 메인에 액세스하려면 public으로 선언해야 합니다.public 이외의 것으로 선언하면 런타임 오류가 표시되지만 컴파일 시간 오류표시되지 않습니다.

2.main()은 static으로 선언해야 합니다.이는 메서드가 static으로 선언된 경우 ClassName을 사용하여 클래스 외부에서 메서드를 호출할 수 있기 때문입니다.methodName();

class Sample
{
     static void fun()
     {
           System.out.println("Hello");       
     }
}

class Test
{
      public static void main(String[] args)
      {
                Sample.fun();
      }
}

JVM은 먼저 테스트 클래스를 로드하고 명령줄 인수를 확인하여 Test.main()의 메인 메서드를 호출합니다.

3.main()은 boid main()으로 선언해야 합니다.JVM은 main()의 값을 기대하고 있지 않기 때문입니다.그러니 무효로 선언해야 합니다

다른 반환 유형을 지정하면 RunTimeError 입니다.No Such Method Found Error.

4.main()은 JVM이 명령줄 인수를 전달함으로써 메인 메서드를 호출하기 때문에 배열로서 String 인수를 가져야 합니다.문자열 배열 개체에 저장될 때 인수로서 main()에 전달됩니다.

J2SE와 J2EE(또는 JSE와 JEE)의 차이점은 무엇입니까?

개발자는 엔터프라이즈 에디션이 기본적으로 벤더에 의해 구현될 수 있는 인터페이스 정의(사양서)임을 지적할 수 있어야 합니다.반면 표준판은 그 자체로 구현된 것이다.

어떻게요?volatile컴파일러에 의한 코드 최적화에 영향을 미칩니까?

세션빈이란 무엇이며 스테이트리스 세션빈과 스테이트풀 세션빈의 차이점에 대해 설명하겠습니다.

두 개의 정수를 받아들여 두 개의 숫자 중 가장 큰 숫자를 선택한 위치에 있는 파일로 출력하는 프로그램을 작성합니다.이제 각 스테이트먼트의 기능에 대해 설명하겠습니다.

수입 명세서의 중요성부터 비정상적인 종료까지 상당히 깊이 파고들 수 있습니다.

코어: 1체크되어 있는 예외와 체크되어 있지 않은 예외는 무엇입니까? 2. 코드에 새로운 예외를 추가할 때 사용할 유형(체크되어 있거나 체크되어 있지 않은 경우)

서블릿: 1반응의 차이는 무엇입니까?sendRedirect() 및 요청.forward()?

안녕하세요threads일? 뭐야?synchronized두 개일 경우synchronized클래스 내의 메서드는 2개의 스레드로 동시에 실행할 수 있습니다.많은 사람들이 그렇다고 대답하면 놀랄 것이다.다음으로 교착 상태, 기아 등과 같은 모든 스레드 관련 질문입니다.

많은 자바 프로그래머들이 모르는 한 가지는 String은 불변하기 때문에 String Builder나 String Buffer를 사용하세요!

String s = "";
for(int i = 0; i < 100; i++) {
  s += "Strings " + "are " + "immutable, " + " so use StringBuilder/StringBuffer to reduce memory footprint";
}

언급URL : https://stackoverflow.com/questions/2114212/questions-every-good-java-java-ee-developer-should-be-able-to-answer

반응형