初级java工程师多数是刚毕业或者工作1,2年的新人。对于新人,面试中基础问题会问道很多,因为先要考察这个人的基础。
关于基础类的题目,我在面试初级java工程师的时候一般会问下面两大类问题,每类5个题目,这样下来我就基本可以了解这位工程师的程度了。
java基础类
面向对象基础类
java基础类
1.描述一下java的访问修饰符,和它们之间的区别?
回答:如果可以回到出public,private,protected,就算是ok;回答出default的,加分。
2. int和Integer 区别?
回答:如果回答出Integer是int的包装类,就算ok;回答出其他的基本类型和它们相应的包装类,加分。
3.如何定义一个单精度浮点类型的变量?
回答:float 变量名=1.2f ;回答出不加最后的f为双精度浮点类型,加分
4. equals和==的区别?
回答: equals是值比较(一般处理java开发都会这么说,算是ok的)而==是引用比较(或者对象比较);回答equals是可以自定义的,加分
5.将一个数组作为参数传递到一个方法中,在方法中,数组内的元素值被改变了,那么在方法外部,这个数组内的元素是否也被改编了?
回答:是,因为java方法中传递的是引用,就ok。如果回答中,将引用说明了自己的理解,加分。
面向对象基础类
1.重载和重写的区别?
回答:这个看个人理解,理解没有什么大的偏差就ok;回答出多态相关的,加分。
2.构造方法能不能重载?
回答:可以重载,ok;回答构造方法时不能继承的,所以如果要调用指定父类构造器就必须重写子类构造方法,加分。
3.抽象方法(abstract)是否可以被final、static、native修饰?
回答:都不可以,因为抽象方法是必须子类实现的,final方法时不可以被重写的,static是父类必须实现的方法,native是本地语言实现的方法。回答出封装和继承相关的,加分
4.当父类引用指向子类对象的时候,子类重写了父类方法和属性,那么当访问属性的时候,访问是谁的属性?调用方法时,调用的是谁的方法?
回答:访问的是父类的属性,调用的是子类的方法,ok;如果可以画图解释的话,加分
5.抽象类和接口有什么异同?
回答:一些类定义上的区别,ok;回答在应用过程中,如何根据业务定义接口,加很多分
最后,如果前面问题回答的不错,会补充两个编程习惯问题。
1.在你写过的代码中,你写过超过2层的循环吗,怎么实现的?
回答:没有,就算ok;如果回答有,听一下实现,如果原因说不出来,扣分。
2.在你写过的代码中,if语句最多嵌套了几层,最多有多少分支,怎么实现的?
回答:3层以下,就算ok;如果回答3层以上,听一下实现,如果原因说不出来,扣分。
4,5个分支,就算ok;如果回答5个分支以上,听一下实现,如果原因说不出来,扣分。
最后两个题其实比较陷阱,但是正是一个反向的思考才能了解面试者之前的工作状态。
如果面试者在平日里就有好的习惯,自然不用担心。