我们先来了解一下基本的数据类型有哪些?Java语言 提供了八种基本数据类型,其中包括六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔值。
byte:
1、 byte数据类型是8位(bit)、有符号的以二进制补码表示的整数;
2、最小值是-128(-2^7);
3、最大值是127(-2^7-1);
4、 默认值是0,例子:byte a=100,byte b=-50。
Short:
1、 short数据类型是16位、有符号的以二进制补码表示的整数;
2、最小值是-32768(-2^15);
3、最大值是32768(2^15-1);
4、 Short数据类型可以节省空间,一个short变量是int型变量所占的空间的二分之一;
5、 默认值是0,列子:short s=100, short r=-200。
int:
1、 int数据类型是32位,有符号的以二进制补码表示的整数;
2、 最小值是-2,147,483,648(-2^31);
3、最大值是2,147,483,647(2^31-1);
4、 一般地整型变量默认为int类型;
5、 默认值是0;列子:int a=1000,int b=-2000.
Long:
1、 long数据类型是64位、有符号的以二进制补码表示的整数;
2、最小值是-9,223,372,036,854,775,808(-2^63);
3、最大值是9,223,372,036,854,775,807(-2^63-1)
4、这种类型主要使用在需要比较大整数的系统上;
5、默认只是0L;列子:Long a=100000.Long b=-200000。注意:“L”理论上不分大小写,但是若写成“l”容易与数字“1”混淆,不容易分辨,所以最好大写
float:
1、 float数据类型是单精度,32位、符合IEEE754标准的浮点数;
2、 float在存储大型浮点数组的时候可节省内存空间;
3、 浮点数不能用来表示精确的值,如货币;
4、 默认值是0.0f;列子:float f1=234.5f.
boolean:
1、 boolean数据类型表示一位的信息;
2、 只有两个取值:true和false;
3、 这种类型只作为一种标志来记录true/false情况;
4、 默认值是false;列子:boolean one=true;
char:
1、 char类型是一个单一的16位Unicode字符;
2、 最小值是\u000(即为0),最大值是\uffff(即为65.535);
3、 Char数据类型可以储存任何字符;例子:char letter=’123’.
我们了解进本的数据类型后,到了我们今天的重点要讲的内容啦!类型转换,类型转换又分为两种:自动类型转换也叫“隐式类型转换”;强制类型转换也叫“显示类型转换”。整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后再进行运算。(转换从低级到高级)
自动转换:
1、 小的类型自动转化为大的类型;
byte byteValue=100;
int intValue=byteValue+80;
System.out.println(“byte类型100+int类型80=”+intValue);
输出结果
2、 整数类型可以自动转化为浮点类型,可能会产生舍入误差;
注:Float和Double提供了快速的运算,然而问题在于转换为二进制的时候,有些数字不能完全转换,只是无限接近于原本的值
float floatValue=10+2f;
float floatValue2=floatValue-11.9f;
System.out.println(“floateValue的值=”+floatValue);
System.out.println(“floateValue的值-11.9f=”+floatValue2);
输出结果
3、 字符可以自动提升为整数
char charValue=’a’;
int intValue2=charValue+10;
System.out.println(“char类型的a加int类型的10=”+intValue2);
输出结果
强制类型转换(显示类型转换)
格式:(type)value type是要强制类型转换后的数据类型
注意:1、强制类型装换可能导致溢出或者损失精度导致溢出
byte A=(byte) 128;
System.out.println(“byte类型的128=”+A);
输出结果
损失精度
System.out.println(“Long的最大值=”+Long.MAX_VALUE);
float floatValue=(float) Long.MAX_VALUE;
System.out.println(“损失精度=”+floatValue);
输出结果
2、在把容器大的类型转换为容器小的类型时必须使用强制类型转换
int intValue=120;
byte byteValue=(byte) intValue;
System.out.println(“int类型强制转换为byte类型=”+byteValue);
输出结果
4、 浮点型到整数的转换是通过舍弃小数得到,而不是四舍五入
int intValueA=(int)13.7;
int intValueB=(int)-13.7;
System.out.println(“intValueA=”+intValueA);
System.out.println(“intValueB=”+intValueB);
输出结果
总结:想要把Java学好,那就把最基本的数据类型掌握好。基本的数据类型,就相当于Java的核心的内容。在数据类型的转换这一方呢!其实也是比较重要的,小的数据类型转换为大的数据类,存在隐式转换。大的数据类型转换为小的数据类型,则需要用到强制转换,强制转换的过程中也存在一个重要的问题;可能导致溢出或者损失精度,对数据带来不准确。前几天我和一个朋友聊天,她跟我说了一句话“谁能持之以恒,谁能一站到低。”我觉得这句话,真的很适合现在我们。虽然每个人都有着自己的梦想,当能真正坚持下来的,又有几个呢?有些人走着走着,就忘记自己出发的目的了,忘记自己的初心。正处于青春美好的时候,我们都有热血蓬勃的心态,有时候就像打了鸡血一样勤奋,追求自己的梦想;有时候会失去战斗力,对任何都没有希望。想要成为真正的强者,我觉得持之以恒是我们每个人必不可少的一门必修课。其实,在学习Java的过程中也是,我们总是觉得基础很简单,然而对基础有一种轻视的心理。到头来才发现自己什么也没学会,才意识到基础的重要性。做每一件事,我们都应该从小事做起,如果你连一件基本的小事都做不好,那更不要谈大事了。