zoukankan      html  css  js  c++  java
  • ------------------字符串总结-------------------

    1.字符串的初始化方式:

    常量方式  String xx = "aa" ;

    对象方式  String xx  =  new  String ("aa") ;

    2.如何理解字符串的不可变性?

    从内存角度解释  :当你给一个字符串重新赋值之后,老值并没有在内存中销毁,而是重新开辟一块空间存储新值

    从源代码角度解释 :  String类 final  其中包含的字符数组也是 final

    String被设计成不可变的主要目的是为了安全和高效

    3.要注意常量初始化和对象初始化方式的区别?

    首先对于String a="abc"这种初始化方式,计算机会在栈内存中分配一段存储地址,然后将“abc”存入,并且在栈中保存首地址(句柄)a,
    而String b= new String("abc");这种初始化方式的话,计算机首先是在堆内存中分配存储地址,新建一个String对象,将“abc”存入堆内存,
    并且在栈内存中产生一个首地址“b”指向该堆存储内存; 所以当调用a时,系统会先在栈中寻找是否存在a指向,若存在直接调用,而调用b时每一次都会在堆内存中新建对象,然后改变其首地址的指向

    4.字符串的常用方法

    StringBuilder    StringBuffer    String 区别  ?

    (1)每次String拼接小字符串,每次拼接都会生成一个String对象

    而StringBuilder    StringBuffer 都是在原有对象直接拼接字符串

    (2)StringBuilder线程非安全,拼接字符串效率高

    (3)如果StringBuilder    StringBuffer 被直接定义在某个方法内部,那就是线程安全的,直接使用StringBuilder即可

    (4)如果StringBuilder    StringBuffer 被直接定义在某个方法外部,那就是线程非安全的,直接使用StringBuffer即可

    使用方式:StringBuilder .append(要拼接的字符串)   

  • 相关阅读:
    数据结构与算法简记--拓扑排序
    数据结构与算法简记--redis有序集合数据结构-跳表
    数据结构与算法简记--动态规划实战
    数据结构与算法简记--动态规划理论
    数据结构与算法简记--动态规划初识
    数据结构与算法简记--回溯算法
    数据结构与算法简记--分治算法
    数据结构与算法简记--贪心算法
    数据结构与算法简记--搜索算法
    数据结构与算法简记--图
  • 原文地址:https://www.cnblogs.com/helloaugust/p/11561387.html
Copyright © 2011-2022 走看看