String,内存剖析,常用方法_听韩顺平课笔记

时间:2021-09-16
本文章向大家介绍String,内存剖析,常用方法_听韩顺平课笔记,主要包括String,内存剖析,常用方法_听韩顺平课笔记使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1.String结构剖析

String类的理解和创建对象

  • 使用Unicode编码,一个字符占两个字节
  • String有很多构造器,构造器的重载
  • String是final类,不能被其他的类继承
  • String有属性private final char value[];用于存放字符串内容,所以String的底层是个char数组
  • value[]是一个final属性,是不可修改的(地址不可修改,指向新地址),但是单个字符内容是可以变化的

String的继承关系:

  • 实现了Serializable,说明String可以串行话,用于网络传输
  • 实现了Comparable,说明String对象可以比较

String的地址不可变性的证明:

  • 单独的内容的改变时允许的
  • 但不允许改变地址空间

String的八点特性:

2.String创建剖析

String的创建方式(两种):

两种创建String对象的区别:

两种创建String对象的区别(内存分析图):

练习题1:

练习题2:

3.String测试题1

练习题3:T,F,T,F

intern()方法解析:

练习题4:

4.String测试题2

练习题5:做错了,答案:T,T,T,F

5.String对象特性1

习题1:

习题1解:

  • 创建一个对象"hello"
  • 在常量池中查看是否有"haha"对象,没有则创建,将s1指向"haha"

习题2:

习题2答案:

习题3:

习题3思路分析,追源码(重点):

习题3内存布局图:

验证习题3答案:输出false

  • c指向堆中,d指向池中

习题3小结:

  • 字符串常量相加,看的是池
  • 字符串变量相加,看的是堆

6.String对象特性2

练习题1:

练习题2:

  • 方法调用,开辟新栈,使用完毕后销毁,
  • char数组在堆中,其中的内容被修改了

练习2内存分析:

7.String常用方法1

String是保存字符串常量的,每次跟新都需要重新开辟空间,效率较低

String类的常用方法一览:

String类的常用方法应用实例1:

8.String常用方法2

String类的常用方法应用实例2:

9.String常用方法3

format方法详解:

原文地址:https://www.cnblogs.com/CH0701/p/15302504.html