zoukankan      html  css  js  c++  java
  • [软件构造] Java中的字符串

    Java中的字符串主要分为三类:String,StringBuilder,StringBuffer
    String在底层是用char数组来实现的,是一个不可变类,每次创建或者链接时都是新分配一个。
    而StringBuilder和StringBuffer都是继承自AbstractStringBuilder类,是可变类,也是通过char数组实现的。

    由于不可变类和可变类的区别,StringBuilder在效率上要比String快很多倍。
    同时,String 类有一个对应的 String 池,也就是 String pool。每一个内容相同的字符串对象都对应于一个 pool 里的对象。String s = "xxx" 这种形式,如果缓存池中没有,则在缓存池和堆里分别创建一个,然后让s指向缓冲池中的那个。如果有,就让它指向缓存池中的那个,不在堆中新建对象。String s = new String("xxx")这种形式,一定会在堆中新建一个,如果缓存池中没有,就在缓冲池里创建一个,但是指向的仍然是堆中那个。同样的,在+连接时也是在缓冲池里找。

  • 相关阅读:
    海选女主角
    发工资咯:)
    绝对值排序
    数列有序!
    母牛的故事
    一文看懂外汇风险准备金率调整为 20%的含义
    1080i减少带宽
    为什么要采用隔行扫描?
    720P、1080P、4K是什么意思?
    VBR一次編碼 v.s 二次編碼(VBR 1-pass vs 2-pass)
  • 原文地址:https://www.cnblogs.com/mrha/p/14979200.html
Copyright © 2011-2022 走看看