java基础之final关键字
2020-11-25 00:24
标签:style blog java 使用 2014 re 与final关键字相关的笔试题面试题也是一道必考题。而且对于final的实际应用非常广泛,在代码设计的时候,如果对此不够足够掌握,可能就会很难排查与此相关的异常。 final的理论知识如下: final类型的成员变量初始化值: 1、声明时候直接赋值 2、构造方法中赋值,如果一个类中有多个构造方法,就要保证在每个构造方法中都要完成对final类型变量的初始化工作 3、静态final成员变量必须在声明时赋值,且不能在构造方法中赋值 4、final成员变量指的是引用不能改变,即该变量的引用不能在指向其他的对象,但是对象的内容是可以改变的,比如stringbuffer可以通过append、remove等对该对象的内容作出改变。 5、一个类的修饰符不可以同时是abstract和final abstract类需要通过子类的继承来使用,而final则是不可继承,相互矛盾 6、为什么对于publicfinal类型的成员变量,一般都会加上static呢? 因为可以节省内存,static类型的,那么所有的对象都只有一个变量,如果是非static的,那么每一个对象都要有一个变量,而这个变量是不可改变的。 代码示例:(可将注释掉的代码放开运行,看看效果等)
java基础之final关键字,搜素材,soscw.com java基础之final关键字 标签:style blog java 使用 2014 re 原文地址:http://blog.csdn.net/sundenskyqq/article/details/24813853/**
* author Ding Chengyun
* 2014-2-23
*/
package test;
/**
* @author Ding Chengyun
* 2014-2-23
*/
public class FinalTest {
private static final int a = 1;
// private final int a = 1;
private String name;
private final StringBuffer sb = new StringBuffer();
private final Fi fi= new Fi();
private final Integer i = new Integer(3);
public FinalTest() {
// a = 3;
}
public FinalTest(String name) {
// a = 3;
this.name = name;
}
public static void main(String[] args) {
FinalTest ft = new FinalTest();
FinalTest f = new FinalTest("hello");
System.out.println(ft.a);
System.out.println(f.a);
ft.sb.append("aa");
ft.fi.str = "abc";
System.out.println(ft.fi.str);
}
}
class Fi {
public String str;
}