作为面试官,我会问初级java工程师什么问题?
关于基础话题,在面试初级java工程师的时候,我一般会问以下两种问题,每种五个问题,这样就可以基本了解工程师的水平。
Java基本类
面向对象的基本类
Java基本类
1.描述一下java的访问修饰符,以及它们之间的区别?
回答:如果能回归公有,私有,受保护,是可以的;如果回答默认,会加分。
2.int和Integer有什么区别?
答案:如果答案是Integer是int的包装类,那就OK;回答其他基本类型及其对应的包装类,得分。
3.如何定义单精度浮点型的变量?
答案:浮点变量名= 1.2f;如果答案是双精度浮点型,不加最后一个f,会加分。
4.equals和= =有什么区别?
回答:equals是值比较(一般在处理java开发的时候说,还可以)而= =是引用比较(或者对象比较);答案等号可以自定义,加分。
5.将数组作为参数传递给方法。在方法中,数组中元素的值被更改。在方法之外,数组中的元素也是自适应的吗?
回答:可以,因为引用是在java方法中传递的,所以可以。回答的话会引用说明自己的理解并加分。
面向对象的基本类
1.重载和重写有什么区别?
回答:这个看个人理解,理解没什么大偏差就ok;如果答案是多态的,加分。
2.构造方法可以重载吗?
回答:可以超载,ok;回答构造函数时不能继承,所以如果要调用指定的父构造函数,必须重写子类构造函数,获得加分。
3.抽象方法可以被final,static,native修改吗?
回答:不能,因为抽象方法必须由子类实现,final方法不能重写。static是必须由父类实现的方法,native是由本地语言实现的方法。回答封装和继承相关的问题,加分。
4.当父类引用指向子类对象时,子类重写父类方法和属性,那么在访问属性时,访问的是谁的属性?调用方法时,调用谁的方法?
回答:我访问了父类的属性,调用了子类的方法,OK;如果能画图说明,加分。
5.抽象类和接口的异同?
回答:有的阶级定义不一样,OK;回答如何在应用过程中根据业务定义接口,加分不少。
最后,如果前面的问题回答正确,会增加两个编程习惯问题。
1.在你写过的代码中,有没有写过两层以上的循环?你是怎么做到的?
回答:没有,甚至还可以;如果答案是肯定的,听实现,如果原因说不出来,扣分。
2.在你写的代码中,if语句最多嵌套几层,最多有几个分支,是如何实现的?
回答:3层以下,就算可以了;如果回答3级以上,听听实现。说不出原因就扣钱。
4、5分支,就算OK;如果回答5个分支以上,听听实现。说不出原因就扣钱。
后两个问题其实都是陷阱,不过是一种逆向思维,可以了解面试官之前的工作状态。
如果面试官平日习惯良好,也没必要担心。