Java编程思想[二]操作符
来源:互联网 发布:约瑟夫问题 c语言 编辑:程序博客网 时间:2024/06/05 17:09
程序是写给人看的,不是写给机器看的!
一、操作符
+ : 加号或正号
- : 减号或负号
* : 乘
/ : 除
= : 赋值
1.优先级(与数学中的优先级相似)
若String后面紧跟一个“+”,若后面跟的为非String类型的元素,则会尝试将这个非String类型的元素转换为String。
2.赋值(=)
1)取右边的值,把它复制给左边的值。
右值只要是一个值就好,左值必须是一个明确的、已命名的变量。即:左值必须有一个物理空间可以存储等号右边的值。但不能把任何东西都赋给一个常数,常数不能作为左值(1=a)。
2)基本数据类型与对象的赋值
基本数据类型:基本数据类型存储了实际的数值,并非指向一个对象的引用,在为其赋值时,可以直接将一个地方的内容复制到另一个地方。(即a=b,a=c,此时,不会改变b的值)
对象的赋值:对一个对象进行赋值,操作的是对象的引用(即a=b,a=c,因为是abc是对象,b引用指向a,值会跟着a的改变而改变,也叫别名现象) 如:
示例一:
public class Test4 {public static void main(String[] args) {Tank t1 = new Tank();Tank t2 = new Tank();t1.level = 9;t2.level = 47;/* * 947 * 简单的赋值操作 */System.out.println("tank1.level = " + t1.level + "tank2.level = " + t2.level);t1 = t2;/* * 4747 * 将t2赋值给t1,并将t2的引用从t2指向了t1,所以,后面t1修改之后,t2的值也会跟着修改 * 而原本指向t2的不再被引用的对象会被GC自动清理 */System.out.println("tank1.level = " + t1.level + "tank2.level = " + t2.level);t1.level = 27;/* * 2727 * 因为上文t2引用指向了t1,所以,t1修改,t2值也会修改 */System.out.println("tank1.level = " + t1.level + "tank2.level = " + t2.level);}}public class Tank {int level;}<span style="color:#ff0000;"></span>示例二:
public class Test6 {static void f(Letter l){l.c = 'z';}public static void main(String[] args) {Letter x = new Letter();//将Letter实例化,并赋值为ax.c = 'a';System.out.println(" x.c = " + x.c);//调用本类中的静态方法f(Letter l),将Letter中c的引用指向自己,即zf(x);System.out.println(" x.c = " + x.c);}}public class Letter {char c;}
二、算术操作符
多一个:% 取余
生成一个随机数,可以通过Random方法。
<span style="white-space:pre"></span>//47作为种子,目的使展示的输出都尽可能一致(用于随机数生成器的初始化值,随机数生成器对于特定的种子值总是产生相同的随机数序列)<span style="white-space:pre"></span>Random random = new Random(47);
三、自增(++)与自减(--)
前缀式:++a或--a
后缀式:a++或a--
区别:前缀式先执行运算,再生成值;后缀式先生成值,后运算。
public class Test7 {public static void main(String[] args) {int i = 1;System.out.println("i :" + i);//1System.out.println("++i :" + ++i);//2 原因:先运算,变为2,再赋值,输出System.out.println("i++ :" + i++);//2 原因:先赋值,为2,输出,再运算,变为3System.out.println(i);//3System.out.println("--i :" + --i);//2原因:先运算,为2,再赋值,输出System.out.println("i-- :" + i--);//2原因:先赋值,为2,输出,再运算,变为1System.out.println(i);//1}}
四、关系运算符
小于< 大于> 小于等于<= 大于等于>=
== !=
其中,==与!=比较的是对象的引用。
若想比较两个对象的实际内容是否相同,可通过重写equals()方法来实现,若不重写,equals()默认的行为比较的也是引用。(equals()具体后面章节有详解)
五、逻辑操作符
1.短路
若(a>b) && (c>d),”&&”左边为false,则不再执行后面的操作,直接跳出。
若(a>b) || (c>d),” || ”左边为true,则不再执行后面操作,直接跳出
所以,假如逻辑表达式有一部分不必计算,将会获得潜在的性能的提升
六、三元运算符
boolean-exp ? value1 : value2
若boolean-exp 为true,则执行value1;若为false,执行value2。
不能频繁使用。
七、数据类型转换
隐式转换:byte,short,char--->int--->long--->float--->double
byte,short,char相互之间不转换,他们参与运算首先转换为int类型。
强制转换:目标类型 名称= (目标类型)需要强转的数据;
示例:
<span style="white-space:pre"></span>byte b1=3,b2=4,b;<span style="white-space:pre"></span>b=b1+b2;<span style="white-space:pre"></span>b=3+4;哪句是编译失败的呢?为什么呢?
b=b1+b2; 因为byte进行运算时,要先转换为int型,而b是byte型,所以编译失败。
- JAVA编程思想(2) - 操作符(二)
- Java编程思想[二]操作符
- JAVA编程思想(二)操作符
- 重读《Java编程思想》之二:操作符
- 《Java 编程思想》--第三章:操作符
- JAVA编程思想(2) - 操作符(一)
- JAVA编程思想-第三章 操作符
- 【Java编程思想】三、操作符
- 《Java编程思想》第三章 操作符
- 《Java编程思想》读书笔记3.操作符
- 3操作符-Java编程思想
- 《java编程思想》第三章:操作符
- Java编程思想--第三章 操作符
- Java编程思想-03操作符
- Java编程思想(三)--操作符
- java编程思想读书笔记三:操作符
- JAVA编程思想笔记--操作符
- Java编程思想之操作符
- Linux is not Matrix——日志搜集平台ELK(I)
- 搭建一个私有registry服务(基础版本)
- 归纳法证明汉诺塔解析式思路
- 67. Add Binary
- 360开源的类Redis存储系统:Pika
- Java编程思想[二]操作符
- Spark SQL简单操作演示(含导出表)
- 【软考总结】——十六进制与二进制的转换
- Java实现ftp上传文件、文件夹
- 关于PHP的多线程扩展pcntl的一些测试
- jQuery学习笔记
- AJAX提交页面代码
- Android-BaseAdapter中重写getview的心得以及发现convertView回收的机制
- hadoop2.7.2分布式集群搭建和生态系统配置