Java学习分享 --- 【String类】字符串常量池、方法

本文详细介绍了Java中的String类,重点讨论了字符串常量池的概念,包括字面量赋值、new String()创建以及intern()方法的工作原理。此外,还概述了String类的一些主要方法和正则表达式功能。
摘要由CSDN通过智能技术生成

String类

一、简单了解: 

  • String类代表字符串。 Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。

    字符串不变; 它们的值在创建后不能被更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,它们可以被共享。

  • String类包括用于检查序列的各个字符的方法,用于比较字符串,搜索字符串,提取子字符串以及创建将所有字符翻译为大写或小写的字符串的副本。

  • Java语言为字符串连接运算符(+)提供特殊支持,并为其他对象转换为字符串。 字符串连接是通过StringBuilder (或StringBuffer )类及其append方法实现的。 字符串转换是通过方法来实现toString ,由下式定义Object和继承由在Java中的所有类。

  • 除非另有说明,否则传递null参数到此类中的构造函数或方法将导致抛出NullPointerException

二、简单了解常量池

  • 前提 :什么是常量池??
  • 池是一种常见的提高效率的方式,常量池是池的一种,还有内存池、线程池.....
  • 经常使用的字面类型比如 1,2,3,“hello”.....,为了是程序的运行速度更快,更节省内存,Java 8为8中基本数据类型和String都提供了常量池。
  • 首先对象的分配要付出时间和空间上的开销,字符串可以说是和 8 个基本类型一样常用的类型,甚至比 8 个基本类型更加常用,故而频繁的创建字符串对象,对性能的影响是非常大的,所以,用常量池的方式可以很大程度上降低对象创建、分配的次数,从而提升性能。
  • 在 JDK 1.7 之后 (包括 1.7),字符串常量池已经从方法区移到了堆中。

2.1关于字符串常量池的一些示例:

2.1.1字面量赋值:

String str1 = "江江江浪";

这种情况下会直接将字符串放到字符串常量池中,然后返回给变量。

String str2 = "江江江浪";

如果再声明一个内容相同的字符串,会发现字符串常量池中已经存在了,那直接指向常量池中的地址即可。

str1 == str2 //true

2.1.2 new String () 方式

与之对应的是用 new String ()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值