【Java操作符及执行流程控制】
作符
主要操作符:+、-、*、/、=、++、--、+=、-=、==、!=、&&、||、!、&、^、~、>=、<=、>、< …..
几乎所有的操作符只能够操作”基本数据类型”,=、==、!=可以操作所有的数据类型及对象
String类型支持+、+=连接操作
优先级问题:
此处注意:任何数据类型与String类型进行+连接都将会先将其他的数据类型转变为String在连接成String类型
而此时的+不再会做任何的计算
demo:
int i = 1;
int j = 2;
System.out.println("result:" + i + j);//result:12
System.out.println("i == j : " + i == j);// ×
System.out.println("i == j : " + (i == j));// √
关于赋值操作符:取右边的值(即右值),把它复制给左边(即左值)。右值可以是任何常数、变量、或者表达式(只要它能够生成一个值就行)。但左值必须是一个明确的、已命名的变量,也就是必须有一个物理空间可以存储等号右边的值
基本数据类型赋值:直接将一个地方的值复制到另外一个地方
a = b;//b的内容复制给a,若修改a或b其中的一个值,另外一个值不会受到任何影响
对象赋值:真正操作的是对象的引用,
所以将对象赋值给另外一个对象实际上是将一个对象的引用复制到另外一个地方
它们其实指向的是内存中的同一块内容
demo:ObjectRefrenceTest.java
packagejavabase.flowcontrol;
publicclassObjectRefrenceTest{
/**
*对象赋值测试
*/
publicstaticvoidmain(String[]args){
Rowidrowid=newRowid();
rowid.rowid="LIYIHUIZHANYUANYING";
TiptopERPtopprod=newTiptopERP();
TiptopERPtoptest=newTiptopERP();
topprod.seesionId=0;
topprod.DBType="Oracle";
topprod.rowid=rowid;
toptest=topprod;//对象赋值
System.out.println("Before:");
System.out.println("topprod:"+topprod.seesionId+topprod.DBType+topprod.rowid.rowid);
System.out.println("toptest:"+toptest.seesionId+toptest.DBType+toptest.rowid.rowid);
System.out.println("Afterchangetopprodobject:");
//toptest.DBType="Informix";
topprod.DBType="Informix";
topprod.rowid.rowid="5201314131413141314";//此处改变了topprod.rowid对象的成员变量
System.out.println("topprod:"+topprod.seesionId+topprod.DBType+topprod.rowid.rowid);
System.out.println("toptest:"+toptest.seesionId+toptest.DBType+toptest.rowid.rowid);
System.out.println("-----------------------------");
TiptopERPerp=newTiptopERP();
TiptopERPmrpII=newTiptopERP();
erp.seesionId=2;
erp.DBType="DB2";
erp.rowid=rowid;//此处直接将先前的rowid对象直接赋值给erp.rowid
mrpII.seesionId=erp.seesionId;//对象成员变量int单独赋值
mrpII.DBType=erp.DBType;//对象成员变量String单独赋值
mrpII.rowid=erp.rowid;
System.out.println("Before:");
System.out.println("erp:"+erp.seesionId+erp.DBType+erp.rowid.rowid);
System.out.println("mrpII:"+mrpII.seesionId+mrpII.DBType+mrpII.rowid.rowid);
System.out.println("Afterchangrowid:");
erp.rowid.rowid="LIYIHUIZHANYUANYING";//此处改变了erp.rowid对象的成员变量
System.out.println("erp:"+erp.seesionId+erp.DBType+erp.rowid.rowid);
System.out.println("mrpII:"+mrpII.seesionId+mrpII.DBType+mrpII.rowid.rowid);
System.out.println("Afterchangeerpobject:");
erp.seesionId=1;
erp.DBType="Mysql";
erp.rowid.rowid="5201314131413141314";//此处改变了erp.rowid对象的成员变量
System.out.println("erp:"+erp.seesionId+erp.DBType+erp.rowid.rowid);
System.out.println("mrpII:"+mrpII.seesionId+mrpII.DBType+mrpII.rowid.rowid);
}
}
classTiptopERP{
intseesionId;//基本数据类型
StringDBType;//String对象
Rowidrowid;//一般对象
}
classRowid{
Stringrowid;
}
/*输出结果:
Before:
topprod:0OracleLIYIHUIZHANYUANYING
toptest:0OracleLIYIHUIZHANYUANYING
Afterchangetopprodobject:
topprod:0Informix5201314131413141314//rowid值改变了
toptest:0Informix5201314131413141314//rowid值改变了
-----------------------------
Before:
erp:2DB25201314131413141314//rowid值改变了
mrpII:2DB25201314131413141314//rowid值改变了
Afterchangrowid:
erp:2DB2LIYIHUIZHANYUANYING//rowid值改变了
mrpII:2DB2LIYIHUIZHANYUANYING//rowid值改变了
Afterchangeerpobject:
erp:1Mysql5201314131413141314//rowid值改变了
mrpII:2DB25201314131413141314//rowid值改变了
*/
demo:PassObject.java
package javabase.flowcontrol;
class Letter{
char c;
}
public class PassObject {
/**
*对象引用
*/
static void f(Letter y){
y.c = 'z';
}
更多精彩教程请关注:windows xp系统下载