1关于+:
1)可以作为一个运算符
2)字符串拼接符号
3)表示一个数据:正数
双引号内的 数据是常量
字符串+任何数据---因为字符串在前面 所以都是一个新的字符串
常量+字符串--->因为整数在前面所以要先进行计算再进行拼接
("hello"+'a'+1)------->helloa1
('a'+1+"hello")-------->98hello
2算数运算符
Java中的运算符
算数运算符
赋值运算符
比较运算符
逻辑运算符(重点)
位运算符
三元运算符(重点)
算数运算符:
基本的算数运算符:
+ - * / %
加 减 乘 除 模(余数)
扩展的运算符:
++ --
1)单独使用
2)参与运算
第一种情况:单独使用
++和--符号无论在数据的前面,还是在数据的后面 都是对数据进行自加一和自减一
第二中情况:参与运算
++和--符号在数据的前面 时:先对数据进行自增或自减 再参与运算
++和--符号在数据的后面 时:先进行运算 再进行自增和自减
int a=10;
int a=10;
int a=10;
a=b++; //a=10 b=11 c=10
c=--a; //a=9 b=11 c=9
b=++a; //a=10 b=10 c=9
a=c--; //a=9 b=10 c=8
请问a b c 等于多少?
int x=4;
int y=(x++)+(++x)+(x*10) // 4+6+60=70
问y等于多少
注意事项:1)第一题 每一步都要进行分析a b c 的值 直到最后一步完成
2)第二题 (x++)相当于先赋值再运算 即将x的值先赋值给()---4本身再参与运算
赋值运算符
面试题 :
short s=1;
1)s=s+1;
2)s+=1; //仅仅是计算结果相当于s=s+1
问你哪句 会编译失败?
答案:第一种失败 byte short char 三种之间不转换 一旦参与运算 必须进行数据转换才可以
第二中:扩展的+= -= *= /= %=
这些扩展的赋值运算符中都隐藏一个强制转换故而不会编译出错
关系运算符
<> <= >= == !=
特点:无论表达式简单还是复杂 最终的结果就是true或者 false
逻辑运算符
在实际应用中 进行逻辑判断的时候经常使用
基本的逻辑运算符号:
逻辑单与& //表示并列关系 有false则false
逻辑单或| //表示或的关系 有true则true
逻辑异或^ //相同则为false 不同则为true (举例:男女关系)
逻辑非! //非true则false 偶数个非则是它本身
扩展的逻辑运算符
逻辑双与&&
逻辑双与和逻辑单与的异同
相同点:都是并列关系
不同点:逻辑双与具有短路效果
逻辑双或||
逻辑双或和逻辑单或的异同
相同点:都是或的关系
不同点:逻辑双或具有短路效果
故而:在开发中对于逻辑关系的处理一般都用逻辑双与和逻辑双或来完成
位运算符
位运算符符号(其符号与逻辑符号一样 )
位运算符连接的是两个数值
位于:& //特点:有零则零
位或:| //
位异或:^
反码:~
位移符号:
<<:左移 ---->将数据的二进制计算出来之后 ---->向左移动,在右边补0 (将这个符号左边的数据乘以2的移动次幂)
>>:右移 ---->二进制数据--->向右移动--->最高符号位如果是0 左边补0---如果最高符号位是1 左边补1 (将这个符号左边的数据除以2的移动次幂)
>>>:无符号右移---->无论最高符号位是0还是1 左边补0
3------二进制数据 0b11
4------二进制数据 0b100
位与&的特点: 有零则零
位或|的特点:有1则1
位异或^的特点:相同位0 不同为1
反码~的特点:按位取反
位异或的特点:一个数据被另一个数据位异或两次其值是它本身
(a^b^b) ---->值是a
(a^b^a) ---->值是b
a=a^b;
b+a^b; //b=a^b^b; ------>a
a=a^b; //a=a^b^a; ------->b
三元运算符(三目运算符)
三元运算符
格式:
(表达式)? 执行truede结果:执行false的结果
执行流程:首先判断表达式是否成立 :如果成立执行true的结果,否则执行false的结果
需求:比较两个数据的大小
案例:
三个和尚比身高,请用Java程序比较最高的人
已知:三个和尚 都存在各自的身高
定义三个变量
三个变量中比较最大的值
使用中间变量的temp记录第一个和第二个之间的最大值
int temp=(firPeo>secPeo)?firPeo:secPeo
三元运算符可以嵌套 (不推荐)
键盘输入数据scanner类
Java提供了一个文本扫描器:scanner
键盘录入数据的操作步骤:
在Java中 只要不是在Java.lang包下的类都需要导包
1)导包
在class的上面书写
格式:import Java.util.Scanner;
2)固定格式
Scanner 对象名称=new Scanner(System.in);
3)接收数据//录入数据
int 变量名=对象名称.nextlnt();//固定格式