Java的基本数据类型
文章目录
- Java的基本数据类型
- 1、Java数据类型图
- 2、基本数据类型的分类
- 注意事项:
- 3、在编译器里的显示
- 4、数据类型的转换
- 1.自动类型转换
- 基本概念:
- 数据类型的取值范围大小:
- 转换的规则:
- 2、强制类型转换
- 基本概念:
- 格式:
- 注意事项:
1、Java数据类型图
但今天,我们仅介绍基本数据类型。
2、基本数据类型的分类
类型 | 占用字节 | 位数 | 范围 | 默认值 | 举例说明 |
byte(字节型) | 1 | 8 | -128~127 | 0 | byte b=10; |
short(短整形) | 2 | 16 | -32768~32767 | 0 | short a=2; |
int(整型) | 4 | 32 | -231~231-1 | 0 | int i=0; |
long(长整型) | 8 | 64 | -263~263-1 | 0 | long c=23L; |
float(单精度浮点型) | 4 | 32 | 3.4e-45~1.4e38(一般不关注) | 0.0 | float j=1.3f; |
double(双精度浮点型) | 8 | 64 | 4.9e-324~1.8e308(一般不关注) | 0.0 | double d=3.4; |
char(字符型) | 2 | 16 | 0~216-1 | ‘\u0000’ | char e=‘c’; |
boolean(布尔类型) | 无明确规定 | 无明确规定 | true、false | false | boolean f=true; |
注意事项:
- 在Java中,不管编译器是多少位,数据类型所占字节不变。
- 在Java中,没有所谓的无符号数字。
- 在定义变量时,一定要记得初始化,否则会报错!!!
- 当你赋值的字面值大于这个变量能够保存的最大值的时候,程序会编译报错。
- 站在Java的角度,真:true,错:false。
3、在编译器里的显示
byte b1=128;//报错是因为超出了范围
byte b2=127;
short s=345;
int i=3;
long l1=2200000000;
long l2=2200000000l;//所赋的值超出了int类型的取值范围,后面必须加上字母l或者L;
long l3=123;
long l4=123l;//所赋的值未超出int类型的取值范围,后面可以选择加l或者不加l,大写L也行;
float f1=1.2;
float f2=1.2f;//为一个float类型的变量赋值,后面必须加上字母f或者F;
double d1=2.3;
double d2=2.3d;//为一个double类型的变量赋值,后面可以选择加上d或者不加d,大写D也行;
boolean f=false;
boolean e=true;
注:这里的写法与C语言有区别。
4、数据类型的转换
1.自动类型转换
基本概念:
在基本数据类型中,取值范围小的数据类型转换为取值范围大的数据类型,其也被称为隐式类型转换。
数据类型的取值范围大小:
byte < short < int < long < float < double
举例:
int a=10;
double d=20;
double c=a+b;//c的类型为double,int类型被自动转换为了double类型;
byte a=1;
byte b=2;
int c=a+b;//byte类型会先进行提升为int类型,再进行运算;
转换的规则:
- 取值范围小的和取值范围大的进行运算,小的会先提升为大的再进行运算。
- 当有byte、short、char这三种类型的数据在进行运算的时侯,它们都会直接提升为int类型,然后再进行运算。
2、强制类型转换
基本概念:
指两种数据类型之间的转换需要进行显示声明(取值范围大的数据类型转换为取值范围小的数据类型),也被称为显式类型转换。
格式:
目标数据类型 变量名=(目标数据类型) 被强制转换的数据。
举例:
int a=10;
byte b=(byte)a;
注意事项:
- 强制类型转换可能会造成数据的丢失,因为当转换前的数据过大,导致转换后的变量不能完全接收,就会溢出数据造成丢失。
- 浮点型强制转换成整型,小数部分会被删除。