美文网首页
JAVA4:String__字符串

JAVA4:String__字符串

作者: DuTel | 来源:发表于2018-12-25 13:07 被阅读0次

关于字符串:
所有的字符串都是String类的对象

比较常用的声明字符串的两种方式:

1: String str = "JAva";

2: String str = new String("java");

也就是说,字符串的字面量可以看作是String类的一个对象

这要考虑字符串与字符数组之间的关系:

'''
char ch = {'a','b','c'};
String str = new String(ch);
//以上两条语句可以写为
String str = new String("abc");
//也就是说字符数组作为参量加入到了字符串对象的定义中来了

'''
另外,各种字符串可以以“+“连接,字符串还可以与其他的基本数据类型连接,需要注意,这种情况下连接所得的结果为字符串。

————————————————————————————————————————————————————

关于一些细节:api上说字符串是常量,一旦被赋值,不可以被改变,但是通过一些验证我们得知String引用所指向的字符串对象是可以改变的,这里是不是存在什么矛盾??

简单来说,声明String对象(即创建字符串)时,引用放在栈内存中,对象(字符串)放在堆内存中,各自有着不同的地址。

当我们将原字符串与新字符串连接时,新字符串会成为堆内存中的一个新对象(没有引用),有独立的地址。随后会产生第三个新的对象,该对象的字符内容为连接后的新旧字符串,也有独立的地址

接下来引用与原字符串的引用关系解除,与第三个连接后的字符串建立引用的关系,即引用指向的地址发生了变化。

为什么说“字符串一旦被赋值就不可被更改”呢?其实这里的字符串指的是字符串 对象 而非 引用 关系。事实上,原字符串的地址和内容在上述过程中并没有发生变化。就是说的这个意思。

————————————————————————————————————————————————————

“与其说是矛盾,不如说是误会”

这一点在生活中我确有体会

String 类中有很多方法,将会在下一篇讨论

相关文章

  • JAVA4:String__字符串

    关于字符串:所有的字符串都是String类的对象 比较常用的声明字符串的两种方式: 1: String st...

  • java4

    编码规范,见名知意,相关注释,胆大心细,快准狠,清楚明白

  • Java NIO(一):Channel 与 Buffer

    Java NIO 概述 Java NIO 是 Java4 之后提供的一种带缓冲区、非阻塞 IO、且是双向通信的,数...

  • 第三十九条:注解优先于命名模式

    根据经验,一般使用命令模式表明有些程序元素需要通过某种工具或者框架进行特殊处理。例如,在Java4发行版本之前,J...

  • Java4种线程池

    Java 里面线程池的顶级接口是Executor,但是严格意义上讲Executor 并不是一个线程池,而只是一个执...

  • JAVA4种线程池的使用

    https://www.cnblogs.com/goody9807/p/6515128.html

  • Javascript知识点整合

    字符串 单行字符串: ‘字符串’或“字符串” 多行字符串: `多行字符串` 字符串操作: 字符串连接‘+’号 长度...

  • C++基础字符串

    字符串的构造 字符串特性描述 字符操作 字符串赋值 字符串连接 字符串比较 字符串查找 字符串替换 字符串删除 字...

  • iOS中的NSString与NSMutableString

    字符串的创建 字符串读写 字符串的比较 字符串的搜索 字符串截取 字符串替换 字符串与路径 字符串转换 NSMut...

  • iOS NSString用法总结

    字符串属性 字符串截取 字符串比较 字符串搜索 字符串拼接 字符串基本类型转换 字符串分行,分段 字符串列举(按条...

网友评论

      本文标题:JAVA4:String__字符串

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