上一节我们把我们的第一个程序运行起来了,这一节我们开始我们Java基础的学习。先对程序的数据类型进行介绍吧。
一、数据类型简介
在Java中,数据类型主要分基本数据类型和引用数据类型,下面来科普一下这两种数据类型到底是什么。
基本数据类型:主要包括整数、浮点数、字符、布尔这四类。
整数:很好理解,就是我们数学里的整数,如1,100,123,......。例如人的岁数,出生年月日,均是整数。
浮点数:这个就是我们数据里的小数,带有小数点的,在Java里叫浮点数而已。如5.2,4.8等等。例如人的身高。
字符:可以把它理解成字,就像“我爱你”,这种就是字符。例如人的姓名
布尔:这个就是我们逻辑中的“是”和“否”,在程序时就是true和false。例如是否为男性。
以上四类就是我们Java中的四类基本数据类型。
引用数据类型:主要包括类、数组、接口这三类。
类:可以理解成一个整体,如人,动物等,由基本数据类型组成,人均有岁数、身高、出生年月日、性别等属性。
数组:可以理解成一种群体的集合,如一群人,这些集合里的个体都是同样类型的。如足球队,都是球员组成。
接口:它是Java的一个抽象概念,为一类群体抽取的一个模型,例如人是一个接口,美国人,中国人就是这个模型创建出来的,具有相同的特征。
上述的解释可能比较抽象,但是大致了解他们的区别即可,不需要完全理解,在后面的开发中慢慢就会理解这些概念了。
二、基本数据类型
我们先从基本数据类型来逐个介绍,并且在程序中如何使用他们。
1、整数
整数主要分:字节、短整数、整数和长整数三种,它们的区别是范围长度不同。
字节的长度为1个字节,数字范围为:-128—127,代码中的标识为byte。
短整数的长度为2个字节,数字范围为:-32768 ~ 32767,代码中的标示为short。
整数的长度为4个字节,数字范围为:-2147483648 ~ 2147483647,代码中的标示为int,这种类型也是Java中的整数的默认类型。
长整数的长度为8个字节,数字范围为:-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807,代码中的标示为long。
注意:不需要去记忆这些整型的具体长度,在日常开发中经常只是使用到int类型而已。
这部分主要需要理解的内容为:整数有分三种,它们的区别是长度,并且三种的符号分别是short、int和long即可。
代码中的使用:
public class HelloWorld {
public static void main(String[] args) {
byte bMin = -128;
byte bMax = 127;
byte bError = -129;
short sMin = -32768;
short sMan = 32767;
short sError = -32769;
int iMin = -2147483648;
int iMax = -2147483648;
int iError = -2147483649;
long lMin = -9223372036854775808l;
long lMax = 9223372036854775807l;
long lError = -9223372036854775809l;
}
}
代码解析:
注意:
1、长整型的数字最后为什么需要加一个L,原因是整型的默认类型为int,所以数字-9223372036854775808程序认为是int类型的,所以不加L会报错,加了L就是告诉程序,我这个数字是个长整型的。
2、浮点数(小数)
浮点数主要分:单精度浮点数和双精度浮点数,它们的区别也是范围长度不同。
单精度浮点数的长度为4个字节,float的精度为7~8位有效数字,代码的标示为:float。
双精度浮点数的长度为8个字节,double的精度为16~17位,代码的标示为:double,是Java中浮点数的默认类型。
代码中的使用:
public class HelloWorld {
public static void main(String[] args) {
float ff = 2.2;//报错:默认2.2是double类型,精度高于float。高精度向低精度赋值会报错
float fs = 2.2f;
double fb = 2.2f; //低精度向高精度赋值是允许的
double fd = 2.2;
}
}
代码解析:
注意:浮点型的默认类型为双精度浮点数double,所以float的赋值数据需要在数据后面加一个f,告诉程序该数据都float类型。
低精度可以赋值给高精度,但是高精度不能给低精度赋值,否则出现数据失真,丢失精度。
3、字符
字符(char)的长度为2个字节,它是无符号型,范围为0—65535,是一个16位二进制的Unicode字符。
byte与ASCII的关系:
byte的数据对ASCII的字母是对应关系,例如下面程序。
public static void main(String[] args) { byte g = 'b'; System.out.println(g); }
打印输出为:98,证明'b'字符对应byte数值为98。
byte与char的关系:
我们都知道,char是存字符的,但是其实char也是可以直接存整型,但是其代表的是整型所对应的字符,例如下面代码:
public static void main(String[] args) { char i = 85; System.out.println(i); }
打印输出为:U,证明85对应字符为U字符。
4、布尔
布尔类型(boolean),长度为1个字节,其只有两个值:true、flase,没有其他值,true存1,false存0。
以上的则为Java对应的所有基本数据类型。
三、引用数据类型
该部分不需要太理解这部分的数据类型,后续学习过程中,慢慢就能了解到类、数组、接口等概念。
四、数据类型的转换
1、自动转换
2、强制转换