zoukankan      html  css  js  c++  java
  • 面试连环炮系列(二十三): StringBuffer与StringBuild的区别

    1. StringBuffer与StringBuild的区别
      频繁修改字符串时,建议使用StringBuffer和StringBuilder类。StringBuilder相较于StringBuffer有速度优势,要求线程安全的情况下,必须使用StringBuffer类。

    2. 为什么拼接String不推荐用加号
      String的值是不可变的,每次对String的操作都会生成新的String对象,不仅效率低下,而且消耗大量内存空间。

    3. 为什么String是不可变的

      1. String类内部所有的字段都是final修饰的。
      2. String类内部所有的字段都是私有的。
      3. String类不能够被继承和扩展。
    4. 有什么办法能够改变String
      可以通过反射来改变String

    5. String设计成不可变有什么好处

      1. 安全需要:在JDK中Java的类装载机制通过传递的参数(通常是类名)加载类,这些类名在类路径下。假设String是可变的,攻击者可能通过自定义类装载机制损害应用。
      2. 性能需要:不可变对象才可以创建常量池,提高JVM性能。
      3. 线程安全:当多线程访问时,不可变对象是线程安全的。

    参考(部分摘抄的文字版权属于原作者):

    https://blog.csdn.net/u011702479/article/details/82262823
    https://www.cnblogs.com/wuchanming/p/9201103.html

  • 相关阅读:
    用户管理
    开机、重启、用户登录注销
    网络请求的封装
    Vuex
    Promise
    Vue Router(二)
    Vue Router(一)
    Vue CLI
    前端模块化-导入导出
    插槽
  • 原文地址:https://www.cnblogs.com/xiaoyangjia/p/11833857.html
Copyright © 2011-2022 走看看