Java02--变量与运算符

1、关键字

  • 定义:被Java语言赋予了特殊的含义,用做专门用途的字符串(或者单词)
  • 特点:关键字都是小写
  • 注意:true , false , null是字面量,表示特殊的布尔值和空值

2、标识符

  • 凡是自己可以取名的都是标识符
  • 标识符的命名规则
1)由26个英文字母大小写,0-9,_ 或 $ 组成
2)数字不可以开头
3)不可以使用关键字和保留字,但是可以包含关键字和保留字
4)Java中严格区分大小写,长度无限制
5)标识符不能包含空格
  • 标识符的命名规范
1)包名:多单词组成时所有字母都小写
2)类名、接口名:多单词组成时,所有单词的首字母大写
3)变量名、方法名:多单词组成时,第一个单词小写,第二个单词开始每个单词首字母大写
4)常量名:所有字母都大写。多单词时每个单词用下划线连接

3、变量

3.1变量的定义

  • 内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化
  • 变量的构成包含三个要素:数据类型、变量名、存储的值
  • Java中变量声明的格式:
数据类型 变量名 = 变量值
  • java中的变量按照数据类型来分类
	(1)基本数据类型(8种):
		整型:byte \ short \ int \ long
		浮点型:float \ double
		字符型:char
		布尔型:boolean
		
	(2)引用数据类型:
		类(class)
		数组(array)
		接口(interface)

		枚举(enum)
		注解(annotation)
		记录(record)
  • 定义变量时,变量名要遵循标识符命名的规则和规范
  • 说明:
(1)变量都有其作用域,变量只在作用域内是有效的,出了作用域就失效了
(2)在同一个作用域内,不能声明两个同名的变量
(3)定义好变量名之后,可以通过变量名的方式对变量进行调用和运算
(4)变量值在赋值时,必须满足变量的数据类型,并且在数据类型有效的范围内变化

4、基本数据类型

4.1 整数类型

byte、short、int、long

在这里插入图片描述

注:
(1)定义long类型的变量,赋值时需要以“ l ”或“L”作为后缀
(2)Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long
(3)Java的整型常量默认为int型

4.2 浮点类型

float、double

注:
(1)定义float类型的变量,赋值时需要以“ f ”或“ F”作为后缀
(2)Java的浮点型常量默认为double型

4.3 字符类型

char
字符型变量的三种表现形式:
(1)使用单引号 ' '表示单个字符
(2)直接使用Unicode的值来表示字符型常量
(3)使用转义字符'\'将其后的字符转变为特殊字符型常量

在这里插入图片描述

在这里插入图片描述

4.4 布尔类型

boolean
  • boolean类型用来判断逻辑条件,一般用于流程控制语句中
  • boolean类型数据只有两个值:true、false。不可以用0或非0的整数代替false和true

5、基本数据类型变量间运算规则

自动类型提升
强制类型转换

5.1 自动类型提升

将取值范围小的类型自动提升为取值范围大的类型

在这里插入图片描述

(1)存储范围小的值赋值给存储范围大的变量

	int i = 'M';//char自动升级为int
	double d = 10;//int自动升级为double
	long num = 1234567;//int自动提升为long,但是右边的数值必须在int范围内,否则编译不通过

在这里插入图片描述

(2)进行混合运算时,会按照其中最大的类型运算

		int i = 13;
		byte b = 14;
		double d = 13.14;
		double sum = i + b + d;

在这里插入图片描述

(3)byte、short、char数据类型的变量进行算数运算时,按照int类型处理

		byte b1 = 13;
		byte b2 = 14;

		short s1 = 13;
		short s2 = 14;

		char c1 = 'N';
		char c2 = 'B';

		int i1 = b1 + b2;
		int i2 = s1 + s2;
		int i3 = c1 + c2;
		int i4 = b1 + s1 +c1;

在这里插入图片描述

5.2 强制类型转换

将存储范围大的值强制转换成取值范围小的类型
转换格式:

数据类型1 变量名 = (数据类型1)被强转数据值
注:()中的数据类型必须<=变量值的数据类型

(1)把存储范围大的值强制转换成存储范围小的变量时,可能会损失精度或溢出

	int i = (int)1.2345;//损失精度
	byte b = (byte)129;//溢出

在这里插入图片描述

(2)某个值想要提升数据类型时,也可以使用强制类型转换(无风险)

int i = 6;
	int j = 4;
	double bigger = (double)i/j;

在这里插入图片描述

(3)声明long变量时,可以出现省略后缀的情况。float则不可以。

5.3 基本数据类型与String的运算

5.3.1 字符串类型

  • String属于引用数据类型
  • 使用一对 “” 来表示一个字符串,内部可以包含0个、1个或者多个字符
  • 声明方式与基本数据类型类似

5.3.2 运算规则

(1)任意八种基本数据类型的数据与String类型只能进行连接运算,且结果也一定是String类型
		int i1 = 6;
		boolean b1 = false;
		String s1 = "BEAST";
		String s2 = s1 + b1 + i1;

在这里插入图片描述

(2)String类型不能通过强转类型 ( ) 强转,只能够借助包装类的方法才能转

6、运算符(Operator)

运算符是一种特殊的符号,表示数据的运算、赋值和比较等
  • 按照功能分类
分类运算符
算术运算符(7个)+、-、*、/、%、++、–
赋值运算符(12个)=、+=、-=、*=、/=、%=、>>=、<<=、>>>=、&=、|=、^=等
比较(或关系)运算符(6个)>、>=、<、<=、==、!=
逻辑运算符(6个)&、|、^、!、&&、||
位运算符(7个)&、|、^、~、<<、>>、>>>
条件运算符(1个)(条件表达式)?结果1:结果2
Lambda运算符(1个)->
  • 按照操作个数分类
分类运算符
一元运算符(单目运算符)正号(+)、负号(-)、++、–、!、~
二元运算符(双目运算符)除了一元和三元运算符剩下的都是二元运算符
三元运算符 (三目运算符)(条件表达式)?结果1:结果2

6.1 算术运算符

6.1.1 基本语法

在这里插入图片描述

自加自减运算

​ 注:++运算与 --运算用法一致

(1)单独使用时,(前)自++和(后)++没有区别

		int a = 5;
		++a;
		int b = 5;
		b++;

在这里插入图片描述

(2)复合使用时

  • 和其他变量放在一起使用或者和输出语句放在一起使用,前++和后++就产生不同
  • 变量前++:变量先自增1,然后再运算
  • 变量后++:变量先运算,然后再自增1
		int i1 = 78;
		int i2 = 78;
		System.out.println("i1++的值为:" + i1++);
		System.out.println("++i2的值为:" + ++i2);

在这里插入图片描述

(3)自增自减运算 不会改变数据类型

		short s1 = 65;
		short s2 = 65;
		s1++;
		++s2;

在这里插入图片描述

6.2 赋值运算符

值运算符符号解释
=当两侧数据不一样时可以可使用数据类型转换处理;支持连续赋值
+=将符号左边的值右边的值进行相加操作,最后将结果赋值给左边的变量
-=将符号左边的值右边的值进行相减操作,最后将结果赋值给左边的变量
*=将符号左边的值右边的值进行相乘操作,最后将结果赋值给左边的变量
/=将符号左边的值右边的值进行相除操作,最后将结果赋值给左边的变量
%=将符号左边的值右边的值进行取余操作,最后将结果赋值给左边的变量
		short s = 10;
		int i1,i2,i3,i4,i5,i6;
		i1 = s;
		i2 = i3 = i4 = i5 = i6 = i1;
		i2 += 10;
		i3 -= 10;
		i4 *= 10;
		i5 /= 10;
		i6 %= 10;

在这里插入图片描述

注:
+=、-=、*=、/=、%= 不改变变量本身数据类型

6.3 比较(关系)运算符

  • 比较运算符的结果都是boolean型
  • == 、!= :适用于基本数据类型和引用数据类型

​ > 、< 、>=、<= :只适用于基本数据类型

  • 比较运算符 == 不能够写成 =

在这里插入图片描述

		int i = 6;
		short s = 6;
		boolean b = i == s;

在这里插入图片描述

6.4 逻辑运算符

  • &、|、^ 、!、&&、||
  • 逻辑运算符的操作都是boolean类型的变量或常量,运算的结果也是Boolean类型的值
  • & 和 && 的区别

​ &:如果符号左边是false,则继续执行符号右边的操作

​ &&:如果符号左边是false,则不再执行符号右边的操作

  • | 和 || 的区别

​ |:如果符号左边是true,则继续执行符号右边的操作

​ ||:如果符号左边是true,则不再执行符号右边的操作

在这里插入图片描述

		boolean b1 = true;
		boolean b2 = false;
		boolean b3 = b1 && b2;
		boolean b4 = b1 || b2;
		boolean b5 = !b1;
		boolean b6 = b1 ^ b2;

在这里插入图片描述

		boolean b1 = false;
		int i1 = 100;
		if(b1 & (i1++ > 0))//b2为false,继续执行后面的 i2++ > 0
		{
			System.out.println("小白狗");
		}
		else{
		System.out.println("小黑狗");
		}
		System.out.println("i1 = " + i1);

		boolean b2 = false;
		int i2 = 100;
		if(b2 && (i2++ > 0))//b2为false,不再执行后面的 i2++ > 0
		{
			System.out.println("小白狗");
		}
		else{
		System.out.println("小黑狗");
		}
		System.out.println("i2 = " + i2);

在这里插入图片描述

6.5 位运算符

  • << 左移,每向左移动一位,结果在原有基础上 *2 (对于正数、负数都适用)

​ >> 右移

​ >>> 无符号右移

  • & 按位与

​ | 按位或

​ ^ 按位异或

  • ~ 按位取反(按2进制取反)

6.6 条件运算符

  • 格式:(条件表达式)? 表达式1:表达式2
  • 如果条件表达式的结果是true,则执行表达式1。否则执行表达式2
		int num1 = 1;
		int num2 = 5;
		int num3 = (num1 > num2)? num1++:num2++;
		System.out.println("输出结果为: " + num3);

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值