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(要拼接的字符串)   

  • 相关阅读:
    CodeForces 288A Polo the Penguin and Strings (水题)
    CodeForces 289B Polo the Penguin and Matrix (数学,中位数)
    CodeForces 289A Polo the Penguin and Segments (水题)
    CodeForces 540C Ice Cave (BFS)
    网站后台模板
    雅图CAD
    mbps
    WCF学习-协议绑定
    数据库建表经验总结
    资源位置
  • 原文地址:https://www.cnblogs.com/helloaugust/p/11561387.html
Copyright © 2011-2022 走看看