>Java >java지도 시간 >10가지 고전적인 Java 주요 방법 인터뷰 질문

10가지 고전적인 Java 주요 방법 인터뷰 질문

伊谢尔伦
伊谢尔伦원래의
2016-11-30 10:58:381416검색

다음은 저자가 Java 메인 메소드에 대한 더 고전적인 인터뷰 질문이라고 생각하는 것입니다. Java 인터뷰 질문이라기 보다는 실제로 Java에 대한 가장 기본적인 지식 질문 중 일부입니다. .오류가 있으면 지적해주세요.

10가지 고전적인 Java 주요 방법 인터뷰 질문

1. main 메소드 없이 클래스를 정의하는 방법은 무엇입니까?

아니요, 메인 메소드 없이는 Java 클래스를 실행할 수 없습니다.

Java 7 이전에는 정적 초기화를 사용하여 Java 클래스를 실행할 수 있었습니다. 그러나 Java 7부터는 작동하지 않습니다.

2. main() 메소드에 필요한 매개변수가 문자열 배열이 아닌가요?

아니요, main() 메서드의 매개변수는 문자열 배열이어야 합니다.

다만, 변수 매개변수를 도입할 때 string형 변수 매개변수를 main() 메소드에 매개변수로 전달할 수 있습니다. 변수 매개변수는 배열이어야 합니다.

package com.instanceofjava;
public class MainMethod
{
public static void main(String args[])
{
}
}

3. main() 메소드의 반환 유형을 변경할 수 있나요?

아니요, main() 메서드의 반환 유형은 비어 있어야 합니다. 다른 유형은 허용되지 않습니다.

package com.instanceofjava;
public class A
{
public static int main(String[] args)
{
 return 1;    //run time error : No main method found
}
}

4. main() 메서드는 왜 정적이어야 합니까?

main() 메서드는 정적이어야 합니다.

main()이 비정적일 수 있는 경우 JVM은 기본 메서드가 호출될 때 해당 클래스를 인스턴스화해야 합니다.

인스턴스화 시 클래스의 생성자를 호출해야 합니다. 이 클래스의 생성자에 매개변수가 있으면 모호성이 발생합니다.

예를 들어, 다음 프로그램에서 클래스 "A"를 인스턴스화할 때 JVM은 어떤 매개변수를 전달합니까?

package com.instanceofjava;
public class A
{
public MainMethod(int i)
{
//Constructor taking one argument
}
 public void main(String[] args)
{
//main method as non-static
}

5. main() 메서드를 비정적으로 선언할 수 있나요?

아니요, JVM이 해당 클래스를 인스턴스화하지 않고 main() 메서드를 호출할 수 있도록 main() 메서드를 정적으로 선언해야 합니다.

main() 메서드에서 "정적" 문을 제거하면 컴파일이 성공하더라도 런타임 시 프로그램이 실패하게 됩니다.

package com.instanceofjava;
public class A
{
public void main(String[] args)
{
System.out.println("indhu");         //Run time error
}
}

6. main() 메소드를 오버로드할 수 있나요?

네, main() 메소드를 오버로드할 수 있습니다. Java 클래스에는 원하는 만큼의 main() 메소드가 있을 수 있습니다.

Java 클래스를 실행하려면 클래스의 main() 메서드에 "public static void main(String[] args)"와 같은 선언이 있어야 합니다. 이 선언을 변경하면 컴파일이 성공합니다. 그러나 Java 프로그램을 실행할 수 없습니다. 기본 메소드를 찾을 수 없기 때문에 런타임 오류가 발생합니다.

package com.instanceofjava;
public class A
{
public static void main(String[] args)
{
System.out.println("Indhu");
 }
void main(int args)
{
System.out.println("Sindhu");
}
long main(int i, long d)
{
System.out.println("Saidesh");
return d;
}
}

 7. main() 메소드를 private 또는 protected로 선언할 수 있나요? 아니면 액세스 한정자 없이 선언할 수 있나요?

아니요, main() 메소드는 공개되어야 합니다. main() 메소드를 private 및 protected로 정의할 수 없으며 액세스 한정자를 사용할 수도 없습니다.

이는 JVM이 main() 메소드에 액세스할 수 있도록 하기 위한 것입니다. main() 메서드를 public으로 정의하지 않으면 컴파일은 성공하더라도 main 메서드를 찾을 수 없기 때문에 런타임 오류가 발생합니다.

package com.instanceofjava;
public class A
{
private static void main(String[] args)
{
//Run time error
}
}

8. Java에서 main 메소드를 재정의할 수 있나요?

아니요, Java에서는 기본 메소드를 재정의할 수 없습니다. 이는 기본 메서드가 정적 메서드이고 Java에서는 정적 메서드가 컴파일 타임에 결합되므로 Java에서 정적 메서드를 재정의할 수 없기 때문입니다.

9. Java에서 메인 메소드를 종료할 수 있나요?

Java에서는 메인 메소드를 종료할 수 있습니다. JVM에는 이것에 문제가 없습니다.

 10. 자바에서 메인메소드를 동기화할 수 있나요?

네, Java에서 메인 메소드를 동기화할 수 있습니다.


영문 원문: Java 인터뷰 질문 On main() 메소드





성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.