本章目标
掌握Java数据类型的划分。
掌握Java中的八种基本数据类型。
掌握数据类型之间的转换。
Java中数据类型的划分:
数据类型分为:基本数据类型和引用数据类型。
基本数据类型划分为:数值型( 整数类型(byte、short、int、long)和浮点类型(float、double) )、字符型(char)和布尔型(boolean)。引用数据类型包括:类(class)、接口(interface)、数组。
基本数据类型类似于普通的值。引用数据类型传递的是内存的地址。
java数据类型是有取值范围的,要使用一个类型必须按照一个范围指定其内容。如果超出了他的类型范围则肯定会出现数值不正确的情况。例如: int number= 99999999999999999999999999999999999999999;
一个数据有自己的保存范围,超过长度,则编译的时候就会出现错误。一定要在类型允许的范围内。
数据溢出:当整数的大小超出了可以表示的范围,而程序中又没有做出数值范围的检查时这个整型变量所输出的值将发生紊乱,且不是预期的运行结果。当一个数字已经是最大值或最小值的时候,再进行增加或减少操作都会产生数据的溢出。示例如下:
public class DataDemo {
public static void main(String[] args) {
int max = Integer.MAX_VALUE; // 求出最大值
System.out.println("整数的最大值:"+max);
System.out.println("整数的最大值+1:"+(max+1));
System.out.println("整数的最大值+2:"+(max+2));
}
}
结果如下:
由于进位的原因最大值加1就会成为最小值,最小值减一就会成为最小值。
现在如果想要避免数据的溢出,可以采用扩大数据类型的方法:int—>long 实例如下:
public class DataDemo {
public static void main(String[] args) {
int max = Integer.MAX_VALUE; // 求出最大值
System.out.println("整数的最大值:"+max);
System.out.println("整数的最大值+1:"+(max+1));
System.out.println("整数的最大值+2:"+(max+2));
System.out.println("整数的最大值+2:"+((long)max+2));
}
}
结果如下:
如果要解决数据溢出的问题,则可以采用扩大数据范围的方式完成。
字符类型:
字符类型在内存中占有2个字节,可以用来保存英文字母等字符。计算机处理字符类型时,是把这些字符当成不同的整数来看待。因此,严格来说,字符类型也算是整数类型的一种。
public class DataDemo2 {
public static void main(String[] args) {
char ch1 = 'a'; // ''
char ch2 = 97; // 通过数字定义字符变量。
System.out.println("ch1= " + ch1);
System.out.println("ch2= " + ch2);
}
}
常用的转义字符:
NO. | 转义字符 | 描述 | NO. | 转义字符 | 描述 |
1 | /f | 换页 | 2 | \\ | 反斜杠线 |
3 | /b | 倒退一格 | 4 | \' | 单引号 |
5 | /r | 归位 | 6 | \" | 双引号 |
7 | /t | 制表符Tab | 8 | \n | 换行 |
public class DataDemo03 {
public static void main(String[] args) {
char ch1 = '\"'; //表示的是一个 "
char ch2 = '\\'; // 表示的是一个\
System.out.println(ch1);
System.out.println(ch2);
System.out.println("\"Hello word\"");
}
}
定义两个小数相乘
在JAVA一个数字或者一个小数实际上也都是存在默认类型的。
小数的默认类型是double类型。
整数的默认类型是int类型。
public class DataDemo04 {
public static void main(String[] args) {
float num = 3.0f; //定义一个浮点型变量
System.out.println("两个小数相乘:"+num * num);
}
}
在开发中使用float就足够了,注意:在一个运算表达式中 运算结果的类型是表达式中最高数字的类型。假如只有两个整数进行运算 结果也是整数类型。如果出现Float类型的数进行参与运算,结果是Float类型。如果整型、float类型和double类型的数参与运算,那么结果是double类型。
布尔类型
布尔(boolean)类型的变量,只有true和false两种,也就是说,当一个变量定义成布尔类型的时候,它的值只能是true或false,除此之外没有其他的值可以赋给这个变量。例如:boolean flag = true;
开发中尽可能为每一个变量指定其具体的内容,不要使用默认值,可以减少开发中的一些问题。
数据类型的自动转换
Java的数据类型在定义时就已经确立了,因此不能随意转换成其他的数据类型,但Java允许用户有限度的做类型转换处理。数据类型的转换分为:“自动类型转换” 及 “强制类型转换”两种。
在程序中已经定义好了数据类型的变量,若是想用另一种数据类型表示时,Java会在下列的条件皆成立时,自动做数据类型转换:
1、转换前的数据类型与转换后的数据类型兼容。
2、转换后的数据类型的表示范围比转换前的类型大。
提示:任何类型的数据都可以向String转换。示例如下:
public class DataDemo04 {
public static void main(String[] args) {
String str = "liu xun";
int x = 30;
str = str + x;
System.out.println(str);
}
}
在进行输出的时候也需要注意:当两数值相加再与字符串连接的时候,由于运算级的问题要将加法表达式用括号括起来。
数据类型的强制转化:
当两个整数进行运算时,其运算的结果也会是整数 例如: 8/3 结果是2 如果想要得到浮点型数,就必须将数据类型作强制类型转换,示例如下:
public class DataDemo05 {
public static void main(String[] args) {
float f = 30.3f; //浮点型
int x = (int)f; // 强制类型转换
System.out.println(x);
System.out.println("10/3= "+((float)10/3));
}
}
总结:
1、Java中的数据类型划分。
2、八种基本数据类型
3、String:任何类型都会向String进行转换。