>  기사  >  Java  >  Java의 주요 메소드의 세부 배열

Java의 주요 메소드의 세부 배열

黄舟
黄舟원래의
2017-09-08 10:01:102259검색

이 글은 주로 자바 메인 메소드 면접 질문 10가지를 소개합니다. 도움이 필요한 친구들이 참고할 수 있습니다

자바 메인 메소드 면접 질문 상세 정리

1. 메인 메소드 없이 클래스를 정의하려면?

아니요, 메인 메소드 없이는 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에서 기본 메서드를 재정의할 수 있나요?

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

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

Java에서 기본 메소드를 마무리할 수 있습니다. JVM에는 이것에 문제가 없습니다.

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

예, Java에서 기본 메소드를 동기화할 수 있습니다. 동기화된 수정자를 기본 메소드 선언에 사용할 수 있으므로 Java에서 기본 메소드를 동기화할 수 있습니다.

위 내용은 Java의 주요 메소드의 세부 배열의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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