Java 基本数据类型

SHIAGUIYA 2021-02-16 09:12:09
一、基本数据类型

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种 布尔型



整数型中,在不指定任何类型的情况下,默认是int类型;

byte:
例子:byte a = 100,byte b = -50。

short:
例子:short s = 100,short r = -200。

int:
例子:int a = 1000, int b = -2000。

long:
例子:long a = 100000L,Long b = -200000L。
这种类型主要使用在需要比较大整数的系统上;
注意:"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。

整数型的进制写法:

1、十六进制(0x 开头)
byte b=0xF;short s=0xF;int i=0xF;long L=0xFL;

2、八进制(0 开头)
byte b=077;short s=077;int i=077;long L=077L;

3、二进制(0b 开头)
byte b=0b1;short s=0b1;int i=0b1;long L=0b1L;

浮点型中,在不指定任何类型的情况下,默认是double类型;

float:
浮点数不能用来表示精确的值,如货币;
例子:float f1 = 234.5f。//加f或F

double:
double类型同样不能表示精确的值,如货币;
例子:double d1 = 123.4。//[可选]加d或D

boolean:
boolean数据类型表示一位的信息;
只有两个取值:true 和 false;
这种类型只作为一种标志来记录 true/false 情况;
默认值是 false;
例子:boolean one = true。

char:
char类型是一个单一的 16 位 Unicode 字符;
char 数据类型可以储存任何字符;
例子:char letter = 'A';。

浮点型:
float(32位):1bit(符号位) 8bits(指数位) 23bits(尾数位)
double(64位):1bit(符号位) 11bits(指数位) 52bits(尾数位)

二、基本数据类型的包装类

Java每个基本类型在java.lang包中都有一个相应的包装类

包装类有何作用
1、提供了一系列实用的方法
2、集合不允许存放基本数据类型数据,存放数字时,要用包装类型



总结:除了int和char类型的包装类是全称,其余的包装类都是首字母大写

这八种包装类所继承的父类不全都相同。
1、Integer,Byte,Float,Double,Short,Long都属于Number类的子类,Number类本身提供了一系列的,返回以上六种基本数据类型的操作。
2、Character属于Object子类
3、Boolean属于Object子类。

装箱及拆箱
1、将基本数据类型变成包装类称为装箱。
2、将包装类的类型变为基本数据类型称为拆箱。
3、在JDK1.5之后,提供了自动装箱和自动拆箱功能。

三、数据类型转换

1、自动类型转换(隐式类型转换)

整型、字符型数据可以混合运算。

运算中,不同类型的数据先转化为同一类型,然后进行运算。

转换从低级到高级。


自动转换有以下规律:

小的类型自动转化为大的类型

整数类型可以自动转化为浮点类型,可能会产生舍入误差

字符可以自动提升为整数

2、强制类型转换(显式类型转换)

格式: (type)value

type是要强制类型转换后的数据类型

注意:

强制类型转换可能导致溢出或损失精度

在把容量大的类型转换为容量小的类型时必须使用强制类型转换

浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入

例子:
byte byte1=127;//目前这个值是最大值:2^7-1
short short1=32767;//目前这个值是最大值:2^15-1
int int1=2147483647;//目前这个值是最大值:2^31-1
long long1=9223372036854775807L;//目前这个值是最大值:2^63-1
float float1=3.4028235E38F;//目前这个值是最大值:2^128 估值
double double1=1.7976931348623157E308;//目前这个值是最大值:2^1024 估值

//隐式转换

//从byte隐式转换到short
short s1=byte1;
//从short隐式转换到int
int i1=short1;
//从int隐式转换到long
long l1=int1;
//从long隐式转换到float(浮点数:单精度)
float f1=long1;
//从float(浮点数:单精度)隐式转换到double(浮点数:双精度)
double d2=float1;

//显示转换

//从double(浮点数:双精度)显示转换到float(浮点数:单精度)
float f2=(float)double1;
//从float(浮点数:单精度)显示转换到long
long l2=(long)float1;
//从long显示转换到int
int i2=(int)long1;
//从int显示转换到short
short s2=(short)int1;
//从short显示转换到byte
byte b2=(byte)short1;
...全文
381 1 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
HuangHe201691 2021-02-17
不错,可以写成博客赛
  • 打赏
  • 举报
回复
发帖
非技术区

2.3w+

社区成员

Java 非技术区
社区管理员
  • 非技术区社区
加入社区
帖子事件
创建了帖子
2021-02-16 09:12
社区公告
暂无公告