zoukankan      html  css  js  c++  java
  • 面试题:java中String为什么要设置成final

    1.不可改变---执行效率高

    2.因为String这个对象基本是被所有的类对象都会使用的到了,如果可以被复写,就会很乱套,比如map的key ,如果是一个string为key的话,String如果可以改变的话,你想想后果

    3.执行效率可以这么解释,面向对象有一个多态的性质,如果可以改变,就可以被复写,子类如果复写了某个方法,虚函数表就被用上了;如果是final型的,jvm就直接去用了,根本不用去虚函数表里面找

               ----------只要声明成final ,JVM才不用对相关方法在虚函数表中查询,而直接定位到string类的相关方法上,提高了执行效率。基础类以保证执行效率为第一要素。

    4.从设计思想来解释这个  为什么要弄成final类型的

      语言本身就是一种设计。任何设计思想都是会遵守一些既定的规则,这样才能体现一致性。无论是人类语言,还是机器语言,都有它们的约束规则。
         Long, Double, Integer 之类的全都是final的  程序的基石是不可被改变的
    5.也可以从安全的角度来解释定义成final,
    6.String被广泛使用,避免多态的影响,或者他提供的函数已经非常的丰富了,你再去扩展有点多余
     
  • 相关阅读:
    Docker的使用
    Django常见问题
    Linux系统使用
    Nginx
    Redis
    MySQL基础、主从复制、优化
    Python常见的问题
    Python基础知识
    Vue的使用
    python监控tomcat日记文件
  • 原文地址:https://www.cnblogs.com/wust221/p/5396578.html
Copyright © 2011-2022 走看看