JAVA基础

一、JAVA的数据类型(8种基本数据类型和3种引用数据类型)

1.bit就是位,也叫比特位,是计算机表示数据最小的单位
2.byte就是字节
3.1byte=8bit ,0001 1100,一般用两个16进制来显示
4.1byte就是1B

1、八种基本数据类型类型

byte:8位,

short:16位

int:32位

long:64位

float:32位 单精度类型,尾数可以精确到7位

double:64位 双精度类型,是float的两倍

boolean:只有true和false两个取值。

char:16位,存储Unicode码,用单引号赋值。

如果进行不产生舍入误差的精确数字计算,要使用BigDecimal类(之前工作的时候用到过,有时间再复习一下)

这是基本数据类型的取值范围,当超过改数据类型的取值范围的时候,会自动向上转型。

(1)但是问题来了,我非要把一个超出超出byte类型的值转换成byte,那结果会是怎么样的呢

举个栗子 byte b = (byte)129;

神奇的事情就发生了,如果想知道具体为什么会出现这么一个奇怪的数字,就要掌握原码、反码、补码的知识,对于这个部分的知识,我承认我曾经记得过,就去看了看参考了一下别人的解释,果然就清晰了不少→这是大佬的解释,已经很清晰了

2、基本数据类型和封装类

这里面主要是要说的是拆箱和装箱操作,看起来简单,但是其中有很多需要注意的地方。

第一点

Integer a = 1;
Integer b = 1;
Integer c = 130;
Integer d = 130;
System.out.println(a==b);
System.out.println(c==d);

        输出结果是第一个是true第二个是false

        主要原因是Integer类会把-128~127之前的值放到一个缓存里面,不在这个范围的值才会new一个Integer对象,这样做可以减少对象创建次数和节省内存

注意,Integer、Short、Byte、Character、Long这几个类的valueOf方法的实现是类似的。

     Double、Float的valueOf方法的实现是类似的。

第二点

Integer i = 1;
Integer b = 3;
System.out.println((i+2).equals(b));

        像这种写法其实是有问题的,当参与基本运算之后会自动拆箱,把 i+2 的结果转换成int类型

int.equals就会报错

3、3种引用数据类型(类,接口,数组)

        这三种引用类型可能比较花时间,等看完了总结一下

还是要多看源码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值