社区
Java SE
帖子详情
final关键字,想请问一下下面的为什么是TRUE
不 羡 仙
2019-07-09 10:18:22
final修饰成员变量必须显示初始化,可是这跟s6有关系吗?
...全文
109
3
打赏
收藏
final关键字,想请问一下下面的为什么是TRUE
final修饰成员变量必须显示初始化,可是这跟s6有关系吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq_39936465
2019-07-11
打赏
举报
回复
引用 楼主 qq_42963930 的回复:
final修饰成员变量必须显示初始化,可是这跟s6有关系吗?
final会吧数据放入常量池,让后传递给变量的是常量池中的地址,所以运算也会在常量池中进行,相当于进行了基本类型的运算。基本类型可以直接用==比较,常量池中值相等必定地址相等。而普通的string变量被赋予相当于new ,所以普通的string无法用==来比较。
toward_south
2019-07-10
打赏
举报
回复
final指向引用数据也就是String类的时候,他指向变量的地址是不会改变的。 == 对于数字来说是比较其大小,而对对象来说,比较的是引用地址。 像 “hello”,"world"这些字符串存放在常量池里面,当s4,s5声明的时候,他会先去常量池里面找,找不到才在常量池里创建。因为之前s1,s2创建的时候已经声明,所以s4,s5直接获取到常量池中的地址。如果你比较下会发现s1 == s4, s2 == s5是true。这和final 修饰没多大关系。 同时s3进行+字符串的拼接,本质是调用了StringBulider这个类的append方法 而s6再次进行拼接的时候,因为s4,s5被final修饰,s6同时也被默认声明为final 修饰,s4,s5拼接的结果是helloworld ,所以将直接找到s的地址,返回给s6,这时候s6 和s的地址是相同的,所以==比较的时候就返回true了。 以上观点只是我的个人理解和猜想
京都盖饭小白领
2019-07-10
打赏
举报
回复
的确跟final有关系,不加final就是false,mark
微服务系列第七季-Java面向对象中的继承
第七季主要是给大家介绍
一下
Java面向对象中的继承,包括:继承的概念、为什么要继承、继承的类型及特性、extends
关键字
、
final
关键字
、implements
关键字
、super和this
关键字
、子类中如何调用父类中的有参、无参构造...
Java中的
final
关键字
匿名内部类中使用的外部局部变量为什么只能是
final
变量?5.关于
final
参数的问题
final
关键字
,学过java的
想
必都不陌生,在使用匿名内部类的时候可能会经常用到
final
关键字
。另外,Java中的String类就是一个
final
类,...
final
关键字
的用法
谈到
final
关键字
,
想
必很多人都不陌生,在使用匿名...
下面
就从这三个方面来了解
一下
final
关键字
的基本用法。 1、修饰类 当用
final
修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继..
深入理解
final
关键字
(详解)
提及
final
关键字
都会
想
到一个常见的面试题就是:
final
、
final
ly、
final
ize区别 在这里我们来简单回忆
一下
这三者的区别,
final
:
Final
用于修饰类、成员变量和成员方法。
final
修饰的类,不能被继承(String、...
Java中的
final
关键字
的用法
下面
就从这三个方面来了解
一下
final
关键字
的基本用法。1.修饰类当用
final
修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用
final
进行修饰。
final
类中的成员变量可以根据需要...
Java SE
62,616
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章