A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宗士为 中级黑马   /  2012-5-21 09:02  /  1894 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当我们使用final关键字修饰一个字符串变量时
是字符串的引用不能变
还是说字符串引用的内容不能变
有点乱  求解

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

7 个回复

倒序浏览
final可以用来修饰变量:被final修饰的变量为常量,值不能被修改。
回复 使用道具 举报
final可以修饰类,函数,变量
修饰类时:修饰类为最终类,任何类不能继承它.
修改函数时:该方法在类里是最终方法,继承它的方法不能去重写它.
修饰变量时:被修饰的变量是常量或者叫终态变量,一旦初始化后就不能再改变变量的值.
回复 使用道具 举报
用final关键字修饰一个字符串变量,是字符串的引用不能变。
如:final String str=new String("abc");
    这里的str指向一个字符串对象地址,被final修饰后,str的值就不能被改变了,
    str=new String("def");这就会报错,提示str不能被修改。
    但str.append("xxx");是可以的,对象的值是可变的

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
final 对于常量来说,意味着值不能改变,例如 final int i=100。这个i的值永远都是100。但是对于变量来说又不一样,只是标识这个引用不可被改变,例如 final File f=new File("c:\\test.txt");那么这个f一定是不能被改变的,如果f本身有方法修改其中的成员变量,例如是否可读,是允许修改的。形象的比喻:一个女子定义了一个final的老公,这个老公的职业和收入都是允许改变的,只是这个女人不会换老公而已。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
final的特点:
1.修饰变量(成员变量,局部变量,静态变量)函数,类;
2.修饰的类不可以被继承;
3.修饰的函数不可以被覆盖;
4,修饰的变量是一个常量,只能赋值一次;
*5。内部类只能访问局部的final修饰变量;
      例题就不说了    特点基本就这几个;
回复 使用道具 举报
当我们使用final关键字修饰一个字符串变量时,是字符串的引用不能变,只能指向那个字符串对象。
不过字符串对象本身也是final修饰,也是不可以变的
回复 使用道具 举报
final关键字修饰一个变量时,是引用变量不能变,引用变量所指向的对象中的内容还是可以改变的
但是字符串初始化之后也是不能变的,只能改变字符串引用的指向
public class Mypra {
public static void main(String[] args) {
  final StringBuffer sb = new StringBuffer("hello java");
// sb = new StringBuffer("");//编译失败
  //The final local variable sb cannot be assigned.
  //It must be blank and not using a compound assignment
  sb.append("hello word"); //通过编译:
  System.out.println(sb);
}
}

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马