Java基础学习(四)---- 常量、变量、数据类型


【备注】
  陆续更新,感兴趣可以留意一下

一、常量和变量

1.常量

1.概述
     指在Java程序运行期间固定不变的量
2.分类

类型 含义 举例
整数常量 所有整数 -1,0, 1
小数常量 所有小数 -9.9,-0.1,7.62
字符常量 单引号引起来,只能写一个字符,且必须有内容 ‘C’,‘我’
字符串常量 双引号引起来,可以有多个字符,也可以不写 “CSDN”,”你好”
布尔型常量 只有两个值 true,false
空常量 只有一个值 null

3.常量使用实例

public class Constant {
	public static void main(String[] args) {
		System.out.print("整数常量:");
		System.out.println(15);
		System.out.println("-------------------");
		System.out.print("小数常量:");
		System.out.println(-5.6);
		System.out.println("-------------------");
		System.out.print("字符常量:");
		System.out.println('C');
		System.out.println("-------------------");
		System.out.print("字符串常量:");
		System.out.println("CSDN");
		System.out.println("-------------------");
		System.out.print("布尔型常量:");
		System.out.println(true);
		System.out.println("-------------------");
		System.out.print("空常量:");
		System.out.println("“null”不能直接打印");
	}
}

2.变量

1.概述
     常量是固定不变的量,那么在程序中可以变化的量称为变量。
     Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型
2.变量的定义格式(两种)

1)数据类型 变量名称;//创建了一个变量
	int a;
	变量名称 = 数据值;//赋值,将右边的数据值,赋值给左边的变量
	a=10;2)数据类型 变量名称 = 数据值;//在创建一个变量的同时,立刻放入指定的数据值
	int a = 10;
3.注意事项
(1)如果创建多个变量,变量名称不可以重复
(2)对于float和long来说字母后缀F和L一定要配套使用
(3)如果没有进行赋值的变量,不能直接使用,一定要赋值之后才可以使用
(4)变量使用不能超作用域范围
(5)可以通过一个语句创建多个变量,但是不推荐

二、数据类型

1.基本数据类型

数据类型 关键字 长度 取值范围
字节型 byte 8位 -128~127
短整型 short 16位 -32768~32767
整型 int(默认) 32位 -231~231-1
长整型 long 64位 -263~263-1
单精度浮点数 float 32位 1.4e-45f~3.4028235e+38f
双精度浮点数 double(默认) 64位 4.9e-324~1.797693e+308
字符型 char 16位 0~65535
布尔类型 boolean 8位 true、false

2.引用数据类型

  • 字符串
  • 数组
  • 接口
  • lambda

3.注意事项

字符串不是基本数据类型,而是引用数据类型
浮点型可能只是一个近似值,并非精确值
数据范围与字节大小不一定相关,例如float(4字节)数据范围比long(8字节)更广泛(因为float使用了科学计数法)
浮点数当中默认的是double类型,如果一定要使用float类型,需要加上字母F
如果是整数,默认为int类型,如果一定要使用long类型则需要添加后缀字母L

三、数据类型的转换

1.自动转换(隐式)

1.特点: 代码不需要特殊处理,自动完成

2.规则: 将取值范围小的类型转换为取值范围大的类型

3.代码实例

   	 //======================================================
   	long n1 = 10;
   	//左边是long类型,右边是默认的int类型,左右数据类型不一样
   	//等号代表赋值,将右侧的int,交给左侧的long进行存储
   	//int→long符合范围小向范围大的数据类型转换,所以发生了自动转换
   	System.out.print1n(n1); //结果为10
   	//======================================================
   	double n2 = 0.5F;
   	//左边是double类型,右边是float类型,左右数据类型不一样
   	//等号将左侧赋值给右侧
   	//float→double符合范围小向范围大的数据类型转换,所以发生了自动转换
   	System.out.println(n2); //结果为0.5
   	//======================================================
   	float n3 = 15L;
   	//左边是float类型,右边是long类型,左右数据类型不一样
   	//等号将左侧赋值给右侧
   	//long→float符合范围小向范围大的数据类型转换,所以发生了自动转换
   	System.out.print1n(n3); //结果为15.0
   	//======================================================

2.强制转换(显式)

1.特点:代码需要特殊处理不能自动完成
2.规则:将取值范围大的类型转换为取值范围小的类型
3.代码格式

	int m = 10;
	//范围小的类型 范围小的变量名 = (范围小的类型) 原范围大的数据类型
	short n = (short) m;

3.代码实例

	//======================================================
	int n1 = (int) 66L;
	//左边是int类型,右边是long类型,左右数据类型不一样
	//等号将左侧赋值给右侧
	//long→int,是范围大向范围小的数据类型转换,需要编写代码实现强制类型转换
	System.out.println(n1);//结果为66
	//======================================================
	int n2 = (int) 100000000000L;
	//如果右侧数据超过左侧数据范围,会造成数据溢出,结果也将不再准确
	System.out.println(n2);//结果为1215752192
	//======================================================
	int n3 = (int) 9.9;
	//double→int,并不是四舍五入,而是整数后的直接丢弃
	System.out.println(n3);//结果为9
	//======================================================
	byte n4 = 4;
	byte n5 = 5;
	int n6 = n4 + n5;
	//byte+byte → int+int → int
	System.out.println(n6);//结果为9
	//======================================================
	short n7 = 7;
	byte n8 = 8;
	short n9 =(short)(n7 + n8);
	//short+byte → int+int → int → short = short
	System.out.println(n9);//结果为15
	//======================================================

【tips】
  1.强制数据类型转换一般不推荐,因为有可能产生精度损失,数据溢出
  2.byte、short、char这三种类型都可发生数学运算,运算时将提升为int类型,再进行运算
  3.boolean类型不能发生数据类型转换

发布了4 篇原创文章 · 获赞 3 · 访问量 499

猜你喜欢

转载自blog.csdn.net/weixin_44580492/article/details/105277143