您的位置 首页 java

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类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错。

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

文章来源:智云一二三科技

文章标题:java基础学习笔记(四) – 深度解析八大基础类型

文章地址:https://www.zhihuclub.com/179308.shtml

关于作者: 智云科技

热门文章

网站地图