JAVA的基本数据类型

1.1 java 的 8 种基本数据类型 装箱 拆箱
Byte short int long float double boolean char
在这里插入图片描述
封装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double

1.2基本类型之间的转换在这里插入图片描述Float:单精度(4字节) Double:双精度(8字节) '\n’表示换行符

1.自动类型提升:(当表示数范围小的类型与表示数范围大的类型做运算时,会自动转换为范围大的类型)byte ,char(单引号),short< int< long< float< double;当byte,char,short三种类型做运算时要用int接收;

‘a’=97,’A’=65;

1.1.4 short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 +=1;有什么错?

  1. 对于 short s1=1;s1=s1+1 来说,在 s1+1 运算时会自动提升表达式的类型为 int, 那么将 int 赋予给 short 类型的变量 s1 会出现类型转换错误。

  2. 对于 short s1=1;s1+=1 来说 +=是 java 语言规定的运算符,java 编译器会对它 进行特殊处理,因此可以正确编译。

2.强制类型转换(大变小,截断运算,不是四舍五入),可能会导致精度损失

整型常量默认为int;
浮点型常量默认为double;

11111111:无符号数为255;有符号,因为计算机存放的是补码,所以是-127

String类型(引用数据类型,双引号)
String与基本数据类型只能做连接“+”运算,结果为string

char+int变为int,char+char变为int,char+string变为字符串,int+string变为字符串

String与基本数据类型的转换要通过包装类来实现!!!

1.1.5.Int 与 Integer 区别

1.Integer是int的包装类,int是java的一种基本数据类型
2.Integer变量必须实例化后才能使用,而int变量不需要
3.Integer实际是对象的引用,当new一个Integer时,实际是生成一个指针对象;而int则是直接存储数据值
4.Integer的默认值是null,int的默认值是0

关于Integer和int的比较:

//1.此时==比较的是地址值,只要是new的对象,地址值都是不一样的
        Integer i=new Integer(100);
        Integer j=new Integer(100);
        System.out.println(j==i);//false

//2.Integer和int类型用==比较时,Integer会有一个自动拆箱的过程,
//它们比较的是值的大小是否相等
		Integer i=new Integer(100);
        int j=100;
        System.out.println(j==i);//true
       
 //非new生成的Integer变量和new Integer()生成的变量比较时,
// 结果为false。(因为非new生成的Integer变量指向的是java常量池中的对象,
// 而new Integer()生成的变量指向堆中新建的对象,两者在内存中的地址不同 
        Integer i=new Integer(100);
        Integer j=100;
        System.out.println(j==i);//false

//对于两个非new生成的Integer对象,进行比较时,
//如果两个变量的值在区间-128-127之间,则结果为true,否则结果为false
/*
Integer类型在-128到127范围之间是被缓存了的,
也就是每个对象的内存地址是相同的,赋值就直接从缓存中取,
不会有新的对象产生,
而大于这个范围,将会重新创建一个Integer对象,也就是new一个新对象,地址值会有不同
*/
		Integer i=100;
        Integer j=100;
        System.out.println(j==i);//true

		Integer i=500;
        Integer j=500;
        System.out.println(j==i);//false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值