【117天】尚学堂高琪Java300集视频精华笔记(13-17)
第13-14集:算术/逻辑/位运算符/扩展运算符/字符串连接/三元运算符/优先级问题
运算符
Java 语言支持如下运算符:
算术运算符: +,-,*,/,%,++,--赋值运算符 = 关系运算符: >,<,>=,<=,==,!= instanceof 逻辑运算符: &&,||,!位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)条件运算符 ?: 扩展赋值运算符:+=,-=,*=,/=
一元运算符
-
运算符(++, --)
int a = 3;int b = a++; //执行完后,b=3。先给b赋值,再自增。int c = ++a; //执行完后,c=5。先自增,再给b赋值
-
注意:java中的乘幂处理:
int a = 3^2; //java中不能这么处理, ^是异或符号。double b = Math.pow(3, 2); //Math类提供了很多科学和工程计算需要的方法和常数。
二元运算符
-
整数运算:
如果两个操作数有一个为Long, 则结果也为long
没有long时,结果为int。即使操作数全为shot,byte,结果也是int.
-
浮点运算:
如果两个操作数有一个为double, 则结果为double.
只有两个操作数都是float, 则结果才为float.
三元运算符(三目条件运算符)
-
三目条件运算符,语法格式:
x ? y : z
其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。int score = 80; int x = -100;String type = score < 60 ? "不及格" : "及格";int flag = x > 0 ? 1 : (x == 0 ? 0 : -1);System.out.println("type= " + type);System.out.println("flag= "+ flag);
取模运算
其操作数可以为浮点数,一般使用整数。如:5.9%3.9=2.000000004
负数%负数=负数;
负数%正数=负数;
正数%负数=正数;
注:一般都是正整数运算,不用考虑这么细!
布尔逻辑表达符
逻辑与:&&和&【&用于位运算】,逻辑或:||和|【|用于位运算】,逻辑非:!。
逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。
逻辑与只要有一个为false, 则直接返回false.
-
逻辑或只要有一个为true, 则直接返回true;
boolean c = 1>2&&2>(3/0);
位运算符
位运算符:
~:取反 &:按位与 |:按位或 ^:按位异或 <<:左移运算符, >>:右移运算符 >>>:无符号移位运算符
右移一位相当于除2取商,左移一位相当于乘2。
int a = 3*2*2;int b = 3<<2; //相当于:3*2*2;int a = 12/2/2;int b = 12>>2;
移位操作比乘除要快。
扩展运算符
+=: a += b 等效 a = a+b-=: a -= b 等效 a = a-b*=: a *= b 等效 a = a*b/=: a /= b 等效 a = a/b%=: a %= b 等效 a = a%b
字符串连接符
“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。
int c = 12;System.out.println("c=" + c);
运算符优先级
表达式内,优先用小括号来组织
package test013;public class test013 { public static void main(String[] args){ /* double d = 10.2%3; System.out.println(d); int a = 3; int b = a++; // 先将a赋值给b,a再自加 int c = ++a; // a先自加,再赋值给c System.out.println(a); System.out.println(b); System.out.println(c); //int c = 3/0;//报错 */ /* boolean c = 1>2&&2>(3/0); System.out.println(c); //因为短路现象,所以3/0的报错信息没有出来。 */ //测试位运算 int m = 8; //二进制为0000_0000_0000_0000_0000_0000_0000_1000 int n = 4; //二进制为0000_0000_0000_0000_0000_0000_0000_0100 System.out.println(m&n);//0000_0000_0000_0000_0000_0000_0000_0000 System.out.println(m|n);//0000_0000_0000_0000_0000_0000_0000_1100 System.out.println(~m); //1111_1111_1111_1111_1111_1111_1111_0111【此为补码】 //转换为原码需要减1取反 //1000_0000_0000_0000_0000_0000_0000_1001【此为原码,即十进制的-9】 System.out.println(m^n);//0000_0000_0000_0000_0000_0000_0000_1100 int a = 3*2*2; int b = 3<<3; int c = 12/2/2; int d = 12>>2; System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); boolean b1 = true&false; System.out.println(b1); int f = 3; f += 3; System.out.println(f); }}
第15-16集:eclipse开发环境的使用/建立java项目/运行java项目
-
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
-
eclipse常用快捷键(暂时大家可以不关注,随着学习的深入慢慢体会!)
命令提示:alt+/ (main, syso)
-
文件选择:
Shift+ 上下左右,home,end键
Ctrl+Shift+ 左右 单词选中
删除一行:ctrl+d
复制一行到下面或上面: ctrl+alt+上下
换行:alt+上下
编辑文件切换:ctrl+F6,或者ctrl+E,上下
视图切换:ctrl+F7
查看错误建议:ctrl+1
导入类:ctrl+shift+o
重命名:alt+shift+r
第17集:if语句单选择双选择多选择结构
Java三种结构:顺序、选择、循环
Math类的使用:‘int i = (int)(Math.random()*6);//产生[0,5]
public class test017 { public static void main(String[] args){ /*double i = 6 * Math.random(); double j = 6 * Math.random(); double k = 6 * Math.random(); int count = (int)(i+j+k); if(count > 15){ System.out.println("今天天气不错"); } if(count >=10 && count <= 15){ System.out.println("今天手气一般"); } if(count <10){ System.out.println("今天手气不怎么样"); } System.out.print("得了"+ count+"分"); */ /*double r = 4* Math.random(); double area = Math.PI * r; double circle = 2 * Math.PI * r; System.out.println("半径为: "+ r); System.out.println("面积为: "+ area); System.out.println("周长为: "+ circle); if(area >= circle){ System.out.println("面积大于等于周长"); } else { System.out.println("周长大于面积"); } */ int age = (int)(100 * Math.random()); System.out.println("年龄是" + age + "属于"); if(age<15){ System.out.println("儿童喜欢玩"); } else if(age<15) { System.out.println("青年, 要学习!"); }else if(age<25) { System.out.println("青年, 要学习!"); }else if(age<45) { System.out.println("中年, 要工作!"); }else if(age<65) { System.out.println("中老年, 要补钙!"); }else if(age<85) { System.out.println("老年, 多运动!"); } }}