JAVA11-int和Integer自动装箱拆箱介绍以及String类的简介

基本数据类型与其包装类
八个基本数据类型:
byte short int char float double char boolean
思考:
int a = 1;
如何让1变成对象,如果是对象,我们就可以调用相关行为
想要有对象,首先必须要有类
基本数据类型对应的包装类
java给我们提供这样的一个类,称之为基本数据类型的包装类

byte short int     long  float double char      boolean
Byte Short Integer Long  Folat Double Character Boolean

拆装箱
装箱
将基本数据类型的变量变成引用数据类型

		int a=1;
		//虽然i的值也是1,但是i指向了一个新的对象,拥有属性和行为
		Integer i=a;//Integer.valueOf(a);
		
		//合并起来
		Integer i=1;//自动装箱

好处:
1.将数值当成对象去研究,有很多的属性和行为去帮我们完成一些事情
2.变量声明时,使用包装类,默认值将不会有实际意义
要求:以后javaBean中的变量不允许使用基本数据类型
因为0和null不是一个概念
验证:

package com.qf;

public class Demo{
    int a;
    Integer b;
}

package com.qf;

public class Demo1 {
    public static void main(String[] args) {
        Demo demo =new Demo();
        System.out.println("int属性a的值"+demo.a);
        System.out.println("Integer属性b的值"+demo.b);
    }
}

在这里插入图片描述
拆箱
将引用数据类型转化为基本数据类型

		Double b=new Double(3.14);
		double c=b;//b.doubleValue();
		//合并起来
		double c1=new Double(3.14);//自动拆箱

总结:
1。包装类和包装类之间是引用数据类型的内容判断,需要使用.equals()
2.基本数据类型和包装类型做比较时,先将包装类型自动转化为基本数据类型,然后做值判断
3.Integer包装类中存在缓存,装箱的方法ValueOf(),自动调用,范围是-128~127

Integer a1=1;//Integer a1=cache[129];
		Integer a2=1;//Integer a1=cache[129];
		System.out.println(a1==a2);//true
		
		Integer a3=1000;//Integer a3=new Integer(1000);
		Integer a4=1000;//Integer a4=new Integer(1000);
		System.out.println(a3==a4);//false

字符串和基本数据之间的转换
基本数据类型转换为字符串类型

123===>"123"
3.14===>"3.14"
true==>"true"
String.valueOf(xxx)
    	int a=123;
		System.out.println(a+1);//124
		String a1=String.valueOf(a);
		System.out.println(a1+1);//1231//"+"号相当于连接符

字符串转换为基本数据类型

"123"===>123
 "true"===>true
 "3.14"===>3.14
    
        String a="123";
		System.out.println(a+1);//1231
		int a1=Integer.parseInt(a);
		System.out.println(a1+1);//124
		
		String b="3.14";
		double b1=Double.parseDouble(b);
		System.out.println(b1+1);//4.14

注意:没有Character.parseCharacter(str)这样的方法
字符串转换为字符
"a"===>'a'
.charAt(0);

		String a="a";
		char c=a.charAt(0);
		System.out.println(c+1);//98

常用的Integer方法

int a=97;
		System.out.println(a+"的二进制是"+Integer.toBinaryString(a));
		System.out.println(a+"的八进制是"+Integer.toOctalString(a));
		System.out.println(a+"的十六进制是"+Integer.toHexString(a));

## String类
java程序中所有的字符串都是String类的具体实例,String类提供的都是值不能修改的字符串
静态式

String a="abc";

动态式

String a=new String("abc");

注意

	String a="abc";
		String a1="abc";
		String b1=new String("abc");
		String b=new String("abc");
		
		System.out.println(b==b1);//false
		System.out.println(b.equals(b1));//true
		
		//使用静态的方式初始化字符串,
		//会先在堆内存中的字符串常量池中查找有没有该值出现过,
		//如果有,则直接指向该值
		//如果没有,则重新在字符串常量池中创建对象
		System.out.println(a==a1);//true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值