Java基础教程之String深度分析
需积分: 0 187 浏览量
更新于2020-08-25
收藏 100KB PDF 举报
Java基础教程之String深度分析
Java基础教程之String深度分析主要给大家介绍了关于Java基础教程之String的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值。
1. String类的不可变性
String类是一个不可变的类,它的值不能被改变。String对象一旦在堆中创建出来,就无法再修改。因为String对象放在char数组中,该数组由final关键字修饰,不可变。
2. 字符串常量池
字符串常量池是一块特殊的独立内存空间,放在Java Heap中。在Jdk7.0之前字符串常量池存放在PermGen中,Jdk7.0的时候移动到了Java Heap(在堆中仍然是独立的),Jdk8.0的时候去掉了PermGen,用Metaspace进行取代。字符串常量池中保持独一份的字符串字面量,无论谁引用都是同样的网址和同样的内容。
3. String对象的创建
可以使用多种方式创建String对象,例如:String str1 = "helloworld"; String str2 = "helloworld"; String str3 = new String("helloworld");。其中str1和str2引用的字符串字面量就在字符串常量池中,而str3引用的对象在Java Heap中。
4. String.intern()方法
String.intern()方法可以将堆中的String对象放到字符串常量池中,这样做可以提升内存使用效率,同时可以让所有使用者共享唯一的实例。例如:System.out.println(str1 == str3.intern()); //运行结果为true
5. String类的实现逻辑
String类的实现逻辑可以通过查看源码来了解。例如:public final class String { private final char value[];}。String类的源码可以帮助我们更好地理解String类的实现机制和内部工作原理。
本节课主要讲解了Java基础教程之String的相关知识点,包括String类的不可变性、字符串常量池、String对象的创建、String.intern()方法和String类的实现逻辑等。这些知识点对大家的学习和工作具有一定的参考学习价值。
weixin_38713057
- 粉丝: 3
- 资源: 946
最新资源
- CC2530无线zigbee裸机代码实现按键控制LED开关.zip
- CC2530无线zigbee裸机代码实现按键控制PWM灯光强度.zip
- CC2530无线zigbee裸机代码实现按键控制流水灯.zip
- 无感FOC电机三相控制高速吹风筒方案 FU6812L+FD2504S 电压AC220V 功率80W 最高转速20万RPM 方案优势:响应快、效率高、噪声低、成本低 控制方式:三相电机无感FOC 闭环方
- CC2530无线zigbee裸机代码实现查询方式使用定时器.zip
- CC2530无线zigbee裸机代码实现串口UART0发送字符串.zip
- CC2530无线zigbee裸机代码实现串口UART0收发字符串.zip
- CC2530无线zigbee裸机代码实现串口发送指令控制LED灯.zip
- CC2530无线zigbee裸机代码实现定时器T1的使用.zip
- CC2530无线zigbee裸机代码实现定时器T3的使用.zip
- 基于51单片机的PWM波形发生器设计(Protues仿真)-毕业设计
- 模块化多电平变流器 MMC 的VSG控制 同步发电机控制 MATLAB–Simulink仿真模型 5电平三相MMC,采用VSG控制 受端接可编辑三相交流源,直流侧接无穷大电源提供调频能量 设置频率
- 锁相环学习电路,有教程 对新手非常友好,一看就懂 1,输出频率800MHz或者1GHz, 采用Ring-VCO的结构 2,输入参考频率20MHz 3,分频器是40-50分频 4,电荷泵电流
- MF000588-ASP.NET信息中心标准化管理系统源码.zip
- 基于51单片机的烟雾采集报警系统(protues仿真)-毕业设计
- 模拟器银河麒麟是基于Linux发行版Ubuntu开发的自主可控操作系统,为我国信息基础建设提供了重要支撑 截至目前,银河麒麟V10的软件仓库已经提供了大量国产软件,但在特定情况下,我们可能还是希望使用