Java 基本数据类型
变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。
Java 的两大数据类型:
- 内置数据类型
- 引用数据类型
内置数据类型
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
| 整数类型(有符号) | 占有内存 | 范围 | 默认值 ? ?应用 |
| byte | 1字节(8位) | -128~127 | 0 ? ? ? ? ? ? byte x=-12,tom=28,漂亮=122; |
| float | 2字节(16位) | -32768(-2^15)~32767(2^15 - 1) | 0 ? ? ? ? ? ? int x=12,y=9898,z; |
| int? | 4字节(32位) | (-2^31)~(2^31 - 1) | 0????????? ? ?short x=12; |
| long | 8字节(64位) | (-2^63)~(2^63 -1) | 0L(*) ? long width=25L,height=66L; |
| 浮点型(有符号) | ? | ? | ? |
| float | 4字节(32位) | 保存8位有效数字 | 0.0F(f)float x=22.77f,tom=1234.567F; |
| double | 8字节(64位) | 保存16位有效数字 | 0.0D(d)double x=23.1256d,y=1e10; |
| 字符类型(无符号) | ? | ? | ? |
| char | 2字节(8位) | 0~65535 | (*) ? ? ? ? ? ? ? ?char ch='A',home='家',库='酷'; |
| 逻辑类型 | ? | ? | ? |
| boolean | 1字节(*) | 仅有true与false | false ? ? ? ? boolean male=true,on; |
long型变量赋值时"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
- boolean型变量所占内存会因虚拟机不同而变(可能为1位、1字节、4字节)。
- 有些字符(如回车符)不能通过键盘输入,这时需要转义字符常量,例:\n(换行),\b(退格),\t(水平制表), ? ? ? ? ? ? ? ?\'(单引号),\"(双引号),\\(反斜线)等。
引用数据类型
在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
1、对象、数组都是引用数据类型。
2、所有引用类型的默认值都是null。
3、一个引用变量可以用来引用任何与之兼容的类型。
类型转换运算
下列基本类型会涉及到数据转换(不包含逻辑类型)。将这些类型从低到高排列。
| byte | short | char | int | long | float | double |
1、当把低级别的变量的值赋值给级别高的变量时,系统自动完成数据类型的转换。
? ? 例如:
????????????? ?float x=100;
? 输出的x的值为50.0。
2、当把高级别的变量的值赋值给级别低的变量时,必须使用强制类型转换。
? ? (类型名)要转换的值
? ? ?例如:
? ? ? ? ? ? ?int x=(int)35.2654;
? ? ? ? ? ? ?int z=1999L;
? ?输出的x,z的值为35,1999
注意常见错误:
- 当把一个int 型的变量赋值给一个byte,short和char型变量时,不可超出起范围,否则必须进行强制类型转换。
- double型的值赋值给float型时,不加类型转换出现损失精度的错误。
例如:byte x=(byte)(-129); ? ? (结果为127)
? ? ? ? ? float x=12.4; ? ? ? ? ? ? ? ?(结果出现“possible loss of precision”的错误)
? ? ? ?(参考书籍:Java2实用教程(第5版)??耿祥义 张跃平 )



![[并发编程] - Executor框架#ThreadPoolExecutor源码解读02 [并发编程] - Executor框架#ThreadPoolExecutor源码解读02](https://blog.quwenai.cn/zb_users/upload/2022/03/20220327124158164835611866353.png)


还没有评论,来说两句吧...