码迷,mamicode.com
首页 > 编程语言 > 详细

java中final的理解

时间:2014-08-09 02:26:46      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:java   ar   new   对象   函数   public   print   sp   

final修饰变量表示变量初始化后就不能再改变。

一、对于基础类型来说,用final修饰后其值不可以改变。

1.

final int a;

a = 5;

2.final int a = 5;

二、对于引用类型来说,用final修饰后其引用的对象不可改变,但可以改变对象的内容。

java中用final修饰函数的参数,只是函数体内不能修改这个形参所指向的对象,但是仍能修改对象内容

void  f ( final String str){

  str = new String();//不允许

  str.toLowerCase();//允许

}

三、final 与 static final

public class T {

  final int a = new Random(10).nextInt();

  static final int b = new Random(10).nextInt();

  public static void main(String[] args) {

    T t1 = new T();

    T t2 = new T();

    System.out.println(t1.a);

    System.out.println(t1.b);

    System.out.println(t2.a);

    System.out.println(t2.b);

  }

}

结果:

t1.a != t2.a;

t1.b == t2.b;

四、例子

1、

final int i = 0;

i++;//允许

2、

final String s = "abc";

s.toLowerCase();//允许

3、

final int[] a = {1,2,3};

a[1] = 1;//允许

a = new int[5];//不允许

 

java中final的理解,布布扣,bubuko.com

java中final的理解

标签:java   ar   new   对象   函数   public   print   sp   

原文地址:http://www.cnblogs.com/yaolin/p/3900415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!