Java笔记——控制程序流程
来源:互联网 发布:网络四大名著紫川 编辑:程序博客网 时间:2024/05/18 13:26
使用Java运算符
运算符
- 几乎所有运算符都只能对
主类型
进行操作 "=,==,!="
能够操作所有对象
优先级
- 程序员经常会忘记其他优先级,所有应该用括号明确规定计算规则
赋值
- 符号:=
- 取得右边的值,把它复制到左边
- 对主类型的赋值
- 只是简单的内容复制,修改其中之一并不会对另一个主类型造成影响
- 为对象赋值
- 真正操作的是它的句柄,所以两个对象互相赋值,实际上就是将一个句柄复制给另一个对象,最终指向同一个对象。
package com.wangchao.demo;class Number{ int i;}public class Assignment { public static void main(String[] args) { Number n1 = new Number(); Number n2 = new Number(); n1.i=9; n2.i=47; System.out.println(n1.i+" "+n2.i); n1=n2; System.out.println(n1.i+" "+n2.i); n1.i=27; System.out.println(n1.i+" "+n2.i); }}
运行结果:9 4747 4727 27
在经过赋值运算之后,改变n1.i的值同时n2.i的值也发生了改变,这是由于他们两个包含了相同的句柄,指向n1对象内部容纳了值9的一个对象,n2的句柄已经由垃圾收集器自动清除 通过n1.i = n2.i的方式,便可实现内容的赋值,而避免这种情况发生。
- 方法调用中的别名处理
- 别名和它的对策是一个相当麻烦的问题,现在应当先引起重视,后续会详细提到。
算数运算符
关系运算符
- ==与equals
Integer n1 = new Integer(41);Integer n2 = new Integer(41);System.out.println(n1 == n2);//FalseSystem.out.println(n1.equals(n2));//True
但其实equals的默认行为是比较句柄,除非在类中改变了equals()方法。但大多数Java类库已经实现了equals()的方法去比较内容而非句柄
逻辑运算符
- AND
- OR
- NOT
不可将一个非布尔值当做布尔值在逻辑表达式中使用
按位运算符
- &
- 若两个输出位都是1,则在输出位生成一个1,否则为0
- |
- 若两个输出位都是0,则在输出位生成一个0,否则为1
- ^
- 不全是1,则在输出位生成一个1,否则为0
移位运算符
- <<
- 将运算符左边的运算对象向左移动运算符右侧指定位数
- 有符号运算符
- >>
- 同上
- 有符号运算符,高位为负补1,否则补0
- >>>
- 无符号右移运算符
package com.wangchao.demo;public class URshift { public static void main(String[] args) { // TODO Auto-generated method stub int i = -1; i >>>= 10; System.out.println(i); //4194303 long l = -1; l >>>= 10; System.out.println(l); //18014398509481983 short s = -1; s >>>= 10; System.out.println(s); //-1 byte b = -1; System.out.println(b); //-1 }}
三元运算符
Static int ternary(int i){ return i < 10 ? i * 100 : i * 10;}
?前为逻辑判断语句
其值为真,则执行i*100
反之,则执行i*10
造型运算符
void casts(){ int i = 200; long l = (long) i; long l2 = (long) 200;}
进行缩小赋值则有造成信息丢失的危险,则必须进行造型
boolean不允许进行造型转换
类不允许造型转换
Java没有sizeof()
label
label1外部循环1{内部循环2{//..break;//1//..continue;//2//..continue label1;//3break label1;//4}}
条件一:中断内循环,并在外部循环结束条件二:中断内循环当前循环,并在内部开始下一次循环条件三:同时中断内循环与外循环,并在外部开始下一次循环条件四:同时中断所有循环
0 0
- Java笔记——控制程序流程
- 【笔记】Java编程思想—一控制程序流程
- 《Thinking in Java》学习笔记——第三章:控制程序流程
- thinking in java 笔记之控制程序流程
- 4.JAVA编程思想——控制程序流程
- Java控制程序流程总结
- Java之控制程序流程
- 控制程序流程(Java)
- JAVA学习笔记之三(控制程序流程)
- Thinking in Java 笔记(第三章 控制程序流程)
- 控制程序流程
- 控制程序流程
- 控制程序流程
- JAVA之第3章 控制程序流程
- JAVA之第3章 控制程序流程
- JAVA之第3章 控制程序流程
- java思想- - -&amp;gt;控制程序流程
- Thinking in java(Chapter3 控制程序流程)
- (1)Hadoop 1.2.1伪分布搭建
- 中转站
- 简单的文本行编辑程序——基于栈
- qq授权登录
- 用栈来实现表达式求值
- Java笔记——控制程序流程
- SSH 免密码登录 Openwrt 路由器
- bzoj1013: [JSOI2008]球形空间产生器sphere
- html5初学day3
- 表的连接
- linux中断系列之中断重要的数据结构(二)
- android开发styles.xml出错
- Redhat7.1 离线安装docker
- MySQL数据库