总体划分
基本类型
整数类型
-
当数据不带有小数或分数时,即可以声明为整数变量,如3,-147等即为整数。Java中,整数数据类型可以分为long、int、short及byte四种:long为64位,也就是8个字节(bytes),可表示范围为-9223372036854775808 到 9223372036854775807;int为32 位,也就是4个字节,表示范围为-2147483648 到 2147483647;若是数据值的范围在-32768 到 32767之间时,可以声明为short(短整数)类型;若是数据值更小,在-128到127之间时,可以声明为byte类型以节省内存空间。
举例来说,想声明一个短整型变量sum时,可以在程序中做出如下的声明:
short sum ; // 声明sum为短整型 -
数据超长
class DataDemo01 {
public static void main(String[] args) {
int num = 99999999999999999999999 ;
// 定义整型变量,错误,超出长度范围
}
}
- 数据溢出
当整数的数据大小超出了可以表示的范围,而程序中又没有做数值范围的检查时,这个整型变量所输出的值将发生紊乱,且不是预期的运行结果。
class DataDemo02 {
public static void main(String[] args) {
int max = Integer.MAX_VALUE; // 得到整型的最大值
System.out.println("整型的最大值:" + max); // 输出最大值
System.out.println("整型最大值 + 1:" + (max + 1)); // 最大值加1
System.out.println("整型最大值 + 2:" + (max + 2)); // 最大值加2
}
}
- 强制转化防溢出
public class DataDemo03 {
public static void main(String[] args) {
int max = Integer.MAX_VALUE; // 得到整型的最大值
System.out.println("整型的最大值:" + max); // 输出最大值
System.out.println("整型最大值 + 1:" + (max + 1)); // 最大值加1
System.out.println("整型最大值 + 2:" + (max + 2L));// 最大值加2,变为long型
System.out.println("整型最大值 + 2:" + ((long)max + 2));// 强制转换为long型
}
}
字符类型
字符类型在内存中占有2个字节,可以用来保存英文字母等字符。计算机处理字符类型时,是把这些字符当成不同的整数来看待,因此,严格说来,字符类型也算是整数类型的一种。
- 整数字符互相转换
public class DataDemo04 {
public static void main(String[] args) {
char ch1 = 'a'; // 定义字符
char ch2 = 97; // 定义字符,整型转字符
System.out.println("ch1 = " + ch1); // 打印输出
System.out.println("ch2 = " + ch2); // 打印输出
}
}
- 常见转义字符
public class DataDemo05 {
public static void main(String[] args) {
char ch1 = '\"'; // 定义转义字符
char ch2 = '\\'; // 定义转义字符
System.out.println("ch1 = " + ch1); // 打印输出
System.out.println("ch2 = " + ch2); // 打印输出
System.out.println("\"Hello World|\"") ; // 直接输出转义字符
}
}
浮点类型
在日常生活中经常会使用到小数类型的数值,如身高、体重等需要精确的数值时,整数就不能满足程序设计者的要求了。在数学中,这些带有小数点的数值称为实数,在Java里,这种数据类型称为浮点数类型(float),其长度为32个字节,有效范围为-3.4E1038 到 3.4E1038。当浮点数的表示范围不够大的时候,还有一种双精度(double)浮点数可供使用。双精度浮点数类型的长度为64个字节,有效范围为-1.7E10308 到1.7E10308。
public class DataDemo06 {
public static void main(String[] args) {
float num = 3.0f; // 定义float型变量
System.out.println("两个小数相乘:" + num * num);// 计算两数相乘
}
}
布尔类型
布尔(boolean)类型的变量,只有true(真)和false(假)两种。也就是说,当将一个变量定义成布尔类型时,它的值只能是true或false,除此之外,没有其他的值可以赋值给这个变量。
举例来说,想声明名称为flag变量为的布尔类型,并设置为true值,可以使用下面的语句:
boolean flag = true ; // 声明布尔变量flag,并赋值为true
public class DataDemo07 {
public static void main(String[] args) {
boolean flag = true; // 定义布尔型变量
System.out.println("flag = " + flag); // 打印输出
}
}
基本类型默认值
数据类型转换
Java的数据类型在定义时就已经确定了,因此不能随意转换成其它的数据类型,但Java允许用户有限度地做类型转换处理。数据类型的转换方式可分为“自动类型转换”及“强制类型转换”两种。
自动转换
在程序中已经定义好了数据类型的变量,若是想用另一种数据类型表示时,Java会在下列的条件皆成立时,自动做数据类型的转换:
转换前的数据类型与转换后的类型兼容。
转换后的数据类型的表示范围比转换前的类型大。
public class DataDemo08 {
public static void main(String[] args) {
int x = 30; // 定义整型变量
float y = 22.19f; // 定义浮点型变量
System.out.println("x / y = " + (x / y)); // 除法操作
System.out.println("10 / 3.5 = " + (10 / 3.5)); // 直接使用常量进行除法
System.out.println("10 / 3 = " + (10 / 3)); // 直接使用常量进行除法
}
}
- 任何类型数据朝string类型转换
public class DataDemo09 {
public static void main(String[] args) {
String str = "lixinghua "; // 定义字符串变量
int x = 30; // 定义整型变量
str = str + x; // 改变字符串变量内容
System.out.println("str = " + str); // 打印输出
}
}
强制转换
当两个整数进行运算时,其运算的结果也会是整数。举例来说,当做整数除法8/3的运算,其结果为整数2,并不是实际的2.33333…,因此在Java中若是想要得到计算的结果是浮点数时,就必须将数据类型做强制性的转换,转换的语法如下:
(欲转换的数据类型)变量名称;
public class DataDemo11 {
public static void main(String[] args) {
float f = 30.3f; // 定义浮点型变量
int x = (int) f; // 强制转换为int型
System.out.println("x = " + x); // 输出转型之后的值
System.out.println("10 / 3 = " + ((float) 10 / 3));
// 常量计算使用强制类型转换
}
}