社区
Java SE
帖子详情
如何保证引用到的对象是final的?
Andy84920
2007-01-17 10:23:48
final StringBuffer sb = new StringBuffer();
final StringBuffer tmp = new StringBuffer();
sb = tmp; //error
sb.append(tmp); //ok
可以看到sb本身是final的,但sb所引用到的对象是可以进行append操作的,是可以改变的。如何保证sb引用到的对象是final的呢?
...全文
321
4
打赏
收藏
如何保证引用到的对象是final的?
final StringBuffer sb = new StringBuffer(); final StringBuffer tmp = new StringBuffer(); sb = tmp; //error sb.append(tmp); //ok 可以看到sb本身是final的,但sb所引用到的对象是可以进行append操作的,是可以改变的。如何保证sb引用到的对象是final的呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xoele
2007-01-18
打赏
举报
回复
这个也是没有办法的啊 ,因为 Java 里面所有东西都是指针,
要不你自己写个类,只读的,不让别人改,那不就是彻底的final了吗
luyang1016
2007-01-18
打赏
举报
回复
再补充以下:
public static final String str = "abc";
str = "def"; // 出错。
str 就是final的。
先在栈中创建一个对String类的对象引用变量str,然后查找栈中有没有存放"abc",如果没有,则将"abc"存放进栈,并令str指向”abc”,
如果已经有”abc” 则直接令str指向“abc”。
接着又按照刚才的把"def"放进栈,将str指向"def".
但是由于 str 是 final, 指针变了, 所以错了
luyang1016
2007-01-18
打赏
举报
回复
相当于指针不能变,但指针所指的内容可变
===================================
精辟
believefym
2007-01-17
打赏
举报
回复
这个能保证?
final是说sb = tmp是不允许的,不是说引用的对象不可改变,相当于指针不能变,但指针所指的内容可变
被
final
修饰的变量到底能不能被修改
本文探讨了Java中
final
关键字的使用,包括对类、方法和变量的修饰。
final
修饰的类不可被继承,方法不可被重写,变量不可被重新赋值。然而,当
final
修饰
对象
引用
时,虽然
引用
不可变,但
对象
的属性可以修改。通过举例说明,解释了
final
修饰的
对象
引用
如何在不改变
引用
本身的情况下修改
对象
属性,强调了
final
关键字
保证
的是
引用
的稳定性而非
对象
属性的不变性。
final
修饰基本类型变量和
引用
变量区别
本文详细解释了
final
关键字在Java中的作用,特别是在修饰
引用
类型变量时的行为。通过代码示例展示了如何使用
final
修饰符来
保证
对象
引用
不变,同时指出可以通过方法调用来修改其指向的
对象
的状态。
被
final
修饰的
对象
属性是否可以修改(转载)
final
可以修饰类、方法和变量。
final
修饰的类不可被继承,方法不能被重写,变量不可被修改。然而,
final
修饰的
对象
引用
可以指向不变的
对象
,但
对象
的属性仍可修改。这是因为
final
保证
的是
引用
的不变,而非
对象
内容的不变。文章通过示例解释了这一现象,并涉及到Java虚拟机的栈帧和局部变量表的概念。
java 安全发布
对象
_关于java:Volatile
保证
可变
对象
的安全发布?
Java中,安全发布
对象
需要使
对象
的
引用
和状态对其他线程可见。可以通过静态初始化器、volatile、
final
字段或锁来实现。volatile
保证
引用
可见性但不
保证
构造同步,而
final
字段能确保
对象
正确初始化后的可见性。volatile写操作与后续读操作是同步的,确保了
对象
的正确构造。对于volatile数组,仅发布数组
引用
,不
保证
数组内容的安全发布。
Java 中的
final
关键字是否能
保证
变量的可见性?
本文围绕Java中
final
关键字是否能
保证
变量的可见性展开分析。
final
主要确保变量不可变,在
对象
构造完成后能
保证
字段初始值对所有线程可见,但不
保证
引用
类型
对象
内部状态后续修改及构造期间未完成状态的可见性。需结合volatile和锁等解决并发可见性问题。
Java SE
62,622
社区成员
307,256
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章