当我问java问题的时候我在问些什么

来源:互联网 发布:mac怎么创建html文件 编辑:程序博客网 时间:2024/04/27 22:58

       最近团队扩张比较快,不管是开发还是运维都需要懂java的人,前后面过几十人有了。我觉得面试题除了要能评价面试者的技术水平,还要看态度是否严谨。这几天我问得比较多的一个题是关于public static void main(String[] args)的:

      

“所有java程序的入口都是个main函数。”

       说出这句,通常有10%的大神会打断我说,不一定!这些大神基本上都是搞过web开发的,通常我会恭喜这些大神,你的面试提前结束了,因为你根本不了解容器干了些什么。

 

       “main函数的写法通常是publicstatic void main(String[] args),请解释每一个单词的作用。”

       下面就进入和面试者的pk阶段了。

       public:基本上都知道是用来定义可见性的,而且是全局的。补充提问“java有几种可见性”,绝大多数人都只知道public,protected,private,知道default的不到10%。这10%中再问“这四种可见性在包、类、子类中是否可见”,能说明白的几乎没有。

       static:略多余一半的人知道表示静态方法(竟然还有人说这里的用法是静态变量,这明明是个方法好吗),补充“静态方法和非静态的方法有什么区别”,大概10%的人可以说明白,再补充“如果没有static,main能作为入口运行吗”,几乎全挂。

       void:基本上都知道用来定义无返回值(有人跟我说返回的是空值),补充“现在我有一个需求,要像c++一样让main返回一个int值,0代表正常结束,其他值代表故障码,这么修改以后main能作为入口运行吗”,几乎全挂。

       main:当然是方法名了,这都不知道的话应该不会来面试。

       String[]:基本上都知道用来定义main的输入参数是一个String数组。看心情可能会补充“分别用for和foreach遍历一下这个数组”,能写对的不到一半。必补充的是“有一天我笔误了,把String[]写成了String…,main能作为入口运行吗”,无一例外全挂。

       args:当然是参数名。

 

       总结:

       1,我想看看每个人从学java第一天就接触的一个语法,究竟有多少人深究过,如果连这都不研究,很难指望你还能主动研究什么

       2,我承认我的问题是比较阴险的,但是我宁可招一个坦承“不知道”的人,也不愿意招一个瞎掰的人,瞎掰的人进来一定是害群之马

       3,鉴于我面的大多为应届生和工作3年以内的年轻人,这个结果不代表市场普遍情况。但我还是觉得,现在市场上的java程序员和老一辈无产阶级革命家差太远了……

1 0
原创粉丝点击