JavaSE回顾及巩固的自学之路(三)——————所有语言的都存在的基本运算
在上一篇的博客中,我回顾到Java中的关键字,标识符等知识点,而今天这篇博文将回顾Java的,哦,不,不止Java,据本人了解,几乎在所有的语言中的基础阶段,都会存在这些运算,只是语法不一样而已。
今天回顾的先做一个总结:1.运算符;2.实现键盘录入;3.流程控制语句;4.控制跳转语句。
运算符:千万不要被字面所迷惑,千万不要认为运算符就是用于数学运算的工具。数据,不仅是数学角度的运算数据。
(1).算术运算符:+,/,-,*,%,++,--;
+:有三种用法:
1.数学上的加法;
2.数学上的正号;
3.这是最关键上的一点:字符串连接符;在这个用法上面,容易出现一个计算障眼法:
String str = "hello" + 'a' + 2;
String str2 = 2 + 'a' + "hello";
在上方的两个运算中,是存在加法的两种用法,这就是待会要讲到的流程控制语句;
要记住一个关键点就是ASCII码表:a的十进制值是97;然后记住,默认运算从左到右;分析第一个:hello和a先运算+;字符串和一个char类型相加,那么就是字符串连接符的功能,然后helloa和2相加,所以str的值就是helloa2;
分析第二个:2和a运算:int类型和char类型运算,实际就是运算其二者的十进制值,所以接下来就是99和hello运算,+表现字符串连接符的功能,所以str2的值是99hello。
-:减法就是用于数学角度的运算操作。
/和%:二者都是运用于数学角度的除法:而得出的结果就是:/是商,%是余数。
++和--:自增,自减一个单位;但是在使用的时候就是有区别;如果单独操作那么就是自增或者自减,运算符放在前面或者后面都是一样是运算效果,例:int a = 100; a++; ++a; //得出的结果第一个a值变为101,第二个运算:a值变为102;
但是 用于操作运算中,就是运算符的放前放后就是不一样,例:运算符放在操作前面使用,则是先自增(自减),在参与操作。int a = 10; int b = ++a; 这样的b的值就是11,a的值也是11。那么运算符放在操作后面使用,则是先参与操作,在自增(自减)操作。int a1 = 10; int b1 = a1++; 那么b1的值就是先得到a1的值10,那么a1在进行自增操作,所以a1的值最后变为11。
(2).赋值运算符: =,+=,*=,/=,%= 等;
其中“=”号就是最基本的赋值运算符,例:int i = 10; 其运行的操作就是把10这个值赋值给int类型的变量i。
而其余的则为扩展的赋值运算符:而其中就有一个特殊的特点,就是蕴含了强制转换。例:short s = 1; s = s + 1; 其中我们知道short为单精度的数据类型,而这样的代码块是报错的,因为s为short类型,而s = 1,1 + 1为默认int类型,所以:short s = 1; s = (short) s + 1;这样的运算符才是正确的。所以:short s = 1; s += 1; 这样的代码块才不会,报错,因为s = (short) s + 1; === s += 1;
(3).比较运算符:==,!=,>,<,>=,<=等,而比较运算符的运算结果始终都是boolean类型;
(4).逻辑运算符:&,|,^,!,&&,|| 等,在其中,逻辑运算符是用于为boolean类型搭桥的公式,所以,在逻辑运算符的左右都为boolean类型;
&:在运算符的左右中:如果有false则总体为false;
|:在运算符的左右中:如果有true则总体为true;
^:在运算符的左右中:如果相同总体则为false,不同总体则为true;
!:运算符的右边如果为true则为false,如果为false,则总体为true;
&&:在运算符的左右中:如果左边为false,则右边不执行,执行之后的总体结果就是和&运算判断方法一致,而这种效果就称为短路效果;
||: 在运算符的左右中:如果左边为true,则右边不执行,执行之后的总体结果就是和 | 运算结果一致,
(5).位运算:就是^的一种特殊的功能;用于数值上的运算;数值a和数值b异或两次,那么该运算的值就是数值a的值,不变。
所以,其中就可以运用到两个数据的交换,例: int a = 10; int b = 20; b = a ^ b ; a= a ^ b ; b = a ^ b ;
2.在数据运算中,我们总是只有运用固定的字符,来进行数据的操作,如果想修改数据,只有重新运行一遍代码,这样,大大的加大了程序的调试难度,那么我们就要实现人机交互,实现键盘录入的功能:这样大大的提高了代码的灵活性。这样我们就是需要运用到后面内容的匿名类功能:那么键盘录入的格式:
(1).导包: import java.utli,Scanner;
(2).创建Scanner对象:Scanner scanner = new Scanner(System.in);
(3).调用该对象,获取键盘录入数据:int i = scanner.nextInt();
3.流程控制语句:总共分为三种:1.顺序结构:从上往下,依次执行; 2.选择结构:按照不同的选择,执行不同的代码块; 3.循环结构:按照循环的条件,执行需要循环的代码块不断执行。
4.if语句:一共有三种格式;其中要注意的是:比较的一个表达式,结果永远是boolean类型;if语句中控制执行的语句如果是一条语句的话,那么{}是可以省略的;如果其中一个执行,那么接下来的条件就不执行。
5.swith语句:格式就不讲了,太low。在switch语句中,就是有几个面试题经常会碰到的题:在switch的表达式中通常是一个数据类型:byte,short,int,char,那么在jdk5之后可以是枚举,在jdk7之后可以是字符串String,但是不能是long类型。还有一个问题就是如果省略了break,那么就会出现case穿透现象。
6.循环语句:for循环,while循环,do...while循环
(1).for循环:有几个注意事项,在判断条件语句一定是boolean类型。在循环体语句中,如果只有一条语句,那么就可以省略大括号。
(2).while循环:对于在while循环和for循环中的使用上的区别,可以这么讲:for适合于一个范围上的判断
while循环呢?适合循环的次数不明确的循环操作。
(3).do...while循环:它和while循环的区别就是它无论循环的条件成立不成立,循环体语句都会执行一次,而for和while就需要先判断条件成立。
在循环中,有些特殊情况需要注意,就是一个死循环现象,对于死循环现象,不要在字面上理解他为一个bug,一个错误的代码,其实在程序中,死循环是一种需要存在的代码,格式比如:for( ; ; ) 和while(true){},就是就是循环条件一定成立,一定是true。那么怎么停止程序呢?这就是待会要讲的控制跳转语句的支持了。在for循环还有一个增强for的应用,在后期的集合中会提到应用
7.控制跳转语句:1.break,2.continue,3.return
对于这三者的区别,需要很强的逻辑能力才能区分,理解。
(1).break:中断,用于跳出单层循环,跳出多层循环。
(2).continue:继续,用于跳出单层循环一次,然后下一次继续循环
(3).return:返回,用于结束方法,在遇到return,该方法,程序就会结束。
JavaSE回顾及巩固的自学之路(三)——————所有语言的都存在的基本运算的更多相关文章
- JavaSE回顾及巩固的自学之路(四)——————方法和数组,面向对象
今天是2018.03.31,emmmmmm.好像距离上一次写Javase回顾总结已经好久好久过去,差一点就以为要停更了,哈哈哈. 其实呢,最近是真的好忙(额,这段时间觉得自己一直在学习) ...
- JavaSE回顾及巩固的自学之路(二)——————进入JavaSE
好的.今天接着上一篇文章对JavaSE的历程初步介绍,开始对JavaSE的技术性知识进行探讨. 首先,选择编程,成为一名程序员,应该会了解一些计算机的相关基础知识,毕竟,以后就是和计算机打交道了嘛.s ...
- JavaSE回顾及巩固的自学之路(一)——————前言
长长的呼出一口气,终于到了末端了,JavaSE,Java入门的基础,历经一个多月,终于细细的学了一遍,大部分的时间都是熬夜到半夜两点钟.本来是一个月的课程,足足让我给学了将近两个月,为什么呢?第一,还 ...
- 【转】JAVA自学之路
JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...
- 【转】Java自学之路——by马士兵
作者:马士兵老师 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟 ...
- Java自学之路(新手一定要看)
Java自学之路(新手一定要看) 转自尚学堂 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游 ...
- [感悟]马士兵Java自学之路——(精华版)
JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...
- 马士兵_JAVA自学之路(为那些目标模糊的码农们)
转载自:http://blog.csdn.net/anlidengshiwei/article/details/42264301 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. ...
- 我的web前端自学之路-心得篇:我为什么要学习web前端?
时光如流水,转眼间,自己已经是大三的学长了,看着一个个学弟学妹,心中有种莫名的感觉,很怀念大学的前两年时光,但也很憧憬着自己的未来,自己将要去经历很多从未经历的事.我是我们学校信科院的一名学生,在编程 ...
随机推荐
- 状压DP总结
状态压缩就是将一行的状态压成一个二进制数,这个数的二进制形式反映了这一行的情况 比如0100111的意义为:这一排的第一个数没被使用,第二个被占用了,第三四个没被占用,第五六七个被占用 我们知道位运算 ...
- 基于配置文件的redis的主从复制
redis中主从复制有很多种配置方法: 1. 使用配置文件即为redis.conf来配置 在随从redis中配置 # slaveof {masterHost} {MastePort} slaveof ...
- Java,mysql String与date类型转换
String 与 date类型转换 字符串转换成日期类型: SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//小写 ...
- c语言笔记: 对 void *lpObj 进行类型转换时,一不留神,后果很严重
问题描述: 一个项目之前测试的时候一点问题没有,今天早上软件在一个特定的条件下出现崩溃情况,但并不是每次都会崩溃情,崩溃概率达到80%. 经过上午3个小时的排查,终于找到原因. 在项目中,我使用了一个 ...
- 生产环境Linux常用命令【随时更新】
1. 查询文件中的关键字并高亮显示[查询当前目录关键字为elasticsearch的日志文件] find ./ -name "my-elasticsearch.log" | xar ...
- Python基础语法总结
1.Python标识符 在 Python 里,标识符有字母.数字.下划线组成. 在 Python 中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. Python 中的标识符是区分大 ...
- POJ 2449 Remmarguts' Date (第k短路径)
Remmarguts' Date Time Limit: 4000MS Memory Limit: 65536K Total Submissions:35025 Accepted: 9467 ...
- 使用WinPcap(SharpPcap)实现ARP抓包以实现设备IP修改功能
参考上一篇: 使用WinPcap(SharpPcap)实现ARP抓包以实现设备IP搜索功能 搜索出设备后,需要修改设备IP网关掩码等信息 继续采用ARP包 getBas类似之前的,根据用户电脑的网卡物 ...
- SQL Server 序列(SEQUENCE)使用
众所周知,在之前的SQL SERVER版本中,一般采用GUID或者IDENTITY来作为标示符,但是IDENTITY是一个表对象,只能保证在一张表里面的序列,当我们遇到以下情况时, 如上表,我们需要在 ...
- Mac 上有哪些值得推荐的软件?冷门小众软件但实用
确实Mac上有很多小众.冷门,但却是十分实用.值得推荐的工具,小编针对用的比较多的软件,整理了一些,希望有帮助. The Unarchive:解压缩工具 macOS 对于压缩文件的处理不是很好.如果你 ...