写在前面的话
以下内容来自讲师笔记:
回答面试题的技巧:
大多数面试题可以采用总--分--总的思路来实现。
●总:
■总体说一下面试问题的核心内容,一语中的,直指核心。
■说明在分的阶段要阐述哪些内容,让面试官知道你接下来要说什么。
●分:
■具体从细节上来说明,注意条理性。
■一定要有自己的亮点,主要在此阶段体现。
●总:
■或应用:在实际开发中的应用,适用场合(这应该尽量是每个问题的落脚点)。
■或总结:对前面讲的内容的总结(结案陈词)。
■或强调:需要特别注意的问题,容易犯的错误。
■或扩展(达人专用):相关联的技能点,新版本的变化(需要是你熟悉的领域,引导面试官来问的技能点)。
●关键词:
■条理清晰:总--分--总其实就是要保证条理清晰,要注意铺垫和过渡。比如:“一个类的成员变量包括:变量、方法、构造方法、代码块和内部类,static可以修饰除了构造方法以外的所有成员。接下来我依次进行说明。”
■内容全面也要有重点:回答 || 和 | 的区别的时候,不要局限于逻辑运算符,| 还可以作位运算符;回答 public、protected、default、private修饰符的时候不仅要说修饰成员,还要说只有 public 和 default 可以来修饰类。
■不失简洁:内容全面,重点内容进行重点说明,控制好节奏和时间,可以在双方交谈的过程中逐步展开,不要一口气说完。
■一定要有亮点:每个题目都要专门设计亮点,面试官听了亮点会对你有深刻的印象,有助于脱颖而出。亮点可以是生活案例、可以是深度技术细节、还可以是在实际中的应用。
示例:
static关键字的作用
●总
1.static是Java中的一个关键字,单词本身含义是“静态的”。
2.static可以修饰成员,被修饰的成员成为静态成员,是属于某个类的;而不使用static修饰的成员成为实例成员,是属于类的每个对象的。
3.一个类的成员变量包括变量、方法、构造方法、代码块和内部类,static可以修饰除了构造方法以外的所有成员。
●分
1.static修饰变量
static属性属于这个类所有,即由该类创建的所有对象共享一个static属性。
static变量和非static变量都是成员变量,这是共同点,区别主要有:
1)在内存中的份数不同
不管有多少个对象,static变量只有一份。对于每个对象,实例变量都会有单独的一份。
比如在公司中的一个部门内部,每个员工可以有一个自己的水杯,但是大家可以共用一个饮水,水杯就是非static变量,饮水机就是static变量。
2)在内存中存放的位置不同
静态变量存放在方法区中,实例变量存放在堆存中。
3)访问的方式不同
实例变量:对象名打点调变量名。
静态变量:类名打点调变量名(当然也可以使用对象名.变量名(不推荐))。
4)在内存中分配空间的时间不同
实例变量:创建对象的时候分配空间。
静态变量:类第一次加载的时候分配空间。
2.static修饰方法
可以通过对象名.方法名和类名.方法名两种方式来访问。
3.static修饰代码块
当类第一次被加载的时候(可能是调用static属性和方法,或者创建其对象)执行静态代码块,且被执行一次,主要作用是实现static属性的初始化。
4.static修饰内部类
属于整个外部类,而不是属于外部类的每个对象。不能访问外部类的非静态成员(变量和或方法),可以访问外部类的静态成员。
5.静态导入
import static java.lang.Math.*;非导入可和接口,而是导入类和接口的静态成员。
●总
1.Java中Math、Arrays、Collections等工具类中大量的static属性和方法,通过类名即可直接调用,Integer类中有一个静态内部类IntegerCache。
2.Class.forName(“com.mysql.jdbc.Driver”)的作用其实就是第一次加载类的时候调用该类的静态代码块实现驱动注册。
3.在JDK1.7之前接口中是不能出现static方法的,在1.8之后则可以,但不能是抽象方法。
4.局部变量不可以使用static修饰。
扩展性内容得有深度才能提,不然就是给自己挖坑。