Java基础——常用数据类型

Java的数据类型可分为两大类:
原始类型(原始类型primitive)和引用类型(reference)
原始类型有:byte、short、int、long、float、double、char和boolean
引用类型有:数组、类(对象)和接口(实例),引用类型的值是对由此变量代表的一个值或一组值的引用

整数类型

在Java中规定了8中基本数据类型变量来存储整数、浮点、字符和布尔值。如图所示:
在这里插入图片描述
Java的基本数据类型如表所示:在这里插入图片描述
举例来说,相声吗一个端整型变量sum时,可以在程序中做出如下声明。
short sum ; // 声明sum为短整型
经过声明之后,Java即会在可食用的内存空间中,寻找一个占有2个字节的块供sum变量使用,同事这个变量范围只能在-32768~32767 之间。

byte类型
在Java中,byte类型占据1个字节内存空间,数据的取值范围为-128~127

package test;

public class byteDemo {
	
	public static void main(String[] args) {
		
		byte byte_max = Byte.MAX_VALUE;  // 得到byte型的最大值
			
		System.out.println("BYTE的最大值:"+byte_max);
	}
	
}

运行结果
在这里插入图片描述
short类型

short类型数据占据2个字节内存空间,取值范围为-32768~32767

short类型数据的使用

package test;

public class shortDemo {
	
	public static void main(String[] args) {
		
		short short_max = Short.MAX_VALUE;  //得到短类型的最大值
		
		System.out.println("SHORT的最大值是"+short_max);
				
	}
	
}

运行结果如图
在这里插入图片描述
int类型
int类型数据占据4个字节内存空间,取值范围为-214748648~214748647
int类型数据的使用

package test;

public class intDemo {
	
	public static void main(String[] args) {
		
		int int_max = Integer.MAX_VALUE;  //得到整型的最大值
		
		System.out.println("SHORT的最大值是"+int_max);
				
	}
	
}

运行结果如图
在这里插入图片描述
long类型
long类型数据占据8个字节内存空间,取值范围为-9223372036854775808~9223372036854775807
long类型数据的使用

package test;

public class longDemo {
	
	public static void main(String[] args) {
		
		long long_max = Long.MAX_VALUE;  //得到长整型的最大值
		
		System.out.println("LONG的最大值是"+long_max);
				
	}
	
}

运行结果如图
在这里插入图片描述
浮点类型
Java浮点数据类型主要有双精度double和单精度和float两个类型。
double类型:共8个字节,64位,第一位为符号位,中间11位表示指数,最后52位表示尾数。
float类型:共4个字节,32位,第一位为符号位,中间8位表示指数,最后23位表示尾数。

声明一个float类型的变量num,并赋值为3.0,并赋值为3.0,将num*num的运算结构输出到显示器上。

package test;

public class floatDemo {
	
	public static void main(String[] args) {
		
		float num =3.0f;  
		
		System.out.println(num+"*"+num+"="+(num*num));
				
	}
	
}

运行结果如图所示
在这里插入图片描述
double类型

在这里插入图片描述
取得单精度和双精度浮点数类型的最大、最小值

package test;

public class doubleDemo {
	
	public static void main(String[] args) {
	
		System.out.println("float_max ="+java.lang.Float.MAX_VALUE);
		System.out.println("float_min ="+java.lang.Float.MIN_VALUE);
		System.out.println("double_max ="+java.lang.Double.MAX_VALUE);
		System.out.println("double_min ="+java.lang.Double.MIN_VALUE);
		
	}
	
}

运行结果如下
在这里插入图片描述
字符类型

字符类型在内存中占有2个字节,定义时语法为:

char c ='字符'

用法如下 直接给字符类型赋值:

package test;

public class TestDemo {
	
	public static void main(String[] args) {
	
		char ch1 = 97;
		char ch2 ='a';
		
		System.out.println("ch1="+ch1);
		System.out.println("ch2="+ch2);
		
	}
}

结果如下
在这里插入图片描述
在这里插入图片描述
以下面的程序为例,将ch赋值为""(要以单引号(’)包围),并将字符变量ch输出在显示器上,同时在打印的字符串里直接加入转义字符,读者可自行比较两种方式的差异。

转义字符的使用

package test;

public class TestDemo {
	
	public static void main(String[] args) {
	
		char ch1 = '\"';
		
		System.out.println(ch1+"测试转义字符!"+ch1);
		System.out.println("\"hello world! \"");
		System.out.println("hello world!");
	}
}

运行结果如下
在这里插入图片描述
不管是用变量存放转义字符,或是直接使用转义字符的方式来输出字符串,程序都可以顺利运行,由于使用变量会占用内存资源,因此似乎显得有些不妥,当然也可以不必声明字符变量就输出转义字符,但如果在程序中加上太多的转义字符。以至于造成混淆而不易阅读时,利用声明变量的方式就是一个很好的选择。

布尔类型

布尔类型的变量,只有true和false两种,也就是说,当讲一个变量定义成布尔类型时,他的值只能是true或false,除此之外,没有其他的值可以付给这个变量,举例来讲,想声明名称为status的变量为布尔类型,并设置为true的值,可以使用下面的语句。

Boolean status = true; // 声明布尔变量status 并赋值为true

布尔类型变量的声明

package test;

public class TestDemo {
	
	public static void main(String[] args) {
	
		boolean status = true;
		
		System.out.println("status="+status);
	}
}

运行结果
在这里插入图片描述
数据类型的转换
Java有严格的数据类型限制,数据类型是不可以轻易转换的。但在特殊情况下还是需要进行这样的操作,但必须有严格的步骤和规定,数据类型的转换方式可分为“自动类型转换”及“强制类型转换“两种。

自动类型转换
定义好数据类型的变量,若想用另一种数据类型表示时,Java会在以下条件皆成立时,自动进行数据类型的转换。

  1. 转换前的数据类型与转换后的类型兼容
  2. 转换后的数据类型的表示范围比转换前的类型大,以“扩大转换“来看可能比较容易理解—字符与证书是可食用自动类型转换的,证书与浮点数亦是兼容的,但是由于boolean类型只能存放true或false,与证书及字符不兼容,因此不可能进行类型的转换。

声明两个变量,一个是整型,另一个是浮点型

package test;

public class TestDemo {
	
	public static void main(String[] args) {
	
		int a =156;
		float b =32.1f;         // 声明一个浮点型变量f,并赋值
		
		System.out.println("a="+a+",b="+b);
		System.out.println("a/b =" +(a/b));  //在这里整型会自动转换为浮点型
		
	}
}

运行结果
在这里插入图片描述
强制类型转换
当程序需要转换数据类型时,可实施强制性的类型转换,语法
(欲转换的数据类型) 变量名称;

自动转换和强制转换的使用方法

package test;

public class TestDemo {
	
	public static void main(String[] args) {
		int a =55;
		int b = 9;
		float g,h;
		
		System.out.println("a="+a+",b="+b);
		g=a/b;
		System.out.println("a/b="+g+"\n");
		System.out.println("a="+a+",b="+b);
		h =(float)a/b;
		System.out.println("a/b="+h);
		
	}
}

运行结果如下图
在这里插入图片描述
当两个证书相除时,小数点以后的数字就会被截断,使得运算的结果保持为整数,但由于这并不是预期的计算结果,而想要得到运算的结果为浮点数,就必须将这两者整数中的一个(或是两个)强制转换为浮点数,以下写法都是正确的

(float)a/b; //将整数a强制转换为浮点数,再与整数b相除,
a/(float)b; // 将整数b强制转换为浮点数,在以整数a除之
(float)a/(float)b; //将整数a与b同事强制转换成浮点数,再相除

只要在变量前面加上欲转换的数据类型,运行时就会自动将慈航语句里的变量做类型转换的处理,但这并不影响原先所定义的数据类型。
此外,若是讲一个超出该变量可表示范围的值赋给这个变量,这种转换成为缩小转换,由于在转换过程中可能会丢失数据的精确度,因此Java并不会自动做这些类型的转换,此时就比要做强制性的转换

基本数据类型的默认值
在Java中,若在变量的声明时没有赋初始值,下表列出了各种类型的默认值。
在这里插入图片描述
在某些情形下,Java会给予这些没有赋初始值的变量一个确切的默认值,但这个没有任何意义,有没有必要,但应该保证程序执行时,不会有这种未定义值的变量存在,虽然这种方式给程序编写者带来了诸多便利,但是过于依赖系统给变量赋初始值,就不容易检测到是否已经给予变量应有的值了,这是个需要注意的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值