快速熟悉String类的特点

String类,String类的特点

记录一下自己面试前,对于String类的一些知识点的整理,希望整理出来的知识能对大家有用

了解String类
	1.String类是被final修饰的,是不能被继承的
	2.String类底层使用数组结构
			jdk9以前使用的是char[]
			jdk9以后使用的是byte[]
	3.String的对象一旦创建就不能修改
			底层维护了一个字符串常量池,实现共享
	注意:String类的对象每次修改都会产生一个新的对象
String对象的拼接
	1.常量池中的字符串常量 + 常量池中的字符串常量 :结果是存储在常量池中
		String c = "a"+"b";
		String ab = "ab";
		System.err.println(ab==c); //输出true
	2.变量 + 常量池中的字符串常量 : 结果是存储在堆中的
		String a = "a";
		String c = "a"+"b";
		System.err.println(c==a+"b"); //输出false
	3.如果拼接结果调用intern()方法,返回值就在常量池中
		String a = "a";
		String b = "b";
		String c = "a"+"b";	
		System.err.println(c==a+b); //输出false,证明String类的拼接中只要有一个是变量,结果就存在堆中

		String a = "a";
		String b = "b";
		String c = "a"+"b";	
		System.err.println(c==(a+b).intern()); //输出true,说明如果拼接结果调用intern()方法,返回值就在常量池中
String对象的比较
	1. == 比较地址值
	2. equals()比较的是值本身,区分大小写
		String a = "a";
		String d = "ab";
		System.out.println(d.equals(a+"b")); //返回true
		System.out.println(d.equals(a+"B")); //返回false
	3. equalsIgnoreCase() 比较的也是值本身,但是不区分大小写
		String a = "a";
		String d = "ab";
		System.out.println(d.equals(a+"b")); //返回true
		System.out.println(d.equalsIgnoreCase(a+"B")); //返回值也是true
String st = null和 String st =" "的区别

String s ;
该语句表示只是声明了一bai个引用变du量,但是并没有初始zhi化引用,所以对变量s的任何dao操作(除了初始化赋值外) 都将引发异常.
String s=null;
表示未申请任何内存资源,即些语句表示声明了一个引用变量并初始化引用,但是该引用没有指向任何对象.但可以把它作为参数传递或其它使用,但是不能调用它作为对象的方法
String s="";
表示申请了内存资源,但资源空间值为空。该语句表示声明并引用到一个对象,只不过这个对象为0个字节.所以既然有了对象,就可以调用对象的方法
注意:"" 也是字符串
以上就是我的分享,预知后事,请听下回讲解,哒哒哒哒哒,走辽.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值