转自:http://java.chinaitlab.com/base/836044.html public class BB{ public int i; } public class PP{ public static void f(final BB ref) //我的理解是无法修改ref { ; } public static void main(String args[]){ BB x = new BB(); f(x); System.out.println(x.i); //但事实上是修改…
一:修饰成员变量 关于被final修饰的成员属性(常量)初始化赋值问题分为以下两种情况: 1.被static修饰符修饰:可以通过两种途径进行初始化赋值 ① 在常量被定义时进行初始化赋值 ② 在静态代码块中进行初始化赋值 2.不被static修饰符修饰:可以通过三种途径进行初始化赋值 ① 在常量被定义时进行初始化赋值 ② 在代码块中进行初始化赋值 ③ 在构造函数中进行初始化赋值 二:修饰参数 当final修饰函数的参数时,该参数就只能被使用而无法被更改 三:修饰方法 使用final修饰函数的原因:…
案发现场 经常听说final修饰的字段是常量不能改变的他的值,但是以外发现 Integer.java源码中的字段“value”是final,但是可以通过反射改变他的值. public final class Integer extends Number implements Comparable<Integer> { /** * The value of the {@code Integer}. * * @serial */ private final int value; public In…