美文网首页
java String特性

java String特性

作者: 一只想飞的小蜗牛 | 来源:发表于2019-06-02 16:47 被阅读0次

1 特点

a.字符串的内容永不可变,底层时被final修饰的数组 private final byte[] value;

如果要进行字符串的相加,内存中就会有多个字符串,占用的空间就多,效率低

例如

String str ="a"+"b"+"c";

"a","b","c" 占用三个空间

"a"+"b" 占用一个空间

"ab"+"c"  占用一个空间

这时候可以用StringBuilder类对字符进行操作,它是字符缓冲区,可以提高字符串的操作效率,StringBuilder底层也是一个数组,但是没有被final修饰,可以改变长度,而且操作占用的空间少,始终是一个数组,如果超出了StringBuilder的容量,会自动的扩容,其初始容量为16个字符


StringBuilder 介绍

两种创建方法

append()返回的是self,所以两者的地址相等

跟String的相互转化


b.因为不可变的特点 所以字符串可以共享使用;

c.字符串效果上相当于char[]字符数组 但底层的原理是byte[]字节数组;

d.字符串常量值,程序当中直接写上的双引号字符串,就在字符串常量池当中;

2 创建

字符串的创建分类3种构造方法+一种直接创建

1 .创建空白字符串

2.根据字符数组的内容,创建对象(java的char 是unicode存储的,unicode编码字符集中包含了中文,所以可以存储中文)

3.根据字节数组的内容,来创建对应的字符串;

4 .直接创建(这种也是对象).

3 字符串常量池

首先我们创建一个字符 String str1 ="abc"; 首先他先转化为一个字节数组,再将字节数组的地址保存在字符常量池中的字符对象中,再把池当中的对象地址交给str4,str4指向这个地址(对象不是自己创建的,是字符常量池创建的)

接下来我们再创建一个字符对象 String str2 ="abc";两个字符内容一样,这时候就字符串常量池就会判断,如果字符串内容已经存在的,就不会继续创建字符对象,把str5也指向这个地址

所以当我们对比这两个字符的内容是否相等的时候我们可以用“==”,其他情况“==”我们对比的是地址值

但是如果我们用其他方式构造方法创建的String对象,就不会在字符常量池中创建对象,会单独new一个对象,所以用构造方法创建的对象的两个对象即使内容一致也不会指向同一个地址,这种创建方式如果要对比内容是否相等,则用equals方法.

注意:

使用 字符串的equals时,推荐把常量放在前面

相关文章

  • 知识

    Java Java三大特性详解 String,StringBuffer,StringBuilder的区别 Java...

  • java String特性

    1 特点 a.字符串的内容永不可变,底层时被final修饰的数组 private final byte[] val...

  • String 类

    1 String类简介 String类的特性: 1)Java.lang.String使用了final修饰,不能被继...

  • Java7新特性及使用

    Java7新特性及使用 新特性列表 以下是Java7中的引入的部分新特性。 switch支持String try-...

  • 『读书笔记』—— Thinking_In_Java_13_字符串

    Thinking in java 读书笔记系列 不可变 String String 对象是不可变的,具有只读特性。...

  • Java之String类

    String 1. String类基本特性 String类再Java类中也是一个很重要的类,String类的对象是...

  • Java 基础知识(一)

    知识点包括 Java面向对象三大特性 Java四种引用类型 String、StringBuffer、StringB...

  • Java常用类笔记

    字符串相关的类 String类及常用方法 String的特性 String类:代表字符串。Java 程序中的所有字...

  • JAVA新版本有哪些新特性

    1. Java 11有哪些新特性? JAVA 11是Java后第一个长期支持的版本 String API - is...

  • 源码阅读篇-String类

    Java的String 1.简介 2.作用和特性 String 代表字符串,在创建后不可变。被final修饰 俗称...

网友评论

      本文标题:java String特性

      本文链接:https://www.haomeiwen.com/subject/wmjxxctx.html