写在前面: 视频是什么东西,有看文档精彩吗? 视频是什么东西,有看文档速度快吗? 视频是什么东西,有看文档效率高吗? 1. 表达式 十分钟后,两人重新来到了书房。 诸小亮:"咱们继续上课,首先来认识一下 表达式"表达式:就是数据的表达方式比如:int a = 2;那么 a 就是 2 的表达方式,所以 a 就是表达式 张小飞:"a 不应该是标识符吗?怎么又成表达式了" "一样的意思,只是叫法不同而已,这样定义后,只要提到 a,我们就明白它代表的是 2 " "我明白了,这相当于给数字 2 起了个绰号" "可以这样认为,但并不是很准确,因为下面的也是表达式:"public static void main(String[] args){ int a = 2; //数字3的表示方式有很多种,比如: a + 1;// a+1 可以表示 3 ,所以 a+3 也是表达式 1 + 2;// 1+2 也可以表示 3,所以它也是表达式 } 诸小亮"总之:只要能表示某个数据的代码,都是表达式 " 张小飞:"明白"2. 运算符 诸小亮:"接着,我们说说 Java 中的运算符,毕竟计算机嘛,就是帮助人类做计算的" 张小飞:"不就是 加减乘除 嘛,这有什么说的" "这你就不懂了,加减乘除只是最基本的,Java 中还有其他一些运算符,比如: %、++、-- 等,另外 Java 中的除法,跟我们平常中的除法也有点儿区别?" "哦?这我倒是想见识一下,哪里不一样" "不要着急,Java中的运算符分为好几种,我们一个一个说"1. 算数运算符1. + 、-、*、/ 诸小亮:"咱们先看 算数运算符,其实就是: + 、-、*、/public static void main (String [] args) { int a = 1 + 2; int b = a - 2; int c = b * 3; int d = c / 3; } "由于代码太简单,结果我就不输出了,给你 2 分钟,你自己看看吧" "师兄,您接着说吧,这么简单的东西,都不值得我动手"张小飞信心十足的说到 "好吧,上面的确实太简单,不过需要注意一点:除法运算,看下面代码:" 结果: "这是什么情况,不应该输出 2.5 吗?"张小飞问到 "2.5 是数学上的结果,Java 中,整数之间做除法,结果中的小数部分会被舍弃 " 张小飞:"但是这样的结果不正确啊,怎么能够保留小数部分呢?" 诸小亮:"如果想保留小数部分,那么就只能:" 结果: "哦,明白了,我自己来试试" "师兄,我好奇尝试一下把除数弄成 0,怎么会这样子?" "这表示程序出问题了,不过我们还没讲到这里,之后再说" "好的,好的"2. %:取模运算 张小飞:"这个 取模运算 是什么意思?" 诸小亮:"其实就是两个数相除,获取余数 ,比如:" 结果: 张小飞:"这个有点儿意思,我来试试" "师兄,我用正数测试是没问题的,但是用负数的话…,结果:" 诸小亮:"这正是我要给你说的第二点:如果除数是负数,负号可以忽略不计" 张小飞:"那,如果被除数是负数呢?我再来试试" 张小飞:"原来如此,如果被除数是负数,就不能忽略负号了" 诸小亮:"还有一种比较特殊的取模:被除数 比 除数 小,比如:" 张小飞:"这个怎么解释?" 诸小亮:"1 % 5,商是0,余数是1" "哦...,明白了" "还有一点需要记住:取模运算的结果,必然比除数小 " "这是当然,余数嘛,肯定比除数小"3. ++:自增运算符 诸小亮:"++运算符,表示自己加 1,比如:" 上图中:a++ 相当于 a = a+1,结果: 张小飞:"…,我还以为是很高深的东西呢,就这?" "你想多了,不过下面的就有些难度,比如:前置运算" "哦?什么是前置运算?"张小飞兴致勃勃的问到 "把 ++ 放到变量的前面,这就叫:前置运算,比如:" "…,你真无聊" "哈哈,开个玩笑,下面的才真正能有难度,仔细看好:" "师兄,感觉还需要您解释一下" "没问题,其实上面代码的运算逻辑,实际是:"先执行 ++ 操作,所以 a = 2;然后把 a 的值赋给 b,所以 b = 2; "明白,不过这也不难啊" "稍等,让我变形一下" "这...,怎么会这样呢?"张小飞疑惑道 "++ 放到变量后面,情况就不同了,这叫:后置运算,它的运算逻辑是这样的:"先临时记录 a 的值,比如:int temp = a;然后执行 ++ 操作,所以 a = 2;最后把 temp 赋给 b,所以 b = 1; "原来如此,我明白了"张小飞说道4. --:自减运算 诸小亮:"--运算符,就是自己减 1,跟 ++ 类似,我就不介绍了,给你 5 分钟,自己玩玩吧" 张小飞:"好的"2. 赋值运算符 五分钟后。 诸小亮:"接下来是 赋值运算" 张小飞:"师兄,赋值不就是 = 号吗,这还要单独讲?" "赋值运算符也有好几个,= 只是其中一个,还有:+=, -=, *=, /=, %=,你看看下面代码:" public static void main(String[] args){ int a = 2; a += 3;//相当于 a = a + 3; a -= 1;//相当于 a = a - 3; a *= 2;//相当于 a = a * 3; a /= 2;//相当于 a = a / 3; a %= 5;//相当于 a = a % 3; } "原来还可以这样使用,我明白了" "不过,需要明白,a += 3 跟 a = a + 3 还是有区别的,比如:" "这是不是写错了,这个代码编译会报错,s+3 是一个 int 类型的值,无法赋值给 s " "你说的没错,但是改一下的话:" "这时候就可以编译成功了,而且正常输出" 张小飞疑惑道:"这是为什么呢?" "原因很简单:+= 是赋值运算符,如果两边的类型不一样时会自动向低转化,所以…" "明白"3. 比较运算符 诸小亮:"比较运算符也有好几个:==、!=、>、>=、<、<=" 张小飞:"这个我知道,数学上也经常使用" "没错,不过在 Java 中,比较运算符的结果都是 boolean 型,要么是true,要么是false ,比如: "public static void main(String[] args){ boolean bool = 4 == 3; System.out.println(bool); System.out.println(4 != 3); System.out.println(4 > 3); System.out.println(4 >= 3); System.out.println(4 < 3); System.out.println(4 <= 3); } 结果: "这个比较简单,也没什么特殊的地方,看看就行" "好的"4. 逻辑运算符 诸小亮:"逻辑运算符,这个就复杂一些了" 张小飞:"师兄,你上面就说有难度,最后也没发现难在哪儿了,别再忽悠了" "咳咳,我说有难度了吗,我说的是:它稍微复杂一些"诸小亮反驳道 "好好,是我听错了,您接着说" "逻辑运算符,有 3 个:&&(且)、||(或)、!(非),咱们一个个解释 "1. && 诸小亮:"第一个:&&(且)"作用:连接两个表达式,两个表达式都为 true,结果才为 true,否则为 false 示例: 结果: 张小飞:"还得用 && 连起来,a> 诸小亮:"然后是 >> (右移)">>:右移,一个数右移 N 位,相当于除以 2 的 N 次方 张小飞:"明白,右移跟左移刚好相反" "是的,不过在右移后,左边会出现空位,这时:"如果是正数:左边补0如果是负数:左边补1 "师兄,不对啊,为什么我这个右移后结果是0呢?" 诸小亮微微一笑:"我们再来回忆一下,1 的二进制" "右移 1 位的结果:" 因为是正数,所以左侧补 0 ,最终结果: 张小飞:"原来如此,懂了懂了"3. >>> 张小飞:"师兄,>>> 这个也是右移?" 诸小亮:"是的,这个右移…" "是不是右移 N 位,就相当于除以 3 的 N 次方? "张小飞抢答道 "…,不是的,它的含义是:>>>:无符号右移,不管是正数、负数,右移后,左边统统补0" "师弟,这个我就不详细介绍了,你自己玩吧"4. & 诸小亮:"接下来是 & (按位与)运算" 张小飞:"这不是 ‘且’ 吗,怎么又叫 ‘按位与’ 了?" "…,你仔细看清楚,且是 ‘&&’,这里是 ‘&’" "哦哦,不好意思,看错了,那这个具体是什么意思?" "也是对二进制做运算,规则是:相同位置都是1,那么结果就为1,否则为0 " 示例: 结果: "这个,嗯…,还得麻烦您解释一下"张小飞说到 "怎么样,不是那么简单吧,给你个图,先看看" "明白了,关键就在于:相同位置都是1,那么结果就为1,否则为0 "5. | 诸小亮:"师弟,这个要看清楚了,是 ‘|(按位或)’,可不是 ‘||’" 张小飞:"…,好啦好啦,这次看清了,赶紧说说是什么意思吧" "对二进制做 或 运算,规则:相同位置均为0,那么结果就为0,否则为1 " 示例: 结果: "师弟,这个你能单独画张图,解释一下吗?" "没问题,看我的" "嗯嗯,没错没错,看来你已经掌握精髓了" "那,必须的"6. ^ 诸小亮:"最后一个:^(异或),规则:相同位置的值不同,那么结果就为1,否则为0 " 示例: 结果: "师兄,这个还交给我,你看看" "完全正确,简直不要太棒"诸小亮赞扬到 "过奖,过奖" "下面给你说一个场景,使用 ^ 很方便,面试也有人问" "哦?什么场景?"张小飞一下来了兴致 "比如:交换两个变量的值,你觉得应该怎么做?" "这太简单了,代码应该是:"public static void main (String [] args) { int a = 2; int b = 3; //交换 a 和 b 的值 int temp = a; a = b; b = temp; System.out.println(a + "," +b); } 结果: "嗯,没错,你这样确实能实现,但是使用 ^ 会更加简单,比如:" 结果: "这就交换成功了?不是吧" "没错,这就是 ^ 的强大之处,你根据之前的知识,好好研究一下吧,给你个提示:"一个数 异或 同一个数 两次,那么结果是它本身 "好的,好的,我这就看看" 6. 三元运算符 诸小亮:"来,还剩下最有一个运算符:三元运算符" 张小飞:"这又是什么东西?" "非常简单,格式:(条件表达式) ? 结果1:结果2; " "嗯....,不懂"张小飞摇摇头 "没关系,看一段代码你就明白了"public static void main (String [] args) { int a = 2; int b = 3; //三元运算:如果 a
计划有变!男篮将提前集结,24人集训名单将出炉,张宁胡金秋稳了不知不觉间,联赛第二阶段已经进入尾声。第二十八轮比赛结束后,各球队将原地解散,球员们也能回家度过短暂的春节假期。此前,根据联赛安排,在短暂假期后,各球队又将开始新一轮备战。近日,据5选1交易可助湖人一飞冲天?美媒2换2洛瑞邓罗3换2德罗赞武神头条创作挑战赛拉塞尔威斯布鲁克在2223赛季打替补后的表现是越来越好,目前场均15。1分7。9助攻6。4篮板1抢断0。5盖帽,命中率41。4,三分命中率28。5,最近的四场比赛三次将要被遗忘的电视机小时候父亲花二仟多元钱买了一台北京牌彩色电视机,全家人如得宝贝珍爱有加!每天晚饭后一家人围坐在电视机前收看精彩的节目。带天线的老牌电视机虽说只有八个频道,收台不多且音质也不是太好,无双玩家提醒,S30赛季想要上分,这些恶习要改掉,不然很难上分S30赛季,想要上分,需要做的东西,真的有点多,因为版本已经变得不一样了,上个版本单排随便上分,这个版本,貌似只有多排才好上分。我最近打单排很难上分,所以一直觉得我自己的号应该有问男篮3中锋成CBA周最佳巨头,新主帅亲自挑选,姚明首选2米23天才2米12,2米23!男篮3大中锋获得CBA周最佳,乔尔杰维奇重新选拔人才,姚明换掉杜锋之后,终于做了一个正确的决定。谈到男篮国家队新一届的3大中锋,在国际赛场也是赫赫有名的,而在C龟岛磺烟奇景再现!台湾宜兰县龟山岛白色浓烟大喷发台湾宜兰县龟山岛10日上午6时许龟首却冒白烟大喷发,渔民很久未见过如此大量的龟岛磺烟景象。(民众提供图片来源台湾中时新闻网)台湾宜兰县龟山岛目前封岛中,10日上午6时许龟首却冒白烟法瑞之旅之五法国及瑞士之旅2017年10月6日早晨我们乘车前往瑞士首都伯尔尼,伯尔尼古城于1983年被列为世界文化遗产。伯尔尼,意思是熊出没的地方。伯尔尼城始建于12世纪末,到18世纪基本建成中国人在泰国是明星待遇,在韩国是侮辱区别待遇头号有新人中国驻韩国大使馆于1月10日发布通知,暂停签发韩国公民赴华的短期签证这意味着韩国公民能申请到的以最快方式到中国的所有签证基本都被停发,只有长期多次签证人道主义签证机组签证简洁版网易QQ音乐来了!这个无广告的音乐神器,全网音乐免费听在互联网呆久了,小雷发现什么都开始涨价了,前段时间的优酷会员涨价使得小雷断了续费的念头。视频平台断VIP其实对小雷来说还可以接受,但如果断音乐平台VIP对小雷来说就很难受了。毕竟小一加Ace2要来了!1。5K曲面屏是亮点一加手机一直在推出新手机,就在最近又有一款名为一加Ace2的手机已经入网了,该机将会在春节后发布。根据相关消息爆料,一加Ace2的屏幕有亮点,主要采用的是分辨率为1。5K的曲面屏设折叠屏专属管家碎屏保优惠!OPPO华为些这售后服务很人性化近几年,在众多手机厂商的努力下,折叠屏越来越完善,不仅配置上可以和顶级旗舰相媲美,整体重量也降下来了。不过除了产品力之外,影响消费者购买折叠屏的因素还有很多,比如售后。因为折叠屏有