本人已参与「新人创作礼」活动,一起开启掘金创作之路。
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第16天,点击查看活动详情
目录
今天阿文介绍的内容为:
- Java的基本数据类型
- 数据类型转换
1.Java基本数据类型
在Java中变量就是申请内存来存储值的,当我们创建变量的时候,需要申请内存空间去保存变量的值,内存管理系统会根据变量的类型为变量分配存储空间,分配的空间只能用来存储该类型的数据。
所以,通过定义不同类型的变量,可以在内存中存储整数、小树或者字符
Java有两大数据类型:
- 内置数据类型
- 引用数据类型
1.1内置数据类型
Java语言提供了八种基本类型。6种数字类型,1种字符类型,还有1种布尔类型
| 数据类型 | 占位数 | 符号 | 最大值 | 最小值 | 默认值 |
|---|---|---|---|---|---|
| byte | 8位 | 有符号 | 127(2^7-1) | -128(-2^7) | 0 |
| short | 16位 | 有符号 | 32767(2^15-1) | -32768(-2^15) | 0 |
| int | 32位 | 有符号 | 2,147,483,647(2^31-1) | -2,146,483,648(-2^31) | 0 |
| long | 64位 | 有符号 | 9,223,372,036,854,775,807(2^63 -1) | -9,223,372,036,854,775,808(-2^63) | 0L |
| float | 32位 | 有符号 | 3.4028235E38 | 1.4E-45 | 0.0f |
| double | 64位 | 有符号 | 1.7976931348623157E308 | 4.9E-324 | 0.0d |
| boolean | 1位 | 无符号 | 只有两值0和1 | 无 | false |
| char | 16位 | 无符号 | \u0000(十进制等效值为0) | \uffff(即65535) | 无默认值 |
对于数据类型的取值范围大家不需要强制的去记住,因为在Java当中已经有以常量的形式定义在对应的包装类中了:
例如:
public class PrimitiveTypeTest {
public static void main(String[] args) {
System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
System.out.println("包装类:java.lang.Integer");
System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
System.out.println();
}
输出结果为:
其他的基本数据类型也是同理
| 数据类型的二进制位数 | 最大值 | 最小值 | 包装类 |
|---|---|---|---|
| Byte.SIZE | Byte.MIN_VALUE | Byte.MAX_VALUE | java.lang.Byte |
| Short.SIZE | Short.MIN_VALUE | Short.MAX_VALUE | java.lang.Short |
| Integer.SIZE | Integer.MIN_VALUE | Integer.MAX_VALUE | java.lang.Integer |
| Long.SIZE | Long.MIN_VALUE | Long.MAX_VALUE | java.lang.Long |
| Float.SIZE | Float.MIN_VALUE | Float.MAX_VALUE | java.lang.Float |
| Double.SIZE | Double.MIN_VALUE | Double.MAX_VALUE | java.lang.Double |
| Character.SIZE | Character.MIN_VALUE | Character.MAX_VALUE | java.lang.Character |
1.2引用类型
- 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
对象、数组都是引用数据类型。- 所有引用类型的
默认值都是null。 - 一个引用变量可以用来引用任何与之兼容的类型。
1.3Java常量
所谓的常量是在程序当中不能修改的量。
在Java中,使用final关键字来修饰常量,声明方式和变量类似:
final double PI = 3.1415926;
为了比较容易的辨识常量和变量,所以我们通常将常量的变量名所有字母大写
在Java中,byte、int、long和short都可以使用十进制、八进制和十六进制来表示
例如:
int decimal = 100;//十进制
int octal = 0144;//八进制
int hexa = 0x32;//十六进制
java语言支持一些特殊的转义字符
| 符号 | 字符含义 |
|---|---|
| \n | 换行 |
| \r | 回车 |
| \f | 换页符 |
| \b | 退格 |
| \0 | 空字符 |
| \s | 空格 |
| \t | 制表符 |
| \" | 双引号 |
| \' | 单引号 |
| \\ | 反斜杠 |
| \ddd | 八进制字符 |
| \uxxxx | 16进制Unicode字符(xxxx) |
1.4自动类型转换
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
转换的规则是由低级到高级
数据类型转换必须满足如下规则:
- 不能对boolean类型进行转换。
- 不能把对象类型转换成不相关的对象。
- 在把容量大的类型换换为容量小的类型时必须使用
强制类型转换。 - 转换过程中可能导致溢出或损失精度,例如:
int i = 128;
byte j = (byte)i;
因为byte类型是8位,最大值为127,所以当int强制转换为byte类型时会导致溢出。
- 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:
(int)23.7 == 23;
(int)-45.889f == -45
两个结果返回的都是true。
1.5隐含强制类型转换
- 整数的默认类型为int
- 小数的默认类型是double类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。
总结
- Java中的数据类型分为
内置数据类型和引用数据类型两大类 - 数据类型转换的规则是由低级到高级
好了,今天阿文就介绍到这了... byebye