Java中的数据类型  

基本数据类型

整型

JAVA各整型数据都有固定的表示范围和字段长度,其不受具体的操作系统的影响,以保证java程序的可移植性。

JAVA的整型常量默认为int类型,在声明long型数据时,要在数据后面加 “ l ” 或 “ L ” 来标识

如:int i = 100;  //正确

       long  a = 45687212348L  //必须加 “ L ” 否则出错

int类型大小 java java中int类型的长度固定吗_数据

在计算机内部,所有信息都采用二进制表示,每个二进制有0和1两种状态,一个字节有8位,也就是由8个0或1组成,如果是short类型的6,在计算机中是如何存储的?由上图可知,short是两个字节,也就是16位,那么short类型的6就是00000000 00000110。如果是int类型的6是如何存储的?同理,int占4字节,也就是32位,00000000 00000000 00000000 00000110

Java语言中整型常量有三种表现方式,十进制、十六进制和八进制,其中十进制的形式最为常用。


八进制:0 1 2 3 4 5 6 7      注意:八进制必须以0开头,如:0123   045  046

十进制:0 1 2 3 4 5 6 7 8 9     注意:以十进制表示时,第一位不能为0(数字0除外)

十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F  注意:以十六进制表示时,需以0x或0X开头,如:0x8a 0X9A

浮点型

Java浮点数据类型与整形数据类似,有固定的表示范围和字段长度,不受平台影响。

Java中浮点类型数据默认为double类型,如果要声明一个常量为float类型,则需要在数字后面加上“f”或“F”

如:double d = 1234.56; //正确   float f = 12.3F //必须加 “ F ”,否则出错

int类型大小 java java中int类型的长度固定吗_int类型大小 java_02

浮点数不适用于禁止出现舍入误差的金融计算中。

例如,命令System.println(2.0-1.1); 将打印出0.9999999999999,而不是人们希望的0.9。出现这种问题的主要原因在于浮点数值是采用二进制系统表示的。而在二进制系统中无法精确的表示分数1/10,这就好像十进制无法精确表示1/3一样。

字符型

int类型大小 java java中int类型的长度固定吗_十进制_03

字符常量为用单引号引起来的单个字符,如:char c1 = ‘a’;  char c2 = ‘中’

转义字符

int类型大小 java java中int类型的长度固定吗_int类型大小 java_04

布尔型

int类型大小 java java中int类型的长度固定吗_十进制_05

Boolean类型适用于逻辑运算,一般用于程序流程控制。

Boolean类型数据只允许取值true或flase,不可以0或非0的整数替代true或flase。



数据类型之间的相互转换

在java中基本数据类型可以相互转换,boolean类型比较特殊不可以转换成其它类型

int类型大小 java java中int类型的长度固定吗_基本数据类型_06

转换分为默认转换和强制转换:

默认转换:容量小的类型会默认转换为容大的类型

                  byte -->short-->int -->long-->float-->double

                  char-->

byte、short、char之间计算时不会相互转换,首先转换成int

强制转换:将容量大的类型转换成容量小的类型,需要进行强制转换。

int类型大小 java java中int类型的长度固定吗_数据_07

注意:只要不超出范围可以将整型值直接赋值给byte、short、char;在多种类型混合运算过程中,首先将所有数据类型转换成容量最大的那种,再运算

表达式的数据类型自动提升,关于类型的自动提升,注意下面的规则:

1、所有的byte、short、char型的值将被提升为int型

2、如果有一个操作数是long型,计算结果是long型

3、如果有一个操作数是float型,计算结果是float型

4、如果有一个操作数是double型,计算结果是double型