Java操作符及执行流程控制

发表于:2013-8-15 10:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:李艺辉    来源:51Testing软件测试网采编

  作符

  主要操作符:+、-、*、/、=、++、--、+=、-=、==、!=、&&、||、!、&、^、~、>=、<=、>、< …..

  几乎所有的操作符只能够操作”基本数据类型”,=、==、!=可以操作所有的数据类型及对象

  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值改变了
*/

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号