我觉得应该从这几个层次上考虑:
1. 当前的技术水平
  1.1 Java技术基础的掌握,以及常用框架理解程度
  1.2 项目经验,以及在做这些项目中对技术研究的深度如何
  1.3 算法基础
  1.4 对设计模式的理解

  1.5 架构设计

  1.6 系统优化思路和经验
  1.7 对bug调试的经验

  1.8 单元测试

2. 成长的后劲
  2.1 对技术的兴趣和追求
  2.2 对难题思路是否清晰,思维是否严密
3. 公司的实际情况
  3.1 与公司当前职位的需求情况,招进来具体可以做什么工作
  3.2 薪资问题
4. 其他
  4.1 有良好的团队意识,比较合群
  4.2 沟通能力,毕竟如果以后一起共事,能聊的来会好合作的多
  4.3 项目管理经验
  4.4 做事的态度是否认真负责(这个只能在试用阶段考察)

至于上面的具体考察点所划分到的考察范围可能会有几个,这个当然还是可以商榷的。
对于具体的考察方式还要再想想。比如一个问题不断提升难度,然后看别人的反应,我觉得这个就很好。

把最近面试比较喜欢问的问题先记下来吧。
1. java有自己的内存管理,为什么还有内存溢出的问题?
2. 说一下自己在开发中遇到过最棘手的问题是什么,你是怎样解决的?(然后把问题难度再加大,让他考虑新的解决办法)
3. 如果让你实现spring的IOC或者AOP,你要怎么设计,需要注意哪几个关键点?
4. 如果调试程序想让一个for循环执行到1000次的时候停下来,你有什么办法?