好程序员Java教程分享经典Java main方法面试题

神行太保
• 阅读 158

  好程序员Java教程分享经典Java main方法面试题,以下是比较经典的关于Java main方法的面试题,与其说是Java面试题,其实也是Java的一些最基础知识问题,分享给大家,如有错误,请指出。
  1.不用main方法如何定义一个类?
  不行,没有main方法我们不能运行Java类。
  在Java 7之前,你可以通过使用静态初始化运行Java类。但是,从Java 7开始就行不通了。
  2.main()方法需要的参数不是字符串数组?
  不是的,main()方法的参数必须是字符串数组。
  但是,在引进变参时,你可以将字符串类型的变参作为参数传递给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()允许是非静态的,那么在调用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()方法为非静态?
  不能,main()方法必须声明为静态的,这样JVM才可以调用main()方法而无需实例化它的类。
  如果从main()方法去掉“static”这个声明,虽然编译依然可以成功,但在运行时会导致程序失败。
  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程序。你会得到运行时错误,因为找不到main方法。
  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()方法必须public。你不能定义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中覆盖main方法。这是因为main方法是静态方法,而在Java中静态方法在编译时会结合在一起,所以你在Java中不能覆盖静态方法。
  9.我们能否在Java中终结main方法?
  你可以在Java中终结main方法。JVM对此没问题。
  10.我们能否在Java中同步main方法?
  是的,main方法可以在Java中同步,synchronized修饰符允许用于main方法的声明中,这样就可以在Java中同步main方法了。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java单元测试
Java单元测试1.概述java单元测试是最小的功能单元测试代码,单元测试就是针对单个java方法的测试。java程序的最小功能单元是方法。main方法进行测试的缺点:只能有一个main()方法,不能把测试代码分离出来无法打印出测试结果和期望结果.例如:expected:
Wesley13 Wesley13
3年前
java基础类库
java类库的基本介绍与用户互动运行Java程序的参数main()方法分析public修饰符:Java类由JVM调用,为了让JVM可以自由调用这个main()方法,所以使用public修饰符把这个方法暴露出来static修饰符:JVM调用这个主方法时,不会先创建该类的对象,然后通过对象来调用该主方法
Wesley13 Wesley13
3年前
java基础:Java七大外企经典面试精讲视频
java基础:Java七大外企经典面试精讲视频对于很多应聘java程序员的求职者来说,全面掌握java面试技巧,确实是自己找到一个好工作的敲门砖。今天小编在这里给大家分享一个关于java基础的Java七大外企经典面试精讲视频,需要的朋友可以作为参考!课程目录:1、StringStringbufferStringbuilder深度解析2、完美
Stella981 Stella981
3年前
JUnit4源码分析运行原理
提个问题:Java程序的入口是main方法,而JUnit类中没有main方法,那么JUnit是如何运行的呢?假如有以下JUnit例子:importorg.junit.Test;publicclassTestA{@TestpublicvoidtestAdd(){
Wesley13 Wesley13
3年前
Java main 函数方法:是什么?使用案例分享
什么是main方法?在Java中,main方法是Java应用程序的入口方法。程序运行时,要执行的第一个方法是main()方法。此方法与其他方法有很大不同。例如,方法的名称必须为main,方法的类型必须为publicstaticvoid,方法必须接收字符串数组的参数。您可以通过javaIDEeclipse编写下一个示例例
Wesley13 Wesley13
3年前
Java多线程之如何创建多线程?
Java与多线程的关系我们平时写的好多简单程序就有多个线程参与,你可能会感到惊讶,但是事实就是这样。Java程序从main()方法开始执行,然后按照既定的代码逻辑执行,看似没有其他线程参与,但实际上Java程序天生就是多线程程序,因为执行main()方法的是一个名称为main的线程。下面我们来用Java的一个管理类验证一下
Wesley13 Wesley13
3年前
JAVA面试题汇总
没有什么套路,就是直接上干货!!!最新Java面试题汇总整理连答案一块儿分享给大家,希望对大家有帮助~之后还会推出Java面试题系列文章,敬请关注!按照技术模块:Java热点技术、多线程、微服务、JVM、Redis、消息队列、SQL相关的面试题。不要走开,稍后更精彩!1、面向对象的特点有哪些?抽象、继承、封装、多态。2、接口和抽象类
Wesley13 Wesley13
3年前
Java面试题(一)
看到一篇不错的java面试题的文章,自己整理一下,作为备用吧!Java面试题面向对象的特征有哪些方面?封装最常见的是把属性私有化封装在一个类里面,只能通过方法去访问继承子类继承父类,从而继承了父类的方法和属性抽象
Wesley13 Wesley13
3年前
Java静态方法和实例方法 java中的数组作为形参传入
Java静态方法和实例方法java中的数组作为形参传入Java虚拟机启动一个Java程序的时候,会诞生一个虚拟机实例,当程序关闭退出时,该实例会消失。如果一个机器上运行着三个Java程序,即有三个Java虚拟机实例Java虚拟机会调用某个初始类的main()方法运行一个Java程序,此方法将会作为程序的初始线程启动,任何线程都是
Stella981 Stella981
3年前
SpringBoot核心
1.基本配置1.1入口类和@SrpingBootApplicationSpringBoot通常有一个名为\Application的入口类,入口类里有一个main方法,这个main方法就是一个标准的java应用的入口方法。在main方法中使用SpringApplicatio
Easter79 Easter79
3年前
SpringBoot核心
1.基本配置1.1入口类和@SrpingBootApplicationSpringBoot通常有一个名为\Application的入口类,入口类里有一个main方法,这个main方法就是一个标准的java应用的入口方法。在main方法中使用SpringApplicatio