Java学习打卡-Day16-Integer、String经典例题

Integer 经典例题

public void method(){
	Integer i = new Integer(1);
	Integer j = new Integer(1);
	System.out.println(i == j);//False
	
	Integer m = 1;	//底层:Integer.valueOf(1)
	Integer n = 1;
	System.out.println(m == n);//True
	
	Integer x = 128;
	Integer y = 128;
	System.out.println(x == y);//False

	Integer a = 127;
	Integer b = new Integer(127);
	System.out.println(a == b);//False
	}
  • Byte、Short、Integer、Long 这 4 种包装类默认创建了数值 [-128,127] 的相应类型的缓存数据,Character 创建了数值在 [0,127] 范围的缓存数据,Boolean 直接返回 True or False。
public void method2(){
	Integer a = 127;
	int b = 127;
	System.out.println(a == b);//True
	
	Integer m = 128;
	int n = 128;
	System.out.println(m == n);//True
}
  • 只要有基本类型,判断的就是值。

String 经典例题

public void method3(){
	String a = "hsp"String b = new String("hsp");
	System.out.println(a.equals(b));//True
	System.out.println(a == b);//False
	
	//b.intern() 会返回常量池中的 "hsp" 的引用,而 a 也指向常量池中的 "hsp",因此它们的引用地址相同。
	System.out.println(a == b.intern());//True
	
	//b 指向堆内存中的一个新对象,而 b.intern() 返回的是常量池中的 "hsp" 的引用。
	System.out.println(b == b.intern());//False
}
  • intern() 方法的作用是将字符串对象的内容放入常量池(如果常量池中还没有该字符串),并返回常量池中的引用。
public void method4(){
	Person p1 = new Person;
	p1.name = "hspedu";
	Person p2 = new Person;
	p2.name = "hspedu";
	
	System.out.println(p1.name.equals(p2.name));//True
	System.out.println(p1.name == p2.name);//True
	System.out.println(p1.name == "hspedu");//True
}
//下面的语句创建了两个对象。
String s1 = "Hello";
s1 = "haha";

//下面的语句创建了一个对象。
String s2 = "Jack" + "Tom";	//自动优化:String s2 = "JackTom";

//下面的语句创建了三个对象。
String a = "hello";
String b = "abc"String c = a + b;
//1.先创建一个StringBuilder sb = new StringBuilder()
//2.sb.append("hello");
//3.sb.append("abc");
//4.String c = sb.toString();
//最后其实是C指向堆中的对象value[],再指向池中"helloabc"。
public class Test1 {
	String str = new String("hsp");
	final char[] ch = {'j', 'a', 'v', 'a'};
	public void change(String str, char ch[]) {
		str = "java";
		ch[0] = 'h';
	}
	public static void main(Stringl] args) {
		Test1 ex = new Test1();
		ex.change(ex.str, ex.ch);
		System.out.print(ex.str + " and ");
		System.out.println(ex.ch);
	}
//结果:hsp and hava
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值