JAVA 攻城狮 第四天
来源:互联网 发布:股骨头坏死做淘宝 编辑:程序博客网 时间:2024/04/28 19:44
今天是学习java的第四天也是我军训的第三天。
吸取了昨天晚上的教训,我今天早上5点30就醒了然后效率很好的看了将近1个小时的java课程,还做了笔记,看了位运算,我还是很惊喜的,因为之前学算法的时候遇到过位运算,之前也专门去网上找位运算看过,但是看不懂,今天又遇到了位运算的知识,所以很惊喜,老师讲的还很好,所以这是一个很意外的收获。今天的总结要好好的总结了。
说一下军训吧,其实比我想象的要无聊,不是说军训这个活动不好,而是有很多的时间浪费了,不给带任何的电子产品,想带kindle去看书都不可以。这样很压迫啊,浪费了很多的时间,这样我觉得不值得。
还有一件事就是今天的离散数学成绩公布了,刚刚及格过线,对于一个学习委员来说这是很丢脸的一件事情,我去看了一下被身边的朋友称为学霸的康同学,他空间的第一个说说就是 数学竞赛一等奖的证书,并且配文:“用大一最后一张证书给大二一个好的开始。” 怎么说呢,作为正常的一个人肯定是为他的能力感到佩服的,同时,我也很不服气,为什么我不是第一,我知道这是我自己的原因,我要向他学习,学习他的优点,改掉自己爱面子逞强的坏习惯。先要缩小和他的差距,然后才能超过他。就算我的数学没有他强,但是我可以尽量的缩小和他的分差,然后在我强势一点的编程方面狠狠的超过他。
现在是中午,下午还要去军训,所以总结就晚上看完了视频补上来。
**
**
现在是下午18点27分 day03学习完成
下午学习了java从键盘录入的规则(int接收)
还有四种方法实现a 和 b 的值的交换方法:) 哈哈 下次可以拿出来装D了
不多说废话
下面给出总结:
1:运算符(掌握)
(1)算术运算符
A:+,-,*,/,%,++,–
B:+的用法
a:加法
b:正号
c:字符串连接符
C:/和%的区别
数据做除法操作的时候,/取得是商,%取得是余数
D:++和–的用法
a:他们的作用是自增或者自减
b:使用
**单独使用
放在操作数据的前面和后面效果一样。
a++或者++a效果一样。
**参与操作使用
放在操作数的前面:先自增或者自减,再参与操作
int a = 10;
int b = ++a;
放在操作数的后面:先参与操作,再自增或者自减
int a = 10;
int b = a++;
(2)赋值运算符
A:=,+=,-=,*=,/=,%=等
B:=叫做赋值运算符,也是最基本的赋值运算符
int x = 10; 把10赋值给int类型的变量x。
C:扩展的赋值运算符的特点
隐含了自动强制转换。
面试题: short s = 1; s = s + 1; short s = 1; s += 1; 请问上面的代码哪个有问题?(3)比较运算符 A:==,!=,>,>=,<,<= B:无论运算符两端简单还是复杂最终结果是boolean类型。 C:千万不要把==写成了=(4)逻辑运算符 A:&,|,^,!,&&,|| B:逻辑运算符用于连接boolean类型的式子 C:结论 &:有false则false |:有true则true ^:相同则false,不同则true。 情侣关系。 !:非true则false,非false则true &&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。 ||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。(5)位运算符(了解) A:^的特殊用法 一个数据针对另一个数据位异或两次,该数不变 B:面试题 a:请实现两个变量的交换 **采用第三方变量 **用位异或运算符 左边a,b,a 右边a^b b:请用最有效率的方式计算出2乘以8的结果 2<<3(6)三元运算符 A:格式 比较表达式?表达式1:表达式2; B:执行流程: 首先计算比较表达式的值,看是true还是false。 如果是true,表达式1就是结果。 如果是false,表达式2就是结果。 C:案例: a:比较两个数据是否相等 b:获取两个数据中的最大值 c:获取三个数据中的最大值
2:键盘录入(掌握)
(1)实际开发中,数据是变化的,为了提高程序的灵活性,我们加入键盘录入数据。
(2)如何实现呢?目前就记住
A:导包
import java.util.Scanner;
位置:在class的上边
B:创建对象
Scanner sc = new Scanner(System.in);
C:获取数据
int x = sc.nextInt();
(3)把三元运算符的案例加入键盘录入改进。
3:流程控制语句
(1)顺序结构 从上往下,依次执行
(2)选择结构 按照不同的选择,执行不同的代码
(3)循环结构 做一些重复的代码
4:if语句(掌握)
(1)三种格式
A:格式1
if(比较表达式) {
语句体;
}
执行流程: 判断比较表达式的值,看是true还是false 如果是true,就执行语句体 如果是false,就不执行语句体 B:格式2
if(比较表达式) { 语句体1; }else { 语句体2; }
执行流程: 判断比较表达式的值,看是true还是false 如果是true,就执行语句体1 如果是false,就执行语句体2 C:格式3
if(比较表达式1) { 语句体1; }else if(比较表达式2){ 语句体2; } ... else { 语句体n+1; }
执行流程: 判断比较表达式1的值,看是true还是false 如果是true,就执行语句体1 如果是false,就继续判断比较表达式2的值,看是true还是false 如果是true,就执行语句体2 如果是false,就继续判断比较表达式3的值,看是true还是false ... 如果都不满足,就执行语句体n+1(2)注意事项 A:比较表达式无论简单还是复杂,结果是boolean类型 B:if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条,不能省略。 建议:永远不要省略。 C:一般来说,有左大括号,就没有分号,有分号,就没有左大括号。 D:else后面如果没有if,是不会出现比较表达式的。 E:三种if语句其实都是一个语句,只要有一个执行,其他的就不再执行。(3)案例: A:比较两个数是否相等 B:获取两个数中的最大值 C:获取三个数中的最大值(if语句的嵌套) D:根据成绩输出对应的等级 E:根据月份,输出对应的季节 F:根据x计算对应y的值并输出(4)三元运算符和if语句第二种格式的关系 所有的三元运算符能够实现的,if语句的第二种格式都能实现。 反之不成立。 如果if语句第二种格式控制的语句体是输出语句,就不可以。 因为三元运算符是一个运算符,必须要有一个结果返回,不能是一个输出语句。
干货1
/* 面试题: **请自己实现两个整数变量的交换** 注意:以后讲课的过程中,我没有明确指定数据的类型,默认int类型。*/class OperatorTest { public static void main(String[] args) { int a = 10; int b = 20; System.out.println("a:"+a+",b:"+b); //方式1:使用第三方变量(开发中用的) /* int c = a; a = b; b = c; System.out.println("a:"+a+",b:"+b); System.out.println("------------"); */ //方式2:用位异或实现(面试用) //左边:a,b,a //右边:a ^ b /* a = a ^ b; b = a ^ b; //a ^ b ^ b = a a = a ^ b; //a ^ b ^ a = b System.out.println("a:"+a+",b:"+b); */ //方式3:用变量相加的做法 /* a = a + b; //a=30 b = a - b; //b=10 a = a - b; //a=20 System.out.println("a:"+a+",b:"+b); */ //方式4:一句话搞定 b = (a+b) - (a=b); //b=30-20=10,a=20 System.out.println("a:"+a+",b:"+b); }}
干货2
/* 位运算符: &,|,^,~ <<,>>,>>> 注意: 要做位运算,首先要把数据转换为二进制。*/class OperatorDemo { public static void main(String[] args) { //&,|,^,~ int a = 3; int b = 4; System.out.println(3 & 4); System.out.println(3 | 4); System.out.println(3 ^ 4); System.out.println(~3); }}/* 分析:**因为是位运算,所以我们必须先把数据换算成二进制。** 3的二进制:11 00000000 00000000 00000000 00000011 4的二进制:100 00000000 00000000 00000000 00000100 &位与运算:有0则0。 00000000 00000000 00000000 00000011 &00000000 00000000 00000000 00000100 ----------------------------------- 00000000 00000000 00000000 00000000 结果是:0 |位或运算:有1则1。 00000000 00000000 00000000 00000011 |00000000 00000000 00000000 00000100 ----------------------------------- 00000000 00000000 00000000 00000111 结果是:7 ^位异或运算:相同则0,不同则1。 00000000 00000000 00000000 00000011 &00000000 00000000 00000000 00000100 ----------------------------------- 00000000 00000000 00000000 00000111 结果是:7 ~按位取反运算符:0变1,1变0 00000000 00000000 00000000 00000011 ~11111111 11111111 11111111 11111100 (补码) 补码:11111111 11111111 11111111 11111100 反码:11111111 11111111 11111111 11111011 原码:10000000 00000000 00000000 00000100 结果是:-4*/
下面上运算符优先级
运算符的优先级(从高到低)
优先级 描述 运算符
1 括号 ()、[]
2 正负号 +、-
3 自增自减,非 ++、–、!
4 乘除,取余 *、/、%
5 加减 +、-
6 移位运算 <<、>>、>>>
7 大小关系 >、>=、<、<=
8 相等关系 ==、!=
9 按位与 &
10 按位异或 ^
11 按位或 |
12 逻辑与 &&
13 逻辑或 ||
14 条件运算 ?:
15 赋值运算 =、+=、-=、*=、/=、%=
16 位赋值运算 &=、|=、<<=、>>=、>>>=
好了 要去军训了。总结就写到这里了
再怎么急也不能忘了老规矩 送给自己的话:
别怕当多数人中的少数人
你要记住
低质量的社交不如高质量的独处
待人友善是修养,独来独往是性格
晚上回来再说今天的军训总结 :)
- JAVA 攻城狮 第四天
- JAVA 攻城狮 第二天
- JAVA 攻城狮 第六天
- JAVA 攻城狮 第十天
- JAVA 攻城狮 第十二天
- JAVA 攻城狮 第十六天
- JAVA 攻城狮 第二十天
- JAVA 攻城狮 第二十二天
- JAVA 攻城狮 第三十天
- JAVA 攻城狮 第二十六天
- JAVA 攻城狮 第三十二天
- JAVA攻城狮学习路线
- Java攻城狮面试考题
- JAVA 攻城狮 第一天
- JAVA 攻城狮 第三天
- JAVA 攻城狮 第五天
- JAVA 攻城狮 第七天
- JAVA 攻城狮 第八天
- SpringBoot RestTemplate源码分析
- spring boot之Swagger
- HBASE性能测试
- 懂二进制
- Day02:①将服务器端数据通过json传到客户端
- JAVA 攻城狮 第四天
- 使用FBSimulatorControl做模拟器适配测试(模拟器多开)
- 巨杉数据库SequoiaDB的安装部署
- 选择排序和堆排序
- GAN
- Linux中使用SecureCRT上传、下载文件命令sz与rz用法实例
- Android数据处理工具
- javascript小结
- 云计算的超高速交换与浪涌缓存技术白皮书