String与包装类

String类的内存解析

String str1 = "AA"
String str2 = "AA"
String str3 = new String("AA")
System.out.println(str1 == str2)	//true
System.out.println(str1.equals(str2))	//true
System.out.println(str1 == str3)	//false
System.out.println(str1.equals(str3))	//true

请添加图片描述
str1、str2这种直接赋值方式是变量名(地址)存在于栈空间当中,但是它的值是在方法区的字符串常量池当中
str3这种属于创建了对象,str3这个变量名(地址)存在于栈空间,对象是在堆空间当中,这个对象存储值的地方也是在字符串常量池当中
总结:
栈空间当中有存放变量名(地址)
堆空间当中存放对象
方法区当中存放字符串值(常量)

Person p1 = new Person("AA",12);
Person p2 = new Person("AA",12);

请添加图片描述
这个创建的原理是:
p1和p2变量都在栈空间创建,它们的对象都在堆空间中创建,由于age是int类型,所以直接在对象内部赋值,而name是String类型,这是引用数据类型,所以是在字符串常量池中取值,而这个“AA"的地址是0x1111,所以name存储的就是0x1111

包装类

请添加图片描述
八大基本数据类型对于八大包装类,需要掌握String、包装类、基本数据类型之间的转化

import org.junit.Test;

public class TestWrapper {
	// 基本数据类型与包装类之间的转换
	@Test
	public void test1() {
        // 基本数据类型转包装类
		int i = 10;
		System.out.println(i);
		boolean b = false;
		Integer i1 = new Integer(i);
		System.out.println(i1.toString());
		
		Float f = new Float(12.3F);
		System.out.println(f);
        
        Boolean b1 = new Boolean(true);
        System.out.println(b1);
        
        // 包装类转基本数据类型
        int i2 = i1.intValue();
        System.out.println(i2);
        
        float f1 = f.floatValue();
        System.out.println(f1);
        
        // JDK5.0以后,自动装箱和拆箱
        int i4 = 12;
        Integer i3 = i4;//自动装箱
        Boolean bb = false;
        
        int i5 = i3;//自动拆箱
	}
}

总结:
​ 1、基本类型转包装类,只需要调用构造器就行
​ 2、对于Boolean来讲,当形参是"true"返回true,除此之外都返回false
​ 3、包装类的默认值都为null
​ 4、包装类转基本类型,调用包装类xxx的xxxValue()方法

// 基本数据类型、包装类与String之间的转换
@Test
public void test2() {
	// 基本数据类型、包装类转String
	int i1 = 10;
	String str1 = i1 + "";//"10"
	
	String str1 = String.valueOf(i1);
	Integer i2 = i1;
	String str2 = String.valueOf(i2);
	String str3 = String.valueOf(true);
	System.out.println(str3);
	
	// String转基本数据类型、包装类
	int i3 = Integer.parseInt(str2);
	System.out.println(i3);
	boolean b1 = Boolean.parseBoolean(str3);
	System.out.println(b1);
}

总结:
​ 1、基本数据类型、包装类转字符串:调用String类的重载的valueOf(Xxx x)方法
​ 2、字符串转基本数据类型、包装类:调用包装类的parseXxx(String str)方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖墨客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值