中级java工程师,要有扎实的java基础和面向对象编程基础,对jdk中的基础类有一定的使用积累和理解;并且在业务方面,可以担任一些模块的独立开发。
根据上述两个必要条件进行筛选,在技术方面,作为面试官会问以下问题:
面向对象编程基础
1简述一下面向对象的三大特征?
回答:根据一些小例子描述封装,继承,多态,ok;通过自己开发的代码说明封装,继承,多态(重点),加分。
举例:我们项目的用户体系很大,而我负责开发其中一种用户类型,这种用户类型是在原有的用户上追加了XX属性,所以选择了继承原有用户的模型......
2.简述对开闭原则的理解?(其实有5大原则,而开闭原则相对比较被大家熟悉)
回答:开放扩展,关闭修改,OK;如果结合自己的代码说明,加分
PS:一般情况下,开闭原则的思想使用在设计最初预见到功能的扩展性的时候,或者第一次需要扩展某一项功能而对原有代码进行重构的时候。如果面试者回答出相关的,说明可能是有相关设计经验的。
3.类和对象的关系?
回答:类可以看做是对象的一个模板,对象是类在实际运行时的表象,类似这种意思都OK;从jvm内存角度分析从类创建出对象的过程,加分(这个属于高级开发部分)
java基础和jdk常用类使用
1.你在项目中使用过的集合有哪些?
回答:ArrayList,linkedList,HashSet,HashMap就OK;如果分类回答出Collection的子类和Map的子类,加分;如果回答出ArrayList,LinkedList,Vector的区别,加分;如果回答出HashSet,LinkedHashSet,TreeSet的区别,加分;如果回答出Queue,加分;如果回答出HashMap,HashTable,TreeMap的区别,加分
PS:有时候也会直接提问使用过的Collection的子类,这时请不要回答Map相关的子类
2.java中的异常分为哪几类?
回答:CheckedException和UncheckedException,OK;说出它们的区别,并列举出常用的CheckedException,加分;
追加提问:你在项目中如何使用Uncheckedexception?(陷阱题)
回答:在项目中,不直接抛出Uncheckedexception,而是将Uncheckedexception包装成业务异常(CheckedException)再抛出,OK;如果描述如何抛出Uncheckedexception,但是不能说明在什么情况下进行处理时,扣分
3.有5个String类型的变量,想要直接拼接起来成为一个字符串,是使用+号拼接,还是使用其他方式?(陷阱题)
回答:使用+号拼接,OK;能直接说明StringBuilder和StringBuffer,并且解释不适用题目情况的理由,加分
看面试者的回答追加提问:为什么使用/不使用StringBuilder或者StringBuffer?
回答:直接拼接现有字符串,使用+号直接拼接并不存在内存浪费,而StringBuilder和StringBuffer在执行效率上比+号拼接要差。
4.简述一下hashcode的作用?
回答:int类型的对象的散列码,是为了更好的支持基于哈希机制的Java集合类,例如Hashtable,HashMap,HashSet,意思描述正确就OK;和equals的使用做比较,重写equals必须重写hashcode。equals返回true,hashcode一定返回true;而hashcode一定返回true,equals不一定返回true。加分。
5.什么时候使用finally关键字?
回答:try...catch后书写finally代码块,finally代码块一般是用于释放try代码块中使用的资源,OK;回答出代码块调用顺序,加分。
设计模式
(对于中级java工程师来说,单例和工厂模式是最为常用的,也许他们在不知不觉中一直在使用,但是如果可以描述清楚的话,那么更好)
1.描述或者写出一个你在项目中编写的单例模式的类
回答:描述清楚或者写清楚了,ok;能回答出多种单例模式方案和比较的,加分
2.描述或者写出一个你在项目中编写的工厂模式的类
回答:工厂模式有多种,描述一种就OK:能回答多种工厂模式的并且思路清晰的,加分
Spring相关
(99%Java面试者的简历中都会写熟悉Spring框架。但是真要提问概念性的东西,IOC、AOP等等,最多就是背一个概念,所以Spring提问的出发点还是中级工程师平时用到的一些基础性的东西)
1.描述一下如何使用@Autowired注解和@Qualifier注解
回答:@Autowired是Spring在任意粒度进行自动装配控制的注解,@Qualifier是在自动装配多个同源实现时,指定唯一实现使用的注解,意思对就OK;结合项目说明使用方式,加分。
2.Spring的配置方式有哪些?
回答:XML配置,注解配置,java代码配置,OK;说明区别,加分
追加提问:举例java代码配置?
回答:使用@Configuration和@Bean注解,OK;使用过@Condition系列,@Import等等注解,加分
中级java工程师阶段是工程师中基数最大的人群,基础参差不齐,选拔定位都比较困难,所以问题的广度也很大。中级java工程师的面试中,除了上面的一些技术问题外,结合简历中的项目经验的提问也很多,但是这个就无法总结了,需要根据实际情况提问和回答。
以上就是动力节点java培训机构小编介绍的“面试官会问中级Java工程师哪些问题?”的内容,希望对大家有帮助,更多java最新资讯请继续关注动力节点java培训机构官网,每天会有精彩内容分享与你。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习