复习笔记3 算数运算符 转义字符 转义序列 前后自增自减的区别
2012-05-14 22:15
459 查看
public class Test4 { public static void main(String[] args) { //算数运算符 int x = 0; x = 1 + 2; x = 2 - 1; x = 2 / 1; x = 2 * 1; //除法并不会保留小数部分,也不会四舍五入 //而是舍弃全部的小数部分 x = 9 / 5; System.out.println(x); System.out.println("=================================>"); //一般为了避免上边的问题,都会先乘后除 //这在做百分比的时候经常会遇见 x = 5; x = x / 100 * 100; System.out.println(x); x = 5; x = x * 100 / 100; System.out.println(x); System.out.println("=================================>"); //表示正负 //这个只用在赋值上 x = -1; x = +1; //这么写是行,但是。。。无语 x = x + (-1); x = x - (+1); //取模,整除取余 //模运算只看左边正负,而不看右边 x = 5 % 2; System.out.println(x); x = -5 % 2; System.out.println(x); x = 5 % -2; System.out.println(x); x = -5 % -2; System.out.println(x); System.out.println("=================================>"); //后自增自增 //这里可以到,第一行打印,x并没有自增 //而是第二行,x才自增的,可以把它看作 //syso(x) x++ syso(x) x = 5; System.out.println(x++);; System.out.println(x); System.out.println("=================================>"); //这里发现跟上边一样的原理,所以两个 //都是6,那么可以看成是 //syso(x+1) x++ syso(x) //我们考虑一个问题,如果用小括号把x++ //括起来呢,优先级是不是能解决问题? x = 5; System.out.println(x+++1); System.out.println(x); System.out.println("=================================>"); //很遗憾,()虽然会增加优先级,但并不 //会使后自增优先于x+1,那么是不是应该 //理解成后自增是表达式完成之后呢? x = 5; System.out.println((x++)+1); System.out.println(x); System.out.println("=================================>"); //这里发现并不是,因为结果是11,也就是说 //后自增是在取值之后,而不是表达式结束之后 x = 5; System.out.println(x+++x++); System.out.println("=================================>"); //x的自增可以理解为x参与1次不包括自身的运算之后 //当然这可以理解成在下次取值前自增 //详细情况可以对比x++ + 1 和 x++ + x x = 5; System.out.println(x+++1+x++); System.out.println("=================================>"); //前自增 x = 5; System.out.println(++x); System.out.println(x); System.out.println("=================================>"); //6+7=13 这个没什么好说的,取值前自增 x = 5; System.out.println((++x)+(++x)); System.out.println("=================================>"); //复合自增 //虽然这两个例子的结果一样,但要注意 //他们的自增执行顺序 x=5; System.out.println((x++)+(++x)); x=5; System.out.println(++x+x++); //无论怎么划分自增,结果都是11 //x++ + x = 5 + 6 = 11 //x + ++x = 5 + 6 = 11 x=5; System.out.println(x+++x); System.out.println("=================================>"); //自减 //与自增一样,就不在说了 //+运算符重载 //这个地方就不写了,一看就懂 String s = "a" + "b"; System.out.println(s); s = "" + 1 + 2; System.out.println(s); s = ("" + 1) + 2; System.out.println(s); s = "" + (1 + 2); System.out.println(s); s = 1 + 2 + ""; System.out.println(s); System.out.println("=================================>"); System.out.println(); //转义字符 //八进制assci码 范围'\000' - '\377' System.out.println('\141' == 'a'); //这里要注意,asscii中的空字符'\0'跟空格是不一样的 System.out.println('\0'==' '); //unicode转义字符 范围'\u0000' - '\uffff' //其中ascii编码没变,'\u0000' - '\u00ff' System.out.println('\u0061' == 'a'); System.out.println("=================================>"); //转义字符中的特殊字符 //以下两个在JavaScript和sql中经常遇到,嵌套字符串 //双引号字符 System.out.println('\"'); //单引号字符 System.out.println('\''); //该转移字符出现在java中的绝大部分相对路径的写法中 //而有些api中的相对路径需要\\而写成字符串就是\\\\ //反斜杠 System.out.println('\\'); //采用转义序列可以避免一些问题导致的不兼容性 System.out.println("\134"); System.out.println("=================================>"); //转义字符中的控制字符 //回车换行 //在windows中,换行需要2个\r\n //在linux中,换行只需要\n System.out.println("abc\raaa"); System.out.println("=================================>"); System.out.println("abc\naaa"); System.out.println("=================================>"); System.out.println("abc\r\naaa"); System.out.println("=================================>"); //换页,没用过。。。 System.out.println("abc\faaa"); //水平制表符 相当于table的功能,但有很多情况兼容性差 //所以一般还是多个空格来自定义制表符 System.out.println("abc\taaa"); //退格 //很少会用到,subString比他好用多了 System.out.println("abc\b"); System.out.println("=================================>"); //这里的4个双引号很容让人误解成是需要打印的是2,也就是 //a的length和b的length System.out.println("a\".length()+\"b".length()); //如果采用转义序列来做,句简单直观多了,就是打印字符串的长度 System.out.println("a\034.length()+\034b".length()); System.out.println("=================================>"); } }
相关文章推荐
- 反斜杠加3个数字是什么编码, JAVA转义序列, 转义字符汇总
- 算数运算符 自加运算 a++和++a的区别
- 反斜杠加3个数字是什么编码?JAVA转义序列、转义字符汇总。
- python笔记3 - 布尔运算,位运算,字符串 str,转义序列,ASCII编码,len函数,隐式字符串拼接,in & not in 运算符
- java重修之路(三)算数运算符,转义字符,逻辑运算符,位运算符
- C语言转义序列,printf双引号内的特殊转义字符
- 指向运算符(->)与 成员运算符(.) 区别详解
- Java的算数运算符、关系运算符、逻辑运算符、位运算符
- 运算符 AS和IS 的区别
- sizeof()运算符与strlen()函数的区别
- vb.net 与 c# 运算符区别
- PHP基础1-变量/数据类型/单引号双引号区别/运算符/内容输出
- 终端控制转义序列的研究
- 学习笔记---Equal()方法、ReferenceEqual()方法以及运算符==的区别
- c++ 中指针运算符->与成员运算符. 的区别
- 【工具设置】解决“请求筛选模块被配置为拒绝包含双重转义序列的请求”错误
- C/C++语言的标准库函数malloc/free与运算符new/delete的区别
- Java自增运算符和自减运算符,在变量前和变量后的区别。
- 禁用cookies前后,jsessionid 与 request.getRequestedSessionId()区别
- c#中 变量++ 和 ++变量 运算符的区别