加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

探秘Java中的String、StringBuilder以及StringBuffer

发布时间:2020-12-13 21:14:13 所属栏目:PHP教程 来源:网络整理
导读:探秘Java中String、StringBuilder和StringBuffer 相信String这个类是Java中使用得最频繁的类之1,并且又是各大公司面试喜欢问到的地方,今天就来和大家1起学习1下String、StringBuilder和StringBuffer这几个类,分析它们的异同点和了解各个类适用的场景。下

探秘Java中String、StringBuilder和StringBuffer

  相信String这个类是Java中使用得最频繁的类之1,并且又是各大公司面试喜欢问到的地方,今天就来和大家1起学习1下String、StringBuilder和StringBuffer这几个类,分析它们的异同点和了解各个类适用的场景。下面是本文的目录大纲:

  1.你了解String类吗?

  2.深入理解String、StringBuffer、StringBuilder

  3.不同场景下3个类的性能测试

  4.常见的关于String、StringBuffer的面试题(辟谣网上流传的1些歪曲String类的说法)

  若有不正的地方,请多多体谅和指正,不胜感激。

  请尊重作者劳动成果,转载请标明转载地址:

   http://www.cnblogs.com/dolphin0520/p/3778589.html

1.你了解String类吗?

  想要了解1个类,最好的办法就是看这个类的实现源代码,String类的实现在

  jdk1.6.0_14srcjavalangString.java   文件中。

  打开这个类文件就会发现String类是被final修饰的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public final class String
    implements java.io.Serializable,Comparable<String>,CharSequence
{
    /** The value is used for character storage. */
private char value[];
 
/** The offset is the first index of the storage that is used. */
int offset;
 
/** The count is the number of characters in the String. */
count;
 
/** Cache the hash code for the string */
hash; // Default to 0
 
/** use serialVersionUID from JDK 1.0.2 for interoperability */
static long serialVersionUID = ⑹849794470754667710L;
 
    ......
 
}

  从上面可以看出几点:

  1)String类是final类,也即意味着String类不能被继承,并且它的成员方法都默许为final方法。在Java中,被final修饰的类是不允许被继承的,并且该类中的成员方法都默许为final方法。在初期的JVM实现版本中,被final修饰的方法会被转为内嵌调用以提升履行效力。而从Java SE5/6开始,就渐渐摈弃这类方式了。因此在现在的Java SE版本中,不需要斟酌用final去提升方法调用效力。只有在肯定不想让该方法被覆盖时,才将方法设置为final。

  2)上面罗列出了String类中所有的成员属性,从上面可以看出String类实际上是通过char数组来保存字符串的。

  下面再继续看String类的1些方法实现:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读