java 基本数据类型

       工作一年时间,参加一些面试,发现面试的时候看的框架问题很少问,都是问的一些关于java基础的问题,而且在工作当中运用的其实都是基本知识,学的框架多了其实框架里面的实现还是这些java的基础知识,就看怎么理解,怎么运用,现在发现还是要重新巩固一下java的基础知识,重新打好基础,才能让自己的技术再次有所进步。

     以前没有写过博客,现在开始写一些博客作为自己的笔记,本次写的是java的基础数据类型

     java的基础数据类型有8种,其中整数数据类型有四种,分别是byte、short、int和long,他们存储的数据大小是依次递增的,浮点数据类型有两种:float和double ,字符是char ,还有特殊的boolean类型,他只有true和false两个值

    整数数据类型

     byte数据类型的意思是字节的意思,所以长度是8位的二进制,所以他的大小是  -128~127,为什么他的大小是2^7的128而不是2^8呢,因为在计算机当中有一个位是用来记录符号的,那为什么前面是128,后面是127呢,这是因为进位问题啊,负数进位数值是小了,正数进位数值大了,所以才会出现这种边界值不一样的。

     short数据类型是两个字节的长度,也就是16位,大小是 -32768~32767

     int 数据类型是四个字节的长度,大小是 -2^32 ~2^32-1

     long 类型的长度是8个字节的长度,64位,这里需要注意的是,在创建long类型的时候,需要在数据后面加上L或者l,由于l很难分辨,所以几乎所有人都默认加上L作为long数据类型的标志。

 我们在创建正数的时候,编译器默认的都是int类型的整数,例如

     byte a=1;
     byte b=a+4;

   这样的表达式是错误的,因为在第二个表达式当中,“4”编译器默认是int类型的,而64位的int无法自动转变成8位的byte,所以报错。其他的类型也是一样的,在由大类型转小类型的时候,只能强转。

 浮点数据类型

     float和double,float是单精度浮点类型,double是双精度浮点类型,精度是按照尾数的位数来决定的,而取值范围是按照指数的位数来决定的。

     float的尾数是23位,2^23 = 83886_08 也就是7位的尾数数,float最多能精确到小数点后7位,double的尾数是52位,

2^52 = 45035_99627_37049_6,也就是16位的尾数,double最多能精确到小数点后面的16位。

    float的指数是2^7-1=127,取值范围是2^127 相当于10^38级别

    double指数为2^10-1=1023,取值范围是2^1023,相当于10^308级别

    注意浮点类型转化的时候可能会出现数据精度丢失的情况,例如:

   float表示0.3  是   -0 1001 1001 1001 1001 1001 10

  double 表示0.3是 - 0 1001 1001 1001 1001 1001 1001  ...

 因为位数不一样,如果在23位后面,52位之前还有1出现,这个转化是肯定会有精度上的损失

 字符类型

 char是字符类型,占用两个字节的长度,利用unicode编码,他的前128编码和ASCII码兼容,用‘’ 来表示char的类型,例如

char a= 'a';System.out.println(a+1);输出的是98

boolean类型

boolean类型非常简单,只有两个值,true用来表示真,false用来表示假

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值