1 面试流程 



公司决定招聘Java工程师作为人才储备,而正在Java项目组的我,理所当然地当上了面试官。第一次的经历,理应好好记下。具体流程是:



1. 如果超级烂,就直接让他回去等通知;


2. 对于一般经验的,要面试者稍等,再由项目经理来决定是否需要继续面试;


3. 优秀的直接推荐给项目经理面试


2 Java基础知识 



2.1 如何判断对象的类型 



RTTI主要主要针对对象:Class对象。 RTTI(runtime type info)用于在运行时识别对象的类型信息。java虚拟机不能在运行时加载所有类型对象(动态加载),同时部分类型的信息是无法再编译器就获取的,需要在业务逻辑中依据类型信息进行相关逻辑的处理,这是就需要RTTI了。



1. instanceof



不能严格判断出是不是自己的类,而不是自己的父类。


    


2. getClass


o.getClass().equals(ClassC.class)



2.2 怎么判断ArrayList包含某个对象 

list.contains(o);


   


需要重载对象中的 equals 和 hasCode 函数



2.3 Spring 3.0 注解 



@Autowired 可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。@Autowired的标注位置不同,它们都会在Spring在初始化这个bean时,自动装配这个属性。


@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按byName自动注入罢了。@Resource有两个属性是比较重要的,分别是name和type。



2.4 如何实现对象的深度拷贝 



如果包含非基本对象成员,在调用基类 clone 方法后,需要再次调用一个基本对象



2.5 Java 时区问题 

在服务器中,部署了Java Web项目,可在客户端获取历史数据时,数据并不在输入的时间范围内。你觉得可能是哪个地方引起的问题?




实际项目中,是因为部署Web服务器中设置的时区与客户端设置的时区不一致造成的。




延生:怎么确保两个地方的时间信息一致




3 对个人职业的发展方向 

3.1 通常 Java 软件工程师的职业规划方向 



初级程序员->高级程序员->程序设计师->系统架构师 



程序员-->项目经理-->系统分析师、系统架构师



3.2 面试者的回答 

不管怎么说,从职业方向来看,大家都表示出不太想在公司呆太久的意愿。这样不太好。自己知道就好,但面试的时候不需要提出来



1. 先做一段时间的Java,再转向android



2. 不断学习新的技术,寻求创业机会



4 总结 

1. 优秀总是体现在对细微处的把握,大家都表现得很真诚,水平高低通过面试都可以看出来。真正决定是否进入公司的,其实就是自己的能力能否满足公司的需求啦。



2. 当面试官的感觉还不错,发现在面试的时候其实就是换一种思维角度来看待问题,这种感觉很好!



4.1 求职者 

1. 尽量表现出强烈入职公司的欲望


2. 遇到不懂的问题,坦诚说不会,但说出自己的解决思路


3. 尽量不迟到,如果实在来不了,也应提前通知