ITPub博客

首页 > 应用开发 > Java > 好程序员Java分享Javamain十个面试题

好程序员Java分享Javamain十个面试题

原创 Java 作者:好程序员IT 时间:2019-06-26 17:13:51 0 删除 编辑

   作为 Java 工程师参加面试时都会被问很多问题,那么 在 Javamain 方面都会被问到哪些问题呢? 今天好程序员就 为大家准备一些常见的 Javamain 的基础知识问题,帮助大家在面试前做好准备:

 

  1 、不用 main 方法如何定义一个类?

 

  不行,没有 main 方法我们不能运行 Java 类。

 

  在 Java7 之前,你可以通过使用静态初始化运行 Java 类。但是,从 Java7 开始就行不通了。

 

  2 、 main() 方法需要的参数不是字符串数组?

 

  不是的, main() 方法的参数必须是字符串数组。

 

  但是,在引进变参时,你可以将字符串类型的变参作为参数传递给 main() 方法。变参一定得是数组。

 

  packagecom.instanceofjava;

  publicclassMainMethod

  {

  publicstaticvoidmain(Stringargs[])

  {

  }

  }

 

  3 、我们能不能改变 main() 方法的返回类型?

 

  不能, main() 方法的返回类型只能是空。任何其它类型都是不能接受的。

 

  packagecom.instanceofjava;

  publicclassA

  {

  publicstaticintmain(String[]args)

  {

  return1;//runtimeerror:Nomainmethodfound

  }

  }

 

  4 、 main() 方法为什么必须是静态的?

 

  main() 方法一定是静态的。

 

  如果 main() 允许是非静态的,那么在调用 main 方法时, JVM 就得实例化它的类。

 

  在实例化时,还得调用类的构造函数。如果这个类的构造函数有参数,那么届时就会出现歧义。

 

  例如,在下面的程序中,在实例化类 “ A ”的时候, JVM 传递什么参数?

 

  packagecom.instanceofjava;

  publicclassA

  {

  publicMainMethod(inti)

  {

  //Constructortakingoneargument

  }

  publicvoidmain(String[]args)

  {

  //mainmethodasnon-static

  }

 

  5 、我们能不能声明 main() 方法为非静态?

 

  不能, main() 方法必须声明为静态的,这样 JVM 才可以调用 main() 方法而无需实例化它的类。

 

  如果从 main() 方法去掉“ static ”这个声明,虽然编译依然可以成功,但在运行时会导致程序失败。

 

  packagecom.instanceofjava;

  publicclassA

  {

  publicvoidmain(String[]args)

  {

  System.out.println("indhu");//Runtimeerror

  }

  }

 

  6 、我们能否重载 main() 方法?

 

  可以,我们可以重载 main() 方法。一个 Java 类可以有任意数量的 main() 方法。

 

  为了运行 java 类,类的 main() 方法应该有例如“ publicstaticvoidmain(String[]args) ”的声明。如果你对此声明做任何修改,编译也是可以成功的。但是,运行不了 Java 程序。你会得到运行时错误,因为找不到 main 方法。

 

  packagecom.instanceofjava;

  publicclassA

  {

  publicstaticvoidmain(String[]args)

  {

  System.out.println("Indhu");

  }

  voidmain(intargs)

  {

  System.out.println("Sindhu");

  }

  longmain(inti,longd)

  {

  System.out.println("Saidesh");

  returnd;

  }

  }

 

  7 、我们能否声明 main() 方法为 private 或 protected ,或者不用访问修饰符?

 

  不能, main() 方法必须 public 。你不能定义 main() 方法为 private 和 protected ,也不能不用访问修饰符。

 

  这是为了能让 JVM 访问 main() 方法。如果你不定义 main() 方法为 public ,虽然编译也会成功,但你会得到运行时错误,因为找不到 main 方法。

 

  packagecom.instanceofjava;

  publicclassA

  {

  privatestaticvoidmain(String[]args)

  {

  //Runtimeerror

  }

  }

 

  8 、我们能否在 Java 中覆盖 main 方法?

 

  不能,你不能在 Java 中覆盖 main 方法。这是因为 main 方法是静态方法,而在 Java 中静态方法在编译时会结合在一起,所以你在 Java 中不能覆盖静态方法。

 

  9 、我们能否在 Java 中终结 main 方法?

 

  你可以在 Java 中终结 main 方法。 JVM 对此没问题。

 

  10 、我们能否在 Java 中同步 main 方法?

 

  是的, main 方法可以在 Java 中同步, synchronized 修饰符允许用于 main 方法的声明中,这样就可以在 Java 中同步 main 方法了。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69913892/viewspace-2648844/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
欢迎关注公众号:好程序员特训营 web前端教程分享 723729549 大数据教程分享 703503210

注册时间:2019-03-20

  • 博文量
    539
  • 访问量
    410816