好文档 - 专业文书写作范文服务资料分享网站

Java面试宝典

天下 分享 时间: 加入收藏 我要投稿 点赞

Java面试宝典:

文中的部分例子和定义来自作者十星推荐,每个学java人都看过的

《Thinking in Java》,推荐大家看英文原版,会很大程度加深对Java的理解。另外,问题提纲的总结来自作者最近研读的机械工业出版社的《Java程序员面试笔试宝典》。文章主干,分析解释部分全部由作者手打,标明网上资料忘记出处的,希望细心人指点。

1.static的作用

static,顾名思义,静态。当类中的成员变量或方法声明为static时,无需为此类创建参照,便可对其进行操作。即,不依赖该类的实例,同时也被该类的实例所共享。下面通过两种static的使用情况进行分析:

static变量

同为成员变量,与实例变量每创建一次便为其分配一次内存不同,JVM只为static变量分配一次内存,并在加载类的过程中完成该操作。可用类名直接访问此变量或通过实例调用,前者是被推荐的,因为这样不仅强调了该变量的static属性,而且也在某种程度上使编译器更容易去进行优化。所以在对象之间有共享值或为了方便访问某种变量时一般需要使用static 变量。

static方法

对于static方法,也同时可以通过类名调用或实例调用。因此需要注意的是,static方法中不能用this或super关键字,不能直接访问此方法所在类的实例变量或实例方法,只能访问该类的静态成员变量和方法。因为实例变量和方法有特定的对象,而静态方法占据一个特定的数据区域。

举例:

Class StaticTest{

static int i = 47;

int j = 10;

}

Class Incrementable{

static void increment(){

//通过类名直接对i进行操作

StaticTest.i++;

//此处无法对j进行访问,因为其为实例变量

}

}

1

2

3

4

5

6

7

8

9

10

11

12

2.final的作用

final,在Java中通常解释为不可变的,也就是说,final关键字是用来防止变化。一般我们在两种情况下使用:设计(design)或效率(efficiency)。下面分情况来分析final关键字的作用:

final数据——声明类中属性或变量

每种编程语言都有一种声明常量的方法,java中便是final。基本类型(Primitive Type)和引用类型(Object Reference Type)的属性在声明final后,里面存放的值都不可再改变。但有所不同的是,在基本类型中,这个值是实在的,比如100,”java”;在引用类型中存放的是地址,所以final只是使其地址不可改变,这个地址所指的对象、数组皆是可以改变的。需要注意的是,static final的基本变量命名法,全大写字母,单词之间用”_”(underscore)连接。举例:

public static final int VALUE_ONE = 9;

1

final方法

2lz3v80ylm83uyx9681999g5n13tny00uri
领取福利

微信扫码领取福利

微信扫码分享