Java的基本数据类型
来源:互联网 发布:yankee 知乎 编辑:程序博客网 时间:2024/06/10 06:27
Java的基本数据类型
变量靠申请内存来存储数据值。也就是说在定义变量的时候,会在内存中申请空间。内存管理系统会根据变量的类型来分配空间,所分配的空间只能存储该类型数据。
Java基础类型包含两种:
- 内置数据类型
- 引用数据类型
内置数据类型
Java有八种内置数据类型,称为八大基本类型。
分别分为四类:
1. 整数型
byte、short、int、long
byte:
包装类:java.lang.Byte
默认值0,取值范围-2^7~2^7-1(为什么-1,记得以前学过,作为疑问1)
占用空间1字节(8bit,二进制情况下2)
由于占用空间相对(int类型占用32bit)比较小,在大型数组中常用于节省空间。
short:
包装类:java.lang.Short
默认值0,取值范围-2^15~2^15-1
16位,占用空间2字节
int:
包装类:java.lang.Integer
默认值0,取值范围-2^31~2^31-1
32位,占用空间4字节
一般地整型变量默认为int类型
long:
包装类:java.lang.Long
默认值0L,取值范围-2^63~2^63-1
64位,占用空间8字节
2. 浮点型
float、double
float:
包装类:java.lang.Float
默认值:0.0f,单精度3,符合IEEE754标准4的浮点数
32位,占用空间4字节
不能用于表示精确的值5,如货币
double:
包装类:java.lang.Double
默认值:0.0d,双精度,符合IEEE754标准的浮点数
64位,占用空间8字节
同样不能用于表示精确的值,如货币
3. 字符型
char 是一个单一的16位unicode字符
包装类:java.lang.Character
默认值:’\u0000’
最小值:’\u0000’(即0) 最大值:’\uffff’(即65535,2^16)
16位,占用空间2字节,可以存储任意字符
4. 布尔型
boolean
默认值:false
只有两个取值:true、false
该类型仅用于表示真/假
1位,占用空间1字节(理论上占用1/8字节)
实际上Java还有一种基本类型void,包装类java.lang.Void6,只是无法直接对其操作。
引用类型
在Java中,引用类型非常类似C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量,引用变量在被声明的时候,指定特定的类型。变量一旦被声明后,就不能改变类型了。
- 对象、数组7都是引用类型
- 引用类型默认值为null
- 一个引用变量可以引用任意与之兼容的类型。
常量
常量的意义就是固定不变的值,如圆周率。
在Java中使用final关键字修饰声明常量。
final double PI = 3.14;
约束规定,通常常量都用大写字母表示。
Java语言支持的一些特殊的转义字符序列。
自动类型转换
整型、常量、字符型可以混合运算。在运算的时候,不同类型的数据转为同一类型数据后,进行运算。
转换级别从低到高8
低------------------------------------------------>高byte、char、short->int->long->float->double
数据类型转换必须满足以下规则:
- 不能对boolean类型进行转换9
- 不能将对象转换为与之不相关的对象类型
- 把容量大的类型转为容量小的类型时,必须使用强制转换
- 在上条情况时,可能导致溢出或损失精度。例如:
int a = 128;byte b = (byte)a;
因为byte最大值为127,强制转换int类型的128时会导致精度溢出。 - 浮点数到整型数的转换是舍弃小数的形式,而不是四舍五入。例如:
int a=(int)23.8;结果a=23 - 低容量的数据在数据转换时可自动转换为高容量的数据,而不需要强制转换。
问题总结
- 为什么内置数据类型,如byte的取值范围是从-2^7~2^7-1?
- 如果计算机不是2进制,那么基础数据类型占用多少空间?基础数据类型的取值范围是否跟是否2进制相关?基础数据类型的取值范围是否跟虚拟机位数相关?
- 单精度、双精度到底是什么?
- IEEE754标准是什么?
- double和float不能表示精确的值,为什么?
- 包装类Void和内置数据是如何运作的?自动拆装箱是如何运作的?
- 数组是如何运作的?
- 转换级别从低到高是byte、short、char->int->long->float->double,float是32位,long是64位,为什么float比long还要高?
- boolean类型为什么不能转换,它是怎么运作的?
- Java的数据类型:基本数据类型、引用数据类型
- java的基本数据类型
- Java的基本数据类型
- java的基本数据类型
- java的基本数据类型
- java 的基本数据类型
- Java的基本数据类型
- Java的基本数据类型
- Java的基本数据类型
- Java的基本数据类型
- java的基本数据类型
- java的基本数据类型
- Java的基本数据类型
- Java的基本数据类型
- Java的基本数据类型
- java的基本数据类型
- JAVA的基本数据类型
- Java的基本数据类型
- Map Reduce for K-means Clustering(Short Introduction)
- JAXB的使用(java对象和xml文本的相互转换)
- codeVS 1214 线段覆盖
- IOS学习之block代码块
- SSM框架整合配置大全
- Java的基本数据类型
- POJ2127 Greatest Common Increasing Subsequence (LICS)
- Servlet学习笔记
- Swift3.0从入门到放弃(二)
- Unit 2-Lecture9: Coloring & Connectivity
- 1.Object
- Unit 2-Lecture10: Forests & Tree
- IntentFilter匹配规则
- 阿里巴巴Java开发手册