数据类型,说白了就是数据的类型,要知道内存中储存的数据有很多类型。这里举个简单的例子,在计算机中输入“1000“,那么它表示的是一个数学中的可用于计算的整数1000,还是只是四个字符‘1’,‘0’ ,‘0’ ,‘0’呢?从这里就可以看出来,计算机要理解我们输入的数据,那么数据的类型也必不可少。 定义:数据类型是一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称。
数据类型有什么用呢,简单地说就是数据类型决定了内存中存储数据的类型及所需内存的大小。 我们定义一个变量,要首先定义他的数据类型,变量的数据类型就决定了如何将代表这些值的数据(位)存储到计算机的内存中。并且出于节省内存空间的考虑,就根据不同的类型分配不同大小的内存空间,达到节省内存的目的。
Java的数据类型可分为两大类: 基本数据类型:byte、short、int、long、double、float、boolean、char 引用数据类型:类、接口、数组、枚举、注解
整型是用来定义整数的关键字,byte、short、int、long四种类型都是整形,并且对这四种类型分配了不同大小的内存空间,因此它们能储存数据的大小范围也不同,byte在内存中占1字节,即8位;short型在内存中占2字节,即16位;int型在内存中占4个字节,即32位;long型在内存中占4个字节,即64位。
数据类型字节数位数byte18short216int432long864在Java中整形数据有四种表达方式: 1.十进制; 2.二进制(以0b开头,如0b100表示十进制中的4); 3.八进制(以0开头,如012表示十进制中的10); 4.十六进制(以0X开头,如0XE表示十进制中的14)。
int num_New = 9;//用十进制表示 int num_New = 0b1001;//用二进制表示 int num_New = 011;//用八进制表示 int num_New = 0X9//用十六进制表示运行结果如下
浮点型是用来定义小数的关键字,浮点型有两种,float型和double型,double型分配的内存空间更大,能储存小数位更多的小数。 浮点型数据有两种表达方式: 1.十进制(如3.14); 2.科学计数法(如3.14e1)。
float f = 1.3f; double f =1.4;结果如下 注意: 赋值时float f = 1.3;是错误的,1.3默认是double型的。在对float数据进行赋值时,要在数字的后面添加f(或F),否则Java编译器会认为1.3是一个double类型的数值,而double不能直接赋值给float类型,故会报错,正确赋值方式应为float f1 = 1.3f。
布尔型,又称逻辑类型,用来判断真假,只有true和false两个取值,默认初始值为false。
boolean flag = true; boolean flag = false;注意: 在二进制逻辑中Java规定1为真0为假。
字符型采用Unicode编码,一个Unicode编码占2个字节(即16位),由于字符型不存在正负之分,所以其表示整数的范围为0至2的16次方-1(0~65535)
字符型变量有以下四种赋值方式: 1. 使用英文单引号(’)括起单个字符
char c1 = 'a'; char c2 = '中';//char可以存储一个中文(一个中文也占2个字节);2.使用十六进制字符代码表示单个字符,格式为“\uXXXX“
char c1 ='\u0061';// 实质代表a字母3.直接用数字代表单个字符
char c2 = 97;//表示a字母4.采用转义字符‘\’表示,将其后面的字符转化成其他意思
char c1 = '\t';//制表符 char c2 = '\n';//换行符-New Line char c3 = '\r';//回车符-Carriage Return基本数据类型的转换分为两种:
自动类型转换(隐式类型转换)强制类型转换(显式类型转换)将表示范围小的数据类型赋值给表示范围大的数据类型时(byte->short->int->long->float->double),Java自动使用隐式类型完成数据类型转换。
float x = 100;//int赋值给float,x的值为100.0 int x = 50; double y; y=x;//int赋值给double,y的为50.0当把级别高的变量赋值给级别低的变量时,必须使用显式类型转换,但可能导致精度缺失或溢出。 显示转换格式:(要转换的类型)被转换的值。
int x=(int)23.89;//x的值为23 long y=(long)34.98F; ;//y的值为34 byte z = (byte)256;//z的值为0,数据结果出现溢出(end)