Java数据类型

本章目标
掌握Java数据类型的划分
掌握Java中的八种基本数据类型
掌握数据类型间的相互转换

 

Java数据类型划分

 


Java基本数据类型

 

整数类型
当数据不带有小数或分数时,即可以声明为整数变量,如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为短整型

 

数据过长

public class DataDemo1 {
	public static void main(String[] args) {
		int num=99999999999999999999;//定义整型变量,错误,超出长度范围
	}
/*结果:
 * 当整数的数据大小超出了可以表示的范围,而程序中又没有做数值范围的检查时,
 * 这个整型变量所输出的值将发生紊乱,且不是预期的运行结果。 
 * */
}

 

数据的溢出
当整数的数据大小超出了可以表示的范围,而程序中又没有做数值范围的检查时,这个整型变量所输出的值将发生紊乱,且不是预期的运行结果。

 

将整型的最大值加1和加2

public class DataDemo2 {
	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
	}
/*结果:
 * 整型的最大值:2147483647
 * 整型的最大值 + 1:-2147483648
 * 整型的最大值 + 2:-2147483647
 * */
}

 

使用强制类型转换,防止数据溢出

public class DataDemo3 {
	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));//变为 long 型
		System.out.println("整型的最大值 + 2:"+((long)max + 2));//转换为 long 型
	}
/*结果:
 * 整型的最大值:2147483647
 * 整型的最大值 + 1:-2147483648
 * 整型的最大值 + 2:2147483649
 * 整型的最大值 + 2:2147483649
 * */
}

 

字符类型
字符类型在内存中占有2个字节,可以用来保存英文字母等字符。计算机处理字符类型时,是把这些字符当成不同的整数来看待,因此,严格说来,字符类型也算是整数类型的一种。

public class DataDemo4 {
	public static void main(String[] args) {
		char ch1='a';//定义字符
		char ch2=97;//定义字符,整型转字符
		System.out.println("ch1 = "+ch1);//打印输出
		System.out.println("ch2 = "+ch2);//打印输出
	}
/*结果:
 * ch1 = a
 * ch2 = a
 * */
}

 

常用的转义字符

 
 转义字符的应用

public class DataDemo5 {
	public static void main(String[] args) {
		char ch1 = '\"';//定义转义字符
		char ch2='\\';//定义转义字符
		System.out.println("ch1 ="+ch1);//打印输出
		System.out.println("ch2 ="+ch2);//打印输出
		System.out.println(ch2+"\"Hello World\""+ch2);//直接输出转义字符
	}
/*结果:
 * ch1 ="
 * ch2 =\
 * \"Hello World"\
 * */
}

 

浮点数类型与双精度浮点数类型
在日常生活中经常会使用到小数类型的数值,如身高、体重等需要精确的数值时,整数就不能满足程序设计者的要求了。在数学中,这些带有小数点的数值称为实数,在Java里,这种数据类型称为浮点数类型(float),其长度为32个字节,有效范围为-3.4E1038 到 3.4E1038。当浮点数的表示范围不够大的时候,还有一种双精度(double)浮点数可供使用。双精度浮点数类型的长度为64个字节,有效范围为-1.7E10308  到1.7E10308。

 

浮点型数据计算

public class DataDemo6 {
	public static void main(String[] args) {
		float num=3.0f;//定义 float 型变量
		System.out.println("两个小数相乘:"+num*num);//计算两数相乘
	}
/*结果:
 * 两个小数相乘:9.0
 * */
}

 

布尔类型
布尔(boolean)类型的变量,只有true(真)和false(假)两种。也就是说,当将一个变量定义成布尔类型时,它的值只能是true或false,除此之外,没有其他的值可以赋值给这个变量。举例来说,想声明名称为flag变量为的布尔类型,并设置为true值,可以使用下面的语句:
boolean flag = true ;  // 声明布尔变量flag,并赋值为true

 

布尔类型的使用

public class DataDemo7 {
	public static void main(String[] args) {
		boolean flag = true;//定义布尔型变量
		System.out.println("flag = "+flag);//打印输出
	}
/*结果:
 * flag = true
 * */
}

 

基本数据类型的默认值

 

数据类型的转换
Java的数据类型在定义时就已经确定了,因此不能随意转换成其它的数据类型,但Java允许用户有限度地做类型转换处理。数据类型的转换方式可分为“自动类型转换”及“强制类型转换”两种。

 

数据类型的自动转换
在程序中已经定义好了数据类型的变量,若是想用另一种数据类型表示时,Java会在下列的条件皆成立时,自动做数据类型的转换:
1、转换前的数据类型与转换后的类型兼容。
2、转换后的数据类型的表示范围比转换前的类型大。

 

数据类型的转换

public class DataDemo8 {
	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));//直接使用常量进行除法
	}
/*结果:
 * x/y = 1.3519603
 * 10/3.5 = 2.857142857142857
 * 10/3 = 3
 * */
}

 

提示:任何类型的数据都向String转型

package J010301;

public class DataDemo9 {
	public static void main(String[] args) {
		String str = "chaoyi";//定义字符串变量
		int x=30;//定义整型变量
		str =str+x;//改变字符串变量内容
		System.out.println("str = "+str);//打印输出
	}
/*结果:
 * str = chaoyi30
 * */
}

 

数据类型的强制转换
当两个整数进行运算时,其运算的结果也会是整数。举例来说,当做整数除法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));// 常量计算使用强制类型转换
	}
/*结果:
 * x = 30
 * 10/3 = 3.3333333
 * */
}

 

 

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页