JavaSE数据类型

本文详细介绍了Java中的数据类型,包括基本数据类型如整型(byte,short,int,long)、浮点型(float,double)、字符型(char)和布尔型(boolean)。对于整型,讲解了不同类型的范围和内存占用。浮点型中提到了float和double的区别。字符型中介绍了char类型及转义字符。此外,还讨论了数据类型之间的自动转换和强制转换规则。
摘要由CSDN通过智能技术生成

数据类型 

在Java中数据类型分为两类,基本数据类型和引用数据类型;基本数据类型8种:整型(4种),浮点型(2种),字符型以及布尔类型;除此之外都是引用类型,有数组,类,接口等(在后续会说明);

1.1整数类型 

是指不带小数的数据类型,其表示形式有二进制,八进制,十进制,以及十六进制;在Java中整型变量都是默认带符号的;

byte类型

byte 类型 即字节类型在内存中占1个字节(8bit位)因此其范围是  -2^7-----2^7-1;因为是有符号的即它的二进制中第一位是符号位其他7位是数值位;

short 类型

short 类型即短整型在内存中占2个字节(16bit位) 其范围是 -2^16----2^16-1;

int 类型

int 类型是默认的整型,其在内存中占4个字节(32bit位)其范围是 -2^32----2^32-1;这里与C语言不同的是Java语言不看是多少位的平台int等占内存大小永远是固定的,这也就是Java跨平台的一个原因;

long 类型

long 类型即长整型在内存中占8个字节(64bit位)范围是 -2^64----2^64-1;注意long类型在使用的时候需要在其后面l或L;建议加L因为l不易与数字1区分!

1.2浮点类型

浮点类型又称实型,是带小数的十进制数;

float类型

float 类型即单精度浮点型,在内存中占4个字节(32个bit位)其在使用时在其后面要加上f或F;

float = 10.0F;或float  =  10.0f;

double类型

double类型即双精度浮点型,在内存中占8个字节(64个bit位),其在使用的时候可以在后面加d或D也可以不加,因为 double是默认的浮点型;

double  b = 10.0;即可!

1.3字符类型

字符类型顾名思义就是放字符的;什么是字符?简单说就是你能从键盘敲上去的都叫字符。

char类型

char类型在内存中占2个字节(一个汉字2个字节)这里一定要与C语言的char分清楚,C中char在内存中占1个字节!注意char类型中只能放一个字符!

char a = ' A ';        char b = 98;        

1.3.1转义字符

以' \ '开头的一类字符,称为转义字符!

常见的转义字符:

' \r ' 回车               ' \n '换行        ' \t '水平制表        ' \' '一个单引号........这与C语言中的一样!

1.4布尔类型

boolean类型

boolean用来表示逻辑值-->真或假;在内存中占的大小没有确定,有的书上说占1个字节。其返回值是true或flase;这里也要与C语言的真假分清楚,C中的0为假,非0为真。Java中不能用0与非0代替true与flase;boolean类型常与流程控制语句,判断语句,while,do....while连用;

boolean b = false;//注意布尔类型未初始化默认是flase!

2.基本数据类型转换

8种数据类型除了布尔类型,其他都能够互相转换,转换时分为自动类型自动类型转换和强制类型转换;

2.1自动类型转换

整型,浮点型,字符等都可以进行混合运算,在运算中不同类型的数据先转换为同一数据类型(一般是表示范围最大的)然后在进行转换运算。

各个数据类型表示的范围大小顺序为:byte-->short-->char-->int-->long-->float-->double

自动转换的规则:表示范围小的数据类型可以自动转换为表示范围大的数据类型,其表达式的结果向范围大的数据类型看齐;

例子如下:

byte与short----->short

short与int ------>int

char与int ------>int

int 与float----->float

int,float与double------>double     

.......

这里说的一点是,short,byte,char等小于4个字节的只要进行参与运算其结果就是int 类型!原因是这里发生了隐式中的整型提升与C语言的整型提升一样;

2.2强制类型转换

强制类型的转换规则:表示范围大的数据要转换成范围小的数据,该转换有可能丢失数据;

强制类型转换格式:

(强制转换类型) 变量名;        int a = ( int )12.9;

上面的double强转为int后的结果为12;0.9的精度丢失了!在实际开发中要想清楚了在转否则会产生问题;

下面看一些代码:

解释:

 

运行结果:

 

经我检查结果无误! 

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值