-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------....
Java 基础知识中的,数据类型
在Java中数据类型有两种,一种是基本数据类型,一种是引用数据类型,
在基本数据类型中,又有包含了八种类型,分别是,byte char short int long float double boolean
现在就对这八种基本数据类型进行分析和介绍;
byte 字节型,包含了一个字节,它的取值范围是在,-128~127 之间,如果不是在这个范围之内的话,那么就能定义成byte 类型的.
char 字符型,包含了两个字节,他在定义的时候,用的是单引号,扩起来的,一个数字或字母,如果定义成,双引号的话,那么就会报错
这个地方要小心一点.如; char ch ='a'; 而不能 写成 char ch ="a";这样是错误的.这个是字符串类型的.
short 短整型,包含了两个字节,(-2的15次方 ~ 2的15次方-1),这个地方表示的不是太好,别太介意.那么我们在定义的时候也不能超出范围
要是超出的话,也是不能编译通过的.
int 整型,他是我们经常用到的一个类型,它包含了4个字节,(-2的31次方 ~ 2的31次方-1),这个地方表示的不是太好,别太介意,但是在定义的
时候也是不能超出范围的,在默认的情况之下都是,int 类型的.
long 长整型,这种类型,不是很常用,但是我们也要知道,它包含了8个字节,(-2的63次方 ~ 2的63次方-1),这个地方表示的不是太好,别太介意
float 和 double 都是浮点型(就是小数),float是包含了4个字节,double是包含了8个字节.
上面说完了它的类型,和范围的话,就要说一下他们到底是怎么用的了,这个时候就要用到变量了,
那什么,叫做变量呢? 从字面上理解的话,它就是变换的量.当我们定义一个变量的时候就是在内存,离开辟了一块空间,专门数存放
你定义的类型的数字的,是在栈内存中存储的,这一块区域的名字就是你起的变量的名字,如;int a = 3; 这个时候,就在栈内存中开辟
了一块空间,存放 3 这里面要对栈内存进行描述一下,在内存中有 栈内存,堆内存,方法区,本地,和寄存器.在栈内存中,的变量在执行
完以后就会被Java虚拟机所释放,所以效率比较高,
现在定义好了 就开始使用了.
在使用的时候,尤其是基本数据类型之间的相互转换的,一定要小心
我们在由小的转向大的时候,如;
byte b = 3;
int a = 4;
int c = b+a;
这个时候叫做自动类型转换,这个是会报错的,
但是我们在由大的转到小的时候那个时候,用到了强制类型转换.
class TestDemo
{
public static void main(String[] args)
{
这个是强制类型转换,因为定义好的
age 是byte 类型的,现在加上3 是int 类型的,在计算机底层会将
age进行类型的提升,都转换成int型 的这个时候就会出现损失精度
那么我们做的就是强制类型的转换,但是在强制类型转换的时候,要看看
要转换的类型的范围,如果是超出范围的话那么,就会出错的,输出的数字可能不是
你想要的那样的.
byte age = 20;
byte a1= (byte)(age+3);
System.out.println(a1);
在定义 long 类型的时候,右边如果不是超出int 范围的话
L 是不用加上的,加上也是可以的,如果是超过int范围的话,就需要加上L
long a = 30;
long b= 40;
long c = b+a;
再遇到byte这种情况的时候要小心.
编译是不被通过的,因为,不确定这两个byte相加Java
不知道会不会超出范围,所以报错,就相当于两个byte的盒子
里面的数据想存放到,byte中不知道这两个盒子里面的数据是否
是在byte 的范围内,不能确定,这个时候就会出错.
byte b= 3;
byte b1= 4;
byte b2 =b+b1;
System.out.println(b2);
这句话是可以的,因为Java 在做运算的时候会把
3 + 4 看做一个常量来做运算.
byte b3 = 3+4;
byte b4 = 7;//这两个其实是一样的.
System.out.println(b3);
这个是可以的因为只有在,较小的数据类型的时候,一不小心就会超出范围,
所以Java 虚拟机会先去做判断,
像int 这样的话,就不会去做判断
int a= 300;
int b= 200;
int c= a + b;
System.out.println(c);
byte b= 3;
int i = b+2;
System.out.println("i="+i);
byte x= 1;
x= x+1;
System.out.println(x);
byte x= 1;
x+=1;
System.out.println(x);
long a= 3;
int y= (int)(a+1);
System.out.println(y);
int in = 3;
byte by = (byte)in;
System.out.println(by);
byte b;
int a=333;
byte x= (byte)a;
System.out.println(x);
}
}
这个人
-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------....