留学问答

为什么jdk中把String类设计成final的

提问:留学说   分类:精选问答
优质回答

留学说

有一个解释就是当定义String类型的静态字段(也成类字段),可以用静态变量(非final)代替常量(final)加快程序速度。

反之,对于原始数据类型,例如int,也成立。例如,你可能创建一个如下的String对象:private static final String x = "example";对于这个静态常量(由final关键字标识),你使用常量的每个时候都会创建一个临时的String对象。在字节代码中,编译器去掉”x”,代替它的是字符串“example”,以致每次引用”x”时VM都会进行一次哈希表查询。相比之下,度于静态变量(非final关键字),字符串只创建一次。仅当初始化“x”时,VM才进行哈希表查询。还有另一个解释:带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String。为String类指定final防止了人们覆盖length()方法。另外,如果指定一个类为final,则该类所有的方法都是final。Java编译器会寻找机会内联(inline)所有的final方法(这和具体的编译器实现有关)。此举能够使性能平均提高50%。

当然了,看完上述的分析觉得还不够尽兴的话,也可以再看看大家大盈之家2.0养老年金险的收益评测,再下投保结论:

全网同号:留学查一查,欢迎搜索!


花更少的钱,买对的留学

为你寻找性价比最高的产品

热点问题

最新问题

留学问题标签

美国留学中介
出国留学申请
加拿大留学中介
澳洲留学中介
英国留学中介

请关注留学查一查公众号
咨询客服为您进行顾问预约登记


点击微信 -> 发现 -> 扫一扫
扫描上方二维码进行关注