Java的基本数据类型和数据类型转换
首先java属于强类型语言,要求变量的使用要严格遵守规范,所有变量都必须先定义后才能使用。
Java的数据类型分为以下两种:
1 基础数据类型(primtive type) 和 2 引用数据类型(reference type)
今天只讲基础数据类型,然后基础类型里面还可以细分一下,分为:
数值类型:
- 整数类型
- byte 占1个字节范围 (-128 127)
- short 占2个字节范围(-32768 32767)
- int 占4个字节范围(-2147483648 2147483647)(最为常用)
- long 占8个字节范围(-9223372036854775808 -9223372036854775807)
- 浮点类型(我们数学说叫做小数,当在java里面叫做浮点)
- float 占4个字节范围
- double 占8个字节范围
- 字符类型(其实在java里面,字符本质上也是一个数字。)
- char 占2个字节范围
boolean类型:占1个位 只有true和false两个。
一个字节(btye)等于八个位(bit),位是计算机内部数据存储的最小单位。
public class text {
public static void main(String[] args) {
//byte的存储范围在-128到127之间,下面我演示一下byte两种赋值。其余的short,int,long,float,double就依次类推
//这个赋值正确,不会报错,因为10在-128到127之间
byte num=10;
//这个就会报错,因为赋的值已经超出byte的储存范围。
byte num2=128;
/*
下面是几个注意点!!!
在使用long类型和flaot类型的时候,都需要,给变量值后面加个后缀。例如:
*/
int numa=10;
long numb=10L;
float numc=10.4F;
double numd=10.5;
//注意--->后缀的这个英文能小写,但是还是写成大写,养成良好的编码规范!
/*
然后现在讲一下字符型 char占两个字节,一个英文单词和一个汉字就带表一个字节。
并且注意的是,变量值是用单引号'',而不是双引号""。
*/
char a='a';
char b='涛';
/*
最后就是boolean型 它只有两个值,便是true,false。中文意思就代表真和假
*/
boolean a1=true;
boolean a2=false;
}
}
数据类型转化
数据类型转化可以分为:
-
强制转换(不推荐)
-
自然转换
-
强制转换什么意思呢,也就是说存储大的类型,转换为存储小的类型。例如:
public static void main(String[] args) { int a=130; byte b= (byte) a; System.out.println(b); //输出结果b:-126 }可以通过看到,a明明是130,按照逻辑来讲,b应该也是130,但输出结果是-126,这就是内存溢出导致数据错乱的一个问题,本来byte的存储空间应该在-128 到 127 之间,但是a的值130,已经大于它的存储范围,所以产生了内存溢出的错误。这也就是我们所说的强制转换。通俗一点理解就可以为,由高到低,由大到小,转换。
-
自然转化就是反过来,存储小的类型,转换为存储大的类型。例如:
public static void main(String[] args) { int a=10; float b=a; System.out.println(b); // 输出结果 b:10.0 }首先看到上面的代码,一些同学可能会感到疑惑,不是存储小的类型,转换为存储大的类型,int的范围是4个字节,float的范围也是4个字节呀,对,在java里面虽然int和float存储范围一样大,但是float还是比它大的。所以可以这样转,而且结果的是10.0,是不是由一个整数,变成一个浮点数了。这就叫做自然转化。
-

浙公网安备 33010602011771号