Java中main方面面试题
1.不用main方法如何定义一个类?
不行,没有main方法我们不能运行Java类。
在Java 7之前,你可以通过使用静态初始化运行Java类。但是,从Java 7开始就行不通了。
2.main()方法需要的参数不是字符串数组?
不是的,main()方法的参数必须是字符串数组。
但是,在引进变参时,你可以将字符串类型的变参作为参数传递给main()方法。变参一定得是数组。
3.我们能不能改变main()方法的返回类型?
不能,main()方法的返回类型只能是空。任何其它类型都是不能接受的。
4.main()方法为什么必须是静态的?
main()方法一定是静态的。
如果main()允许是非静态的,那么在调用main方法时,JVM就得实例化它的类。
在实例化时,还得调用类的构造函数。如果这个类的构造函数有参数,那么届时就会出现歧义。
例如,在下面的程序中,在实例化类“A”的时候,JVM传递什么参数?
5.我们能不能声明main()方法为非静态?
不能,main()方法必须声明为静态的,这样JVM才可以调用main()方法而无需实例化它的类。
如果从main()方法去掉“static”这个声明,虽然编译依然可以成功,但在运行时会导致程序失败。
6.我们能否重载main()方法?
可以,我们可以重载main()方法。一个Java类可以有任意数量的main()方法。
为了运行java类,类的main()方法应该有例如“public static void main(String[] args)”的声明。如果你对此声明做任何修改,编译也是可以成功的。但是,运行不了Java程序。你会得到运行时错误,因为找不到main方法。
7.我们能否声明main()方法为private或protected,或者不用访问修饰符?
不能,main()方法必须public。你不能定义main()方法为private和protected,也不能不用访问修饰符。
这是为了能让JVM访问main()方法。如果你不定义main()方法为public,虽然编译也会成功,但你会得到运行时错误,因为找不到main方法。
8.我们能否在Java中覆盖main方法?
不能,你不能在Java中覆盖main方法。这是因为main方法是静态方法,而在Java中静态方法在编译时会结合在一起,所以你在Java中不能覆盖静态方法。
9.我们能否在Java中终结main方法?
你可以在Java中终结main方法。JVM对此没问题。
10.我们能否在Java中同步main方法?
是的,main方法可以在Java中同步,synchronized修饰符允许用于main方法的声明中,这样就可以在Java中同步main方法了。
转自http://www.jfox.info/10-ge-jing-dian-de-java-main-fang-fa-mian-shi-ti
Java中main方面面试题的更多相关文章
- 深入了解 Java 中的异常处理 + 面试题
# 深入了解 Java 中的异常处理 + 面试题 在程序开发中,异常处理也是我们经常使用到的模块,只是平常很少去深究异常模块的一些知识点.比如,try-catch 处理要遵循的原则是什么,finall ...
- Java中main()的args的知识点浅谈
我们先来了解下Java中main()方法的默认定义格式: public static void main(String[] args){ }1.main方法是程序执行的入口,除了args这个形参变量可 ...
- java中main方法的 (String []args)
java中main方法的 (String []args) String[] args是main函数的形式参数,可以用来获取命令行用户输入进去的参数.java 本身不存在不带String ...
- java中main函数解析(转载)
从写java至今,写的最多的可能就是主函数 public static void main(String[] args) {} 但是以前一直都没有问自己,为什么要这么写,因为在c语言中就没有这样子的要 ...
- java中main函数解析
从写java至今,写的最多的可能就是主函数 public static void main(String[] args) {} 但是以前一直都没有问自己,为什么要这么写,因为在c语言中就没有这样子的要 ...
- Java中main方法参数String[ ] args的使用。
我们刚开始学习java时都会被要求记住主方法(main)的写法,就像这样: public static void main(String[] args){ } public static void m ...
- java中main函数的String[] args
写java程序时main函数必须有一个字符串数组即String[] args 作用:用来获取用户从命令行输入的参数 如果main函数中不写字符串数组,则将会报错
- 深入理解java中main方法
理解main方法语法 深入理解main方法: 解释main方法的形式:public static void main(String[] args){} main方法调用者:虚拟机 java虚拟机需要调 ...
- Java中main函数只能调用同类中的静态方法?
如果想调用本类中的非静态方法可以这么来写: public class TT{ public static void main(String[] args){ TT t = new TT(); t.fu ...
随机推荐
- windows7 密码保护 共享文件
windows7 密码保护 共享文件 2台windows7之间设置文件共享,本想使用ftp,但是配置指定用户连接,配置权限比较繁琐. 所以就想到使用window7的文件共享,并设置密码,共享整个硬盘的 ...
- oracle 条件语句的写法
1.基本的if else DECLARE I ; BEGIN THEN DBMS_OUTPUT.PUT_LINE('TRUE'); ELSE DBMS_OUTPUT.PUT_LINE('FALSE') ...
- Can't find keyplane that supports type 4 for keyboard iPhone-Portrait-NumberPad; using 3876877096_Portrait_iPhone-Simple-Pad_Default
在Xcode6下的模拟器点击UITextField控件显示键盘时会显示如下错误提示: Can’t find keyplane that supports type 4 for keyboard iPh ...
- QQ拼音在中文输入下默认英文标点
别小看这个功能, 感觉在写一些技术 Blog 的情况下还是挺有用的. 打开QQ拼音: 输入法设置->基本设置->初始状态->中文状态下使用英文标点.
- MS SQL SERVER 锁研究记录
首先创建一直数据表 ChenJi,有如下字段: ID, DanWeiID, Name, ChenJi CREATE TABLE [dbo].[ChenJi]( [ID] [int] NOT NUL ...
- CPU虚拟化技术(留坑)
留坑~~~ 不知道这个是这么实现的 CPU虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率.虚 ...
- PostgreSQL Replication之第十章 配置Slony(6)
10.6 执行故障切换 一旦您学会了如何复制表并将它们添加到集合中,是时候学习故障转移了.基本上,我们可以在两个两种类型的故障转移之间做出区分: • 计划内故障转移 • 计划外故障转移和崩溃 在本节, ...
- 免费VPN 实测可用
vpngate.net 的镜像站点列表 (更新于 2014-05-18 03:06:00 UTC): http://121.135.220.121:26633/cn/ (Mirror location ...
- int和long long有符号整形 负数比正数多一个
int的负数比正数多一个,则有一个负数在int范围内没有对应的正数 最大正整数用十六进制,很容易表示:0x7f ff ff ff int num = 0x7fffffff; num = -num; p ...
- JSP out乱码
在form method="post" 写post 在接受页面jsp代码前面加request.setCharacterEncoding("UTF-8");