1.工作经历篇
2.选择面试者简历最近的工作项目,让面试者说一下项目所包含的功能模块,以及他
主要负责开发的功能模块。对于他负责的功能模块,选择其中一个非登录、权限功能,阐
述下详细业务实现。
重点:如果面试者逻辑清晰,条例分明。说明具有工作经验。
3.让面试者讲述他工作中解决的一个技术难题或者业务问题。
重点:如果面试者逻辑清晰,条例分明。说明具有工作经验。
4.基础技术篇
5.String 是最基本的数据类型吗?
答:不是。Java 中的基本数据类型只有 8 个:byte、short、int、long、oat、double、char、boolean
6.int 和 Integer 有什么区别?
答:为了编程的方便还是 java 引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,
Java 为每一个基本数据类型都引入了对应的包装类型(wrapper class),int 的包装类就是 Integer,从 Java
5 开始引入了自动装箱/拆箱机制,使得二者可以相互转换。
Java 为每个原始类型提供了包装类型:
- 原始类型: boolean,char,byte,short,int,long,oat,double
- 包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double
7.解释内存中的栈(stack)、堆(heap)
答:通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用
内存中的栈空间;而通过 new 关键字和构造器创建的对象放在堆空间;程序中的字面量(literal)如直接
书写的 100、”hello”和常量都是放在静态区中。栈空间操作起来最快但是栈很小,通常大量的对象都是放
在堆空间,理论上整个内存没有被其他进程使用的空间甚至硬盘上的虚拟内存都可以被当成堆空间来使用。
(能答出“线程”加分:栈是属于某一个线程的,保存有当前线程方法的执行过程,以及方法中声明的变量。
堆是所有线程共享的,主要保存各种对象。)
8.switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String,是否能
作用在枚举上?
答:在 Java 5 以前,switch(expr)中,expr 只能是 byte、short、char、int。从 Java 5 开始,Java 中引入
了枚举类型,expr 也可以是 enum 类型,从 Java 7 开始,expr 还可以是字符串(String),但是长整型
(long)在目前所有的版本中都是不可以的。
数组有没有 length()方法?String 有没有 length()方法?
答:数组没有 length()方法,有 length 的属性。String 有 length()方法。JavaScript 中,获得字符串的长
度是通过 length 属性得到的,这一点容易和 Java 混淆。