JavaRush /Java Blog /Random-KO /커피 브레이크 #101. 19가지 필수 Java 인터뷰 질문 및 짧은 샘플 답변

커피 브레이크 #101. 19가지 필수 Java 인터뷰 질문 및 짧은 샘플 답변

Random-KO 그룹에 게시되었습니다
출처 : Hackernoon 다음은 Java 인터뷰에서 자주 나오는 몇 가지 질문과 답변입니다.

1. JDK(Java Development Kit)란 무엇입니까?

JDK는 Java 애플리케이션을 개발하는 데 필요한 도구와 라이브러리가 포함된 소프트웨어 개발 키트입니다.

2. JRE(Java Runtime Environment)는 어떤 역할을 합니까?

JRE는 Java 바이트코드가 실행되는 런타임 환경을 나타냅니다. JRE는 런타임용 파일과 라이브러리를 유지 관리합니다.

3. JVM(Java Virtual Machine)은 무엇을 합니까?

JVM은 Java 바이트코드가 실행될 수 있는 런타임 환경을 제공하는 추상 머신입니다.

4. Java는 플랫폼 독립적입니다. 왜?

다른 프로그래밍 언어에서는 소스 코드가 실행 가능한 코드로 컴파일되며 코드가 모든 플랫폼에서 실행되지 않을 수 있습니다. JVM을 사용하면 모든 플랫폼에서 바이트코드를 이해할 수 있게 만들 수 있으며 이 바이트코드는 플랫폼 독립적입니다. JVM은 플랫폼마다 다르지만 Java는 어떤 유형의 플랫폼에도 종속되지 않으므로 플랫폼 독립적입니다.

5. 자바는 100% 객체 지향적이지 않습니다. 왜?

Java는 객체가 아닌 boolean, byte, char, int, float, double, long, short와 같은 8가지 기본 데이터 유형을 사용하기 때문입니다.

6. Java의 생성자란 무엇입니까?

생성자는 객체를 초기화하는 데 사용되는 코드 블록입니다. 통사론:
class DemoClass
{
   // constructor name is same as class name
   DemoClass()
   {
      ....
   }
}
// calls DemoClass() constructor
DemoClass obj = new DemoClass();
예:
public class ConstructorDemo
{
   int a; // class attribute
   // create constructor for class ConstructorDemo
   ConstructorDemo()
   {
      a = 26; // initial value for class attribute 'a'
   }
   public static void main(String[] args)
   {
      // creating object for ConstructorDemo class
      // here we're calling constructor ConstructorDemo()
      ConstructorDemo obj = new ConstructorDemo();
      System.out.println(obj.a);
   }
}
결과:
26

7. 싱글톤 클래스는 무엇을 합니까?

싱글톤 클래스는 한 번에 하나의 개체(클래스 인스턴스)만 가질 수 있습니다. 객체가 생성되고 싱글톤 클래스를 인스턴스화하려고 시도하면 새 변수도 생성된 첫 번째 객체를 가리킵니다.

8. Java의 래퍼 클래스란 무엇입니까?

래퍼 클래스를 사용하면 기본 데이터 유형을 객체로 변환하거나 그 반대로 변환할 수 있습니다. 예:
int a = 7; // using primitive datatype
Integer a = new Integer(7); // using wrapper class

9. == 연산자와 Java의 같음 메서드의 차이점은 무엇입니까?

일반적으로 == 는 연산자이고 equals() 는 메서드입니다. == 연산자를 사용하여 힙의 비교 개체를 참조합니다. Java에는 연산자 오버로딩이라는 개념이 없습니다. 그럼에도 불구하고 == 연산자는 두 객체의 주소가 같은지 여부를 확인하는 데 사용됩니다. 즉, == 연산자는 두 개체가 동일한 메모리 위치를 가리키는지 여부를 확인합니다. == 연산자는 객체 유형과 부울과 같은 기본 유형을 비교하는 데 에도 사용됩니다 . String 클래스 의 equals () 메소드는 두 객체의 내용을 비교합니다.

10. Java에서 OOP의 개념은 무엇입니까?

  • 추상화는 내부 구현을 숨기고 필요한 정보만 표시하는 것으로 정의됩니다.
  • 상속이란 부모 클래스(슈퍼클래스)의 모든 속성과 동작을 자식 클래스(서브클래스)로 변환하는 절차입니다.
  • 캡슐화는 데이터 또는 변수와 메소드를 함께 바인딩하는 절차입니다.
  • 다형성(Polymorphism)은 말 그대로 다양한 형태를 의미합니다. 다형성은 다양한 작업을 수행하는 방법의 능력입니다. 이는 방법을 사용하여 달성할 수 있습니다.

11. Java에서 main() 메소드가 항상 정적인 이유는 무엇입니까?

객체에 대해 정적 메서드를 호출할 필요가 없기 때문입니다. main()이 비정적 메소드인 경우 JVM(Java Virtual Machine)은 먼저 객체를 생성한 다음 main() 메소드를 호출해야 합니다 . 이렇게 하면 추가 메모리가 할당됩니다.

12. Java에서 문자열을 변경할 수 없는 이유는 무엇입니까?

Java의 문자열은 문자열 객체가 문자열 상수 에 캐시되기 때문에 변경할 수 없습니다 .

13. Java의 배열과 ArrayList는 무엇입니까?

배열은 비슷한 유형의 고정된 개수의 요소를 포함하는 개체입니다.
  1. ArrayList는 컬렉션 구조의 일부입니다.

  2. ArrayList는 목록 인터페이스를 구현합니다.

  3. ArrayList 는 요소가 추가되면 동적으로 늘어나고 요소가 제거되면 축소되는 확장 가능한 배열입니다.

  4. 빈번한 검색 작업의 경우 Java ArrayList가 최선의 선택입니다 . ArrayList 의 요소는 연속적인 메모리 위치에 저장되기 때문입니다.

  5. ArrayList는 int, double, char 및 long과 같은 기본 데이터 유형을 포함할 수 없습니다.

  6. ArrayList에는 String 및 래퍼 클래스 개체( Double , Integer )가 포함될 수 있습니다 .

  7. ArrayList를 사용하면 요소를 복제할 수 있습니다.

  8. ArrayList는 삽입 순서를 유지합니다.

  9. ArrayList 는 기능성과 유연성으로 인해 널리 사용됩니다. 이종 개체 컬렉션을 저장하도록 설계되었습니다.

  10. ArrayList는 null 값을 얼마든지 가질 수 있습니다.

14. Java에서 HashSet과 HashMap의 차이점은 무엇입니까?

HashSet 에서 :
  1. HashSet 에 객체를 저장할 수 있습니다 . 예를 들어 HashSet: {"Hello", "World"} 입니다 .

  2. 게재 신청서는 유지되지 않습니다. 해시코드 기반입니다.

  3. add() 메소드가 있습니다 .

  4. Set 인터페이스를 구현합니다 .

  5. 중복 요소를 허용하지 않습니다.

  6. 단일 null 값을 허용합니다.

HashMap 에서 :
  1. HashMap 에서는 키와 값 쌍을 저장할 수 있습니다. 예를 들어, {1 -> “안녕하세요”, 2 -> “세계”} 입니다 .

  2. 게재 신청서를 지원하지 않습니다. 해싱 함수를 기반으로 합니다.

  3. put() 메소드가 있습니다 .

  4. 지도 인터페이스를 구현합니다.

  5. 중복된 값을 허용합니다. 중복 키를 허용하지 않습니다.

  6. 단일 null 키와 임의 개수의 null 값을 허용합니다.

16. Java에서 이것과 super의 차이점은 무엇입니까?

Java의 this 키워드 :
  1. this 는 현재 객체를 참조하는 참조 변수인 키워드입니다.

  2. 현재 클래스 메서드를 암시적으로 호출하는 데 사용할 수 있습니다.

  3. 현재 클래스의 생성자를 호출하는 데 사용되는 this() 키워드 .

  4. 이는 메소드를 호출할 때 인수로 전달하는 데 사용할 수 있습니다.

Java의 슈퍼 키워드 :
  1. super 키워드는 상위 클래스의 직접 개체를 참조하는 데 사용되는 참조 변수입니다.

  2. super는 부모 클래스의 메서드, 부모 클래스의 생성자를 직접 호출하고 기본 클래스의 메서드에 액세스하는 데 사용할 수 있습니다.

17. Java의 break 및 continue 문은 무엇입니까?

루프에서 break 문이 발생 하면 루프가 종료되고 제어는 동일한 루프의 다음 문으로 전달됩니다. 예:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a == 3)
         {
            // breaking loop
            break;
         }
         System.out.println(a);
      }
   }
}
결과:
12
continue 문은 특정 조건에 따라 루프의 다음 반복으로 이동합니다. 예:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a % 2 != 0)
         {
            continue;
         }
         System.out.println(a + " ");
      }
   }
}
결과:
2 4 6 8 10

18. Java의 액세스 수정자는 무엇입니까?

액세스 한정자는 변수, 생성자, 클래스 또는 메서드의 제한이나 범위를 정의합니다. Java에는 네 가지 유형의 액세스 수정자가 있습니다.
  1. 개인 액세스 수정자.
  2. 보호된 액세스 수정자.
  3. 공유 수정자.
  4. 기본 액세스 한정자.

19. Java에서 for 루프와 for Each 루프의 차이점은 무엇입니까?

for 루프 :
  1. 실행 가능한 시퀀스가 ​​없습니다. for 루프에서는 원하는 대로 카운터를 변경할 수 있습니다.
  2. JDK 1의 맨 처음에 나타났습니다.
  3. 인터페이스를 구현할 필요가 없습니다.
  4. 인덱스에 접근할 수 있습니다. 따라서 배열의 요소를 바꾸는 것이 가능합니다.
  5. 카운터는 증가하거나 감소할 수 있습니다.
루프 에 대해 다음을 수행합니다 .
  1. 순차적으로 수행됩니다. 카운터가 1씩 증가합니다.
  2. JDK 5에서 처음 등장했습니다.
  3. for-each 루프를 사용하여 컨테이너를 반복하려면 컨테이너가 Iterable 인터페이스를 구현해야 합니다.
  4. 배열 인덱스에 액세스할 수 없기 때문에 이 인덱스의 요소를 바꿀 수 없습니다.
  5. 오름차순으로만 반복할 수 있고 줄일 수는 없습니다.
foreachfor 루프 의 차이점 예 :
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class DifferenceBetween
{
   public static void main(String[] args)
   {
      List<String> players = new ArrayList<>(Arrays.asList("Virat", "Rohit", "Dhoni"));
      // iterate over List using for loop
      System.out.println("using for loop: ");
      for(int a = 0; a < players.size(); a++)
      {
         System.out.println(players.get(a));
      }
      // iterate over List using enhanced for loop
      System.out.println("using for each loop: ");
      for(String str : players)
      {
         System.out.println(str);
      }
   }
}
for 및 각 루프에 대한 결과:
비랏 로힛 도니.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION