Java整理学习笔记02

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44816758/article/details/102616505

运算符:

	分类:
		算数运算符
		赋值运算符
		比较运算符|关系运算符
		逻辑运算符
		条件运算符
		位运算符
		
	操作数: 运算符左右两边的数
	表达式: 运算符连接操作数整体叫做表达式
	语句: 分号代表语句的结束
	
		单目|一元运算符: 操作数为1个  +号  ++ --
		双目|二元运算符: 操作数为2个  + - * /
		三目|三元运算符: 条件运算符


	算数运算符:
		+   
			正号(可省略)
			加法运算
			字符串的连接符
				如果+左右两边有字符串的出现"",+就是作为字符串的连接符使用,把两边的内容拼接成为一整个字符串使用
		-
			负号
			减法运算
		*
		/
		% 模以  取模  求余数
			如果第一个操作数小于第二个操作数,结果就为第一个操作数
		++ --
		++ --
++ 自增  a++ ==> a=a+1;
-- 自减  a-- ==> a=a-1;

分析:
	++,--操作自己
		 ++放在操作数的前面还是后面,都是自身+1
		 --放在操作数的前面还是后面,都是自身-1
	++,--操作别人
		++--放在操作数的前面,先自身+1|-1,再去参与运算 
		++--放在操作数的后面,先去参与运算,在自身+1-1

赋值运算符
基础赋值运算符
= 是java中唯一一个自右向左运算的符号
优先级最低

	扩展赋值运算符(算数运算符+基础赋值运算符)
		+=  a+=b; ==> a=a+b;
		-=
		*=	a*=b; ==> a=a*b;
		/=
		%=
		
		推荐使用扩展赋值运算符
		优点:
			执行效率高
		缺点:
			不直观
			
			关系运算符|比较运算符
	> < >= <=
		byte  short int long float double char
	==  !=
		基本数据类型,引用数据类型
	
	关系运算符最终得到的结果 boolean类型的结果

java中的逻辑运算符

	&  与
		一个false就是false,两个都为true,才为true
		
	|  或
		一个为true就是true,两个都为false,才是false
		
	!  非
		取反  !true->false  !false->true
	^  亦或
		相同为false,不同为true
	
	短路: 如果第一个操作数就能够决定最终的结果,第二个操作数位置不执行
	&& 短路与
	|| 短路或
	推荐使用短路内容
	
	所有的逻辑运算符的操作数都为值为boolean类型的表达式

java中的条件运算符

	条件表达式 ? 值1 : 值2;
	
	条件表达式:值为boolean类型的表达式
	
	执行流程:
		1.条件表达式 ,最终会得到一个boolean结果
		2.如果结果为true,整个条件表达式最终的结果为值1
		3.如果结果为flase,最终结果为值2
	
	条件运算符最终肯定会得到一个结果

java中的位运算符 (了解)
先把操作数转为二进制,根据运算符的逻辑进行操作,最终得到的结果再转为十进制

	& : 同一位置的两个数,如果一个为0就是0,两个都为1才是1
	| : 同一位置的两个数,如果一个为1就是1,两个都为0才是0
	^ : 同一位置的两个数,相同为0,不同为1
	
	位移运算符
	<< 左移 第一个操作数转为2进制,第二个操作数是移动位数 ,向左移动指定的位数,空位补零
		8<<2  1000左移2位  1000 00 -> 转为十进制 32
	>> 右移 第一个操作数转为2进制,第二个操作数是移动位数 ,向右移动指定的位数,想象数据的右边有一条分水线,右侧的内容砍掉,只保留左侧的数据,转为十进制
		8>>2  1000 右移2位  10->转为十进制  2
		右移相当于/2    8>>3   8/2^3
		左移相当于*2 	8<<3   8*2^3
		
	位运算符比直接使用* /效率高
	
	运算符的优先级:
		(),.优先级是最高的
		
		单目乘除位关系,逻辑三目后赋值

java中的Scanner:

	注意:不要让你的类名与java中已有的类名一致
	
	基本数据类型:
		int a=5;
	
	引用数据类型:
		引用数据类型 变量名|引用 = new 引用数据类型();
		
		使用功能:
			变量名|引用.功能名字();
			
	
	Scanner : 接收键盘输入的内容
		1.导包  import 导入 + 权限命名(报名+类名);
				位置: 类的上面导包
		2.创建这个类型的引用
			Scanner sc=new Scanner(System.in);
		3.使用功能:
			引用.功能名字();
			sc.nextInt();  接收用户键盘输入的整数类型的数据
			sc.nextLong();  接收用户键盘输入的整数类型的数据
			sc.nextByte();  接收用户键盘输入的整数类型的数据
			sc.nextShort();  接收用户键盘输入的整数类型的数据
			sc.nextFloat();  接收用户键盘输入的整数类型的数据
			sc.nextDouble();  接收用户键盘输入的整数类型的数据
			
			sc.next()  从有效字符开始接收,空格不算,接收用户输入的字符串内容,知道遇到空格,tab,就接收不到数据,但是功能没有停止,遇到enter功能结束
			sc.nextLine() 接收一整行的数据
				从第一个字符开始接收,知道遇到enter结束
				
				系列next功能不能接收enter,遇到enter结束,nextLine可以接收enter
			
				
		4.关闭
			引用.close()
				关闭了之后就不能再次使用,就算是重新打开也不好用

java中的Random:
产生随机数
1.导包 import java.util.Random;
2.创建类型的引用 Random ran=new Random();
3.使用功能:
引用.nextInt(); 产生一个int范围内的随机整数
引用.nextInt(整数n); 产生一个 [0,n) 随机整数
[0,max) ran.nextInt(max);
[0,max] ran.nextInt(max+1);
[min,max] ran.nextInt(max-min+1)+min;
[min,max) ran.nextInt(max-min)+min;

		引用.nextDouble() [0.0,1.0)之间的随机小数

java中流程控制语句

	顺序结构: 从上到下从左到右
	选择结构: 满足条件才能执行
	循环结构: 重复执行某些代码
	
	选择结构: 
		if ...else
		switch
	
	if结构:
		单选择|单分支:
			if(条件表达式){
				满足条件才执行的语句体;
			}
			条件表达式:值为boolean类型的表达式
			执行流程:
				1.执行条件表达式,如果结果为true,就执行语句体
				2.如果结果为false,就跳过if结构	
					
						
		双选择|双分支:
			if(条件表达式){
				语句体1;
			}else{
				语句体2;
			}
			执行流程:
				1.执行条件表达式,如果结果为true,就执行语句体1
				2.如果结果为false,就执行语句体2
		
		多选择|多分支:
				if(条件表达式1){
					语句体1;
				}else if(条件表达式2){
					语句体2;
				}
				.....
				else{
					以上条件都不满足,就执行else中的内容  语句体n
				}
				
				执行流程:
					1.计算条件表达式1,如果结果为true,执行语句体1,如果结果为false
					2.执行条件表达式2,如果结果为true,执行语句体2,如果结果为false
					....
					如果以上条件都不满足,执行else中的语句体n
					
		注意:如果语句体只有一句,前后的{}可以省略
			 如果一个if语句中如果存在接盘侠else,肯定有结果
			 
		
		if与条件运算符之间的区别:
			条件运算符肯定有结果,if不一定
			
			能使用条件运算符的就推荐使用条件运算符,结构简单,效率较高

java中的switch语句

	定值判断  switch
	区间判断  if
	能用switch肯定能用if,能用if的不一定能用switch
	
	switch(表达式){
		case 值1 :
			语句体1;
			break;
		case 值2:
			语句体2;
			break;
		case 值3:
			语句体3;
			break;
			......
		
		default:
			以上值都不满足,执行default中的内容
			break;
	}
	
	表达式: 只能为byte,short,int,char,字符串(1.7),枚举(1.5)
			一般使用变量
	
	case: case后的定值与表达式的结果进行判断是否相等,对应执行不同的语句体
	break: 结束switch语句,如果没有break,会发生case穿透,从现在执行完的语句体开始,如果没有break,下面的case无论是否相等,都会执行对应的语句体,直到遇到下一个break或者switch语句的结束而结束
	default: 接盘侠,相当于else,以上值都不满足,执行default中的内容
			可写可不写,default位置可以改变
			
	执行流程:
		1.计算表达式
		2.那值与case后的值比较是否相等,如果相等就执行对应的语句体,如果不相等就向下继续比较

猜你喜欢

转载自blog.csdn.net/weixin_44816758/article/details/102616505
今日推荐