基本数据类型

前言

Java是一种强类型语言, 每个变量都必须声明其数据类型。Java 的数据类型可分为两大类:基本数据类型( primitive data type )和引用数据类型( reference data type )。.

Java中定义了3类8种基本数据类型

数值型- byte、 short、 int、 long、 float、 double
字符型- char
布尔型 - boolean

在这里插入图片描述

整型

整型用于表示没有小数部分的数值,它允许是负数。整型的范围与运行Java代码的机器无关,这正是Java程序具有很强移植能力的原因之一。与此相反, C和C+ +程序需要针对不同的处理器选择最有效的整型。

在这里插入图片描述
一个字节有八位,因此byte范围有2的8次方。因负数,因此范围为(-128~127)。short,int,long同理。

Java语言整型常量的四种表示形式

十进制整数,如:99,-500,0
八进制整数,要求以0开头,如:015
十六进制数,要求0x或0X开头,如:0x15
二进制数,要求0b或OB开头,如: 0b01110011

Java语言的整型常数默认为int型,声明long型常量可以后加' |'或'L '

long 类型常数的写法及变量的声明

long a = 5555555; //编译成功 ,在int表示的范围内(21亿内)。
long b = 5555555555;//不加L编译错误,已经超过int表示的范围。

报错: The literal 55555555555 of type int is out of range .所以我们需要修改代码
为:

long b = 55555555555L;

浮点型

带小数的数据在Java中称为浮点型。浮点型可分为float类型和double类型。
在这里插入图片描述

float类型又被称作单精度类型,尾数可以精确到7位有效数字在很多情况下,float
类型的精度很难满足需求。而double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型。

Java浮点类型常量有两种表示形式:

十进制数形式,例如:3.14 314.0 0.314
科学记数法形式 ,如3.14e0 3.14E2 3.14E-1]

使用科学记数法给浮点型变量赋值:

double f = 314e2; //314*10^2-->31400.0
double f2 = 314e-2; //314*10^(-2)-->3.14

float类型的数值有一个后缀F或者f , 没有后缀F/f的浮点数值默认为double类型。也
可以在浮点数值后添加后缀D或者d,以明确其为double类型。

float 类型常量的写法及变量的声明:

float f = 3.14F;//float 类型赋值时需要添加后缀F/f
double d1= 3.14;
double d2 = 3.14D;

浮点类型float,double的数据不适合在不容许舍入误差的金融计算领域。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。

浮点型数据的比较一

float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d);//结果为false

浮点型数据的比较二

float d1 = 423432423f;
floatd2 = d1+1;
System.out.println(f1==d1);//结果为ture

字符型

字符型在内存中占2个字节,在Java中使用单引号来表示字符常量。例如’A'是一个字符,它与”A"是不同的,”A"表示含有一个字符的字符串。
char类型用来表示在Unicode编码表中的字符。Unicode 编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。

字符型演示

char eChar = 'a';
char cChar = '中';

Unicode具有从0到65535之间的编码,他们通常用从’ \u0000’ 到’ \uFFFF’ 之间的十六进制值来表示(前缀为u表示Unicode )
字符型的十六进制值表示方法:

char c = '\u0061';

Java语言中还允许使用转义字符’ 来将其后的字符转变为其它的含义。 常用的转
义字符及其含义和Unicode值。
转义字符:

char c2= '\n'; //代表换行符

转义字符:
在这里插入图片描述

注意事项

以后我们学的String类,其实是字符序列(char sequence),本质是char字符组成的数组。

boolean型

boolean类型有两个常量值, true 和false,在内存中占一一个字节或4个字节,不可以使用0或非0的整数替代true和false , 这点和C语言不同。boolean 类型用来判断逻辑条件,一般用于程序流程控制 。

boolean 类型演示:

boolean flag ;
flag = true; //或者 flag = false;
if(flag) {
// true分支
} else {
// false 分支
}

Less is More! ! 请不要这样写: if(flag= = true),只有新手才那么写。关键也很容易写错成 if(flag=true),这样就变成赋值flag为true而不是判断!老鸟的写法是if ( flag )或者if ( !flag)

关于boolean类型几个字节的说明:

在《Java虚拟机规范》一书中的描述:“ 虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元索占8位"。也就是说JVM规范指出boolean当做int处理,也就是4字节,boolean数组当做byte数组处理,这样我们可以得出boolean类型占了单独使用是4个字节,在数组中是确定的1个字节。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值