网站首页 > java教程 正文
一. 什么叫基础类型?
当创建变量时可以直接分配空间的类型即可成为基础类型, 值类型就是基本数据类型
二. 基础类型的分类
图片来源于网络
整型:byte, short, int, long
字符型:char
浮点型:float, double
布尔型:boolean
三. 每种基础类型的含义
整型
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 定义的类型)。哈哈哈哈哈,这个说法会被打,下面仔细说下吧
什么是引用?
引用其实就像是一个对象的名字或者别名 (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类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错。
强制转换时的精度丧失和溢出
猜你喜欢
- 2024-10-20 Java类的基本定义(java 类的)
- 2024-10-20 为什么说java是只有值传递?(为什么java只能单继承)
- 2024-10-20 作为测试人员,这些概念你不懂的话,你好意思说你懂Java?
- 2024-10-20 尚学堂java学习笔记:Java各版本的含义
- 2024-10-20 java基础知识——什么是媒体?(解释什么叫媒体)
- 2024-10-20 三分钟学习Java泛型中T、E、K、V、?的含义
- 2024-10-20 吃人的那些 Java 名词:对象、引用、堆、栈
- 2024-10-20 什么是Java架构?(什么是JAVA架构师)
- 2024-10-20 Java中关于引用的介绍(java中的引用是什么意思)
- 2024-10-20 「Java」详解常见的53个关键字(java详解)
你 发表评论:
欢迎- 07-21如何将 iPhone 中的联系人导出到 Excel/CSV?
- 07-21sql查询的字段数据中有逗号。放到csv文件会分开,如何解决?
- 07-21在 WebAPI 里生成 csv zip 文件(webapi怎么发布在iis上)
- 07-21如何把csv格式转换成Excel格式(csv格式怎么转换)
- 07-21如何将高程导出为XYZ或CSV高程点(如何将高程数据导入cad)
- 07-21使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)
- 07-21解决PHP导出CSV文件中文乱码问题(php导出excel文件)
- 07-21使用vba将Excel 文件转成 CSV 文件
- 最近发表
-
- 如何将 iPhone 中的联系人导出到 Excel/CSV?
- sql查询的字段数据中有逗号。放到csv文件会分开,如何解决?
- 在 WebAPI 里生成 csv zip 文件(webapi怎么发布在iis上)
- 如何把csv格式转换成Excel格式(csv格式怎么转换)
- 如何将高程导出为XYZ或CSV高程点(如何将高程数据导入cad)
- 使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)
- 解决PHP导出CSV文件中文乱码问题(php导出excel文件)
- 使用vba将Excel 文件转成 CSV 文件
- python爬虫25 | 爬取的数据怎么保存?CSV了解一下
- MySQL 导出数据(mysql 导出数据 判断成功)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)