String类特点分析

本文深入分析了Java中的String类,包括它的非基本数据类型特性、使用""定义字符串、两种实例化方式(直接赋值与构造方法)、字符串常量池以及字符串不可变性。通过示例代码探讨了"=="与equals()在字符串比较中的差异,强调了直接赋值的内存优化,并介绍了对象池的概念和作用。最后讨论了主方法的组成和启动参数的使用。
摘要由CSDN通过智能技术生成

在实际的开发之中没有一个项目不去使用String类,也就是String是整个系统开发之中一个至关重要的组成类,在Java成程序之中所有的字符串都要求使用“”进行定义,同时也可以利用“+”实现字符串的连接处理,但是对于String类实际上还有其自身的特点,本次来进行String类的特点分析。

String类简介

字符串严格意义上来讲并不能算是一个基本数据类型,也就是说没有任何一门语言会提供有字符串这种数据类型的,而Java里面为了方便开发者进行项目的编写,所以利用其JVM的支持制造了一种可以简单实用的String类,并且可以像基本数据类型那样进行直接的赋值处理。
范例:String类对象实例化

public class StringDemo {
	public static void main(String args []){
		String str = "www.mldn.cn" ;  //直接赋值
		System.out.println(str) ;
	}
}

但是需要注意的是,String这个类里面之所以可以保存字符串主要的原因是其中定义了一个数组,也就是说在String里面的字符串中的每一个字符的数据都是保存在数组之中。
提示:观察String类的源代码实现
源代码目录:

D:\java\JDK\lib\src.zip

JDK1.9之后实际上针对字符串的定义形式是增多了,要比JDK1.8多,类的对比数量如下

JDK1.8以前的String支持类: JDK1.9及以后的String支持类:
在这里插入图片描述 666666666

从JDK1.9开始String类之中的数组类型采用了byte类型

JDK1.8以前的String保存的是字符数组: JDK1.9及以后的String保存的是字节数组:
private final char value[ ] private final byte [ ] value

原来所谓的字符串就是对数组的一种特殊包装应用,但是同时也应该清楚一点,既然包装的是数组,所以字符串里面的内容肯定是无法改变的,这一点随后的部分会进行解释。
另外需要注意的是,在String类里面除了可以使用直接赋值的形式为对象进行实例化之外也可以按照传统的方式利用构造方法进行对象的实例化处理:public String(String str);
范例:利用构造方法进行实例化

public class StringDemo {
	public static void main(String args []){
		String str = new String ("www.mldn.cn") ; 
		System.out.println(str) ;
	}
}

String本身包装是一个数组,并且其有两种对象的实例化形式:直接赋值、构造方法实例化。

字符串比较

下面首先回顾一下,如果说现在要想判断两个int型变量是否相等,那么肯定使用“”,这个是由程序直接提供的相等的运算符。
范例:进行“
”比较

public class StringDemo {
	public static void main(String args[]){
		int x =  10 ;
		int y =  10 ;
		System.out.println(x==y) ;
	}
}

在这里插入图片描述
但是String类实际上也牵扯到一个相等的判断问题,但是对于String类相等的判断也可以使用“==”,只不过判断的不准确而已。下面通过一个代码来观察:
范例&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值