java基础学习笔记(四) - 深度解析八大基础类型

​一. 什么叫基础类型?

    当创建变量时可以直接分配空间的类型即可成为基础类型, 值类型就是基本数据类型

二. 基础类型的分类

                                        图片来源于网络

    整型:byte, short, int, long

    字符型:char

    浮点型:float, double

    布尔型:boolean

三. 每种基础类型的含义

  1. 整型

        Java中整型数据属于有符号数,即第一个bit位为0表示正整数,第一个bit位为1表示负整数。在计算机中负数由补码进行表示,那么补码如何计算呢?

    补码=源码取反 + 1;

如:

        22,在计算机中的表示为00010110

        -22,取反:11101001,加1:11101010

        在Java中,整数类型共有4种,它们有固定的表述范围和字段长度,且不受具体的操作系统的影响,保证了Java的跨平台性

                                            图片来源于网络

2. 浮点型(我的理解就是数学中的小数,只是精度不一致)

    Java中浮点型数据无法由二进制直接表示,而是一种对于实数的近似数据表示法,它遵循IEEE 754标准 

                                            图片来源于网络

3. 字符型

    字符类型是用''单引号括起来的单个字符

4. 布尔型(个人理解为真假类型,即非真即假)

        其中值得研究一下的是boolean,因为官方没有明确给出boolean长度,实际的长度是由相应的虚拟机来设计的。boolean表示是、否两种情况,只需要一位就可以表示。在jvm中基本类型分为:数值类型、boolean类型和returnAddress三种类型。 

                           基础类型长度和默认值总结图 - 图片来源于网络

四, 引用类型

哎嘿,刚刚第一张图里面除了基础数据类型还有个引用数据类型是什么?

简单说下:引用类型,是指除了基本的变量类型之外的所有类型(如通过 class 定义的类型)。哈哈哈哈哈,这个说法会被打,下面仔细说下吧

  1. 什么是引用?

            引用其实就像是一个对象的名字或者别名 (alias),一个对象在内存中会请求一块空间来保存数据。访问对象的时候,我们不会直接是访问对象在内存中的数据,而是通过引用去访问。引用也是一种数据类型,指示了对象在内存中的地址,用图来解释一下

                                    图片来源于网络

从图上可以看出,值类型中的abcd都是在栈这边的框框中的,而引用类型中的abcd在栈框框内,但是有一根线指向了堆的框框内,引用提现出来了!!!引用这个能够用线去访问堆框框内的abcd变量!

讲完引用类型重新回到基础类型了

五. 基础类型的转换

        1. 基本数据类型中类型的自动提升

                                    图片来源于网络

                图中依次表示了各数值类型的字节数和相应的取值范围。在Java中,整数类型(byte/short/int/long)中,对于未声明数据类型的整形,其默认类型为int型。在浮点类型(float/double)中,对于未声明数据类型的浮点型,默认为double型。

        2. 隐式类型转换

                    从存储范围小的类型到存储范围大的类型.

                    byte ->short(char)->int->long->float->double

        3.  显示类型转换

                      从存储范围大的类型到存储范围小的类型.

                   因为大类型的精度值大于小类型,取值范围大于小类型,所以,当使用强制转化时,有可能会造成精度的损失或者溢出,所以,在使用强制转化时要求显式的告诉编译器,正在进行强制转换。

Note:

            boolean类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错。

             强制转换时的精度丧失和溢出

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

祝哥哥学习好

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

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

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

打赏作者

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

抵扣说明:

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

余额充值