Java数据结构——基本数据类型

八大基本数据类型

boolean、byte、short、char、int、long、float、double

逻辑类型:boolean

常量:true,false
变量:使用关键字boolean来声明逻辑变量,声明时可以赋初值

boolean male=true;

整数类型(4种)

与C语言不同,Java没有无符号的byte、short、int、long,即有一位是符号位。

byte(1字节)

取值范围:-2^7~ 2^7-1
不存在byte型常量,但是可以将一定范围内的int型常量赋值给byte型变量。

byte x=12,y=-20,郭超=21;

short(2字节)

取值范围:-2^15~ 2^15-1
不存在short型常量,但是可以把一定范围内的int型常量赋值给short型变量。

short x=12;

int(4字节)

取值范围:-2^31 ~ 2^31-1

int x=100;

long(8字节)

取值范围:-2^63~ 2^63-1
long型常量用后缀L来表示

long width=12L;

字符类型 char(2字节)

取值范围:0~ 2^16-1
char型数据一定是无符号的。
常量用单引号括起来。

变量可以直接赋字符也可以赋值Unicode编码位置

char ch='a',home='字符',ch2=97;

对于不能通过键盘输入的字符,需要使用转义字符常量

char ch1='\n';//换行
char ch2='\"';//双引号
char ch3='\\';//反斜杠

在Java中可以用字符在Unicode表中排序的位置的十六进制转义来表示该字符。(需要用u做前缀)

char you='\u0041';//表示字符 A

System.out.println((int)'A');//65
System.out.println((char)65);//A


浮点类型

float(单精度)(4字节)

取值范围:1.4e-45~ 3.4028235e38和-3.4028235e38~ -1.4e-45
常量后面必须要有后缀f或F。

float变量在存储型数据是保留8位有效数字(从第一个不为0的数字算起)。
例如:将常量12345.123456789f赋值给float型变量x

float x=12345.123456789f;

x存储的实际值是:12345.123046875(下划线是有效数字)


double(双精度)(8字节)

取值范围:4.9e-324~ 1.7976931348623157e308和-1.7976931348623157e308~ -4.9e-304
double型常量后面可以有后缀d或D,可以省略。

double变量在存储型数据是保留16位有效数字,与float类似。

在比较float型数据和double型数据的时候必须注意数据的实际精度。
例如:

float x=0.4f;
double y=0.4;

实际存储在x中的数据是0.4000000059604645
实际存储在y中的数据是0.4000000000000000
因此y中的值小于x中的值。

类型转换运算

把一种基本数据类型变量的值赋值给另一种基本数据类型变量,涉及数据转换。
数据精度排列:
byte<short<char<int<long<float<double

把级别低的变量的值赋值给级别高的变量,系统自动完成数据类型的转换。

int x=50;
float y;
y=x;//y的值是50.0

把级别高的变量的值赋给级别低的变量时,必须使用类型转换运算。

int x=(int)34.89;//x=34
long y=(long)56.78f;//y=56

当把一个int型常量值赋值给一个byte、short、char型变量时,不可超出这些变量的取值范围,否则必须进行类型转换运算。

byte a=(byte)128;//a的值是-128
byte b=(byte)-129//b的值是127

a最大是127,128超出他的取值范围一个单位,从最小值开始取一个数也就是-128。b同理。(循环范围取值)

另外一个常见错误就是把double型常量赋值给float型变量使没有进行类型转换运算,
例如:

float x=12.4;

正确做法:

float x=12.4f;
//或者
float x=(float)12.4;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GuochaoHN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值