java基础之final关键字

与final关键字相关的笔试题面试题也是一道必考题。而且对于final的实际应用非常广泛,在代码设计的时候,如果对此不够足够掌握,可能就会很难排查与此相关的异常。

final的理论知识如下:

final类型的成员变量初始化值:

1、声明时候直接赋值

2、构造方法中赋值,如果一个类中有多个构造方法,就要保证在每个构造方法中都要完成对final类型变量的初始化工作

3、静态final成员变量必须在声明时赋值,且不能在构造方法中赋值

4、final成员变量指的是引用不能改变,即该变量的引用不能在指向其他的对象,但是对象的内容是可以改变的,比如stringbuffer可以通过append、remove等对该对象的内容作出改变。

5、一个类的修饰符不可以同时是abstract和final

abstract类需要通过子类的继承来使用,而final则是不可继承,相互矛盾

6、为什么对于publicfinal类型的成员变量,一般都会加上static呢?

因为可以节省内存,static类型的,那么所有的对象都只有一个变量,如果是非static的,那么每一个对象都要有一个变量,而这个变量是不可改变的。

代码示例:(可将注释掉的代码放开运行,看看效果等)

/**
 * 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;
}

java基础之final关键字,码迷,mamicode.com

时间: 2024-10-10 16:56:35

java基础之final关键字的相关文章

【Java基础】final关键字总结

Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例.final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的. final关键字的含义? final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如

Java基础(三)-final关键字分析

今天来谈谈final关键字的作用, 虽然有很多博文关于final进行了很深的研究,但还是要去记录下谈谈自己的见解加深下印象.下面直接进入主题: 一.final关键字的作用 1.被final修饰的类不能被继承. 这一点应该很多人都知道也遇到过,经典案例就是java.lang.String类 还有一些常见的类也是被final所修饰的,如下: 基本类型对应的包装类型(如java.lang.Integer.java.lang.Long等).字符相关类(java.lang.StringBuilder.ja

二、Java基础之final关键字

final变量: final修饰的变量(成员变量或局部变量),即常量,只能赋值一次,不能再次修改. final成员变量要么在声明时赋值,要么在构造函数里赋值. 如果变量为引用类型,变量的引用不能修改,但是引用指向的内容是可以被修改的. final方法: final修饰的方法不能被子类重写. final类: final修饰的类不能被继承. 最典型的例子:String类.因为String是immutable的,所以不能允许其他类继承String,否则其子类会轻易的将其改为mutable.详细参考:h

java 基础 1 final关键字

1. final关键字 数据:声明数据为常量,对于基本类型final使数值不变,对于引用类型final使引用不变,但引用所指向的值是可以改变的,例如       final StringBuffer sb = new StringBuffer("sb");  sb.append(1); 此时打印sb的值为sb1; 方法:声明方法不能被子类覆盖,private方法隐式地被指定为final,如果在子类中定义的方法与基类中private方法签名相同,此时                  

Java基础001:final关键字、String字符串的相加问题

1.final关键字的作用 1.1.final修饰的类:不能被其他类继承:1.2.final修饰的方法:不能被子类重写1.3.final修饰的变量:分两种情况,引用变量.基本类型变量,如下: final修饰的引用变量:一旦给其赋值,就不能被再次赋值 final String s = "32"; //引用变量 s = "1"; /** 报错:The final local variable s cannot be assigned. It must be blank

Java基础语法(一)---关键字、常量、变量、运算符

Java基础语法(一)---关键字.常量.变量.运算符一.关键字 定义:被Java赋予了特殊含义的单词. 特点:体现上都是英文小写. 1. 用于定义数据类型的关键字 基本数据类型: 整数类型: byte(1字节,最大值127) short(2字节,最大值为2^15-1) int(4字节,最大值为2^31-1) long(8字节,最大值为2^63-1) 浮点类型: float (单精度实数在内存中占32bit 有效数字为6~7位) double(双精度实数占内存单元为64bit 有效数字为15~1

浅析Java中的final关键字

原文出处: 海子 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字

转载:浅析Java中的final关键字

文章转自:http://www.cnblogs.com/dolphin0520/p/3736238.html 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cn

浅析Java中的final关键字(转载)

自http://www.cnblogs.com/dolphin0520/p/3736238.html转载 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字的基本用法. 1.修饰类 当用final修饰一个类时,表明这个类不能被继承.也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰.final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方