Java运算符号,对象赋值,别名
生活发生的一切,才会促使着我继续前行,今天继续更新哦,看书中的代码练习。
例子1 引入net.mindview.util.Print.* ,方便打印结果。
package com.date0529;
import java.util.Date;
//需要引入类库,并且配置ClassPath环境变量中添加该代码目录树的根目录
import static net.mindview.util.Print.*;
public class Test_0529_Demo01 {
public static void main(String[] args) {
print("Hello. it's: ");
print(new Date());
}
}
例子2 运算符号的优先级
public class Test_0529_Demo02 {
public static void main(String[] args){
int x=1,y=2,z=3;
int a=x+y-2/2+z;//(1)
int b=x+(y-2)/(2+z);//(2)
System.out.println("a="+a+" b="+b);
}
}
运算结果如下:

例子3 对象的赋值 t1赋值,之前的t1对对象的引用已经被垃圾回收清除掉,现在t1,t2指向的是相同的对象。如果要保留t1,t2独立,可以t1.level = t2.level 这样赋值
public class Test_0529_Demo03 {
public static void main(String[] args){
Tank t1 = new Tank();
Tank t2 = new Tank();
t1.level = 9;
t2.level = 51;
System.out.println("1: t1.level "+t1.level+" t2.level "+t2.level );
t1 = t2;
System.out.println("2: t1.level "+t1.level+" t2.level "+t2.level );
t1.level = 23;
System.out.println("3: t1.level "+t1.level+" t2.level "+t2.level );
t2.level = 100;
System.out.println("3: t1.level "+t1.level+" t2.level "+t2.level );
}
}
运算结果如下:

例子4 方法调用中的别名
package com.date0529;
class Letter{
char c;
}
public class Test_0529_Demo04 {
/**
* 方法调用的别名问题,这里f()方法实际上只是传递了一个引用
* @param y
*/
static void f(Letter y){
y.c = 'z';
}
public static void main(String[] args){
Letter x = new Letter();
x.c = 'a';
System.out.println("1: x.c: " +x.c );
f(x);
System.out.println("2: x.c: " +x.c );
}
}
运算结果如下:

例子5 算数操作符 自增和自减要好好理解下,自增在前则是先执行加同理在后后执行加
package com.date0529;
import java.util.Random;
/**
* 算数操作符
*/
public class Test_0529_Demo05 {
public static void main(String[] args){
//创造一个随机数
Random rand = new Random(47);
int i, j, k;
//选择一个1到100之间的数
j = rand.nextInt(100) + 1;
System.out.println("j: " + j);
k = rand.nextInt(100) + 1;
System.out.println("k: " + k);
i = j + k;
System.out.println("j+k: " + i);
i = j - k;
System.out.println("j-k: " + i);
i = j / k;
System.out.println("j/k: " + i);
i = j * k;
System.out.println("j*k: " + i);
i = j % k;
System.out.println("j%k: " + i);
j %= k;
System.out.println("j %= k: " + j);
float u, v, w;
v = rand.nextFloat();
System.out.println("v: " + v);
w = rand.nextFloat();
System.out.println("w: " + w);
u = rand.nextFloat();
System.out.println("u: " + u);
u = v + w;
System.out.println("v+w: " + u);
u = v - w;
System.out.println("v-w: " + u);
u = v / w;
System.out.println("v/w: " + u);
u = v * w;
System.out.println("v*w: "+ u);
u += v;
System.out.println("u +=: " + u);
u -= v;
System.out.println("u -=: " + u);
u *= v;
System.out.println("u *=: " + u);
u /= v;
System.out.println("u /=: " + u);
int m = 1;
System.out.println("m: " + m);
System.out.println("m++: "+ m++);
System.out.println("++m: " + ++m);
System.out.println("--m: " + --m);
System.out.println("m--: " + m--);
System.out.println("m: " + m);
}
}
运算结果如下:

Java运算符号,对象赋值,别名的更多相关文章
- Java中子类对象赋值给父类变量
1. 在Java中将一个字类对象赋值给父类变量是合法的,这也是实现多态(即方法的动态分派)的前提条件之一. 2. 在Java中父类赋值同样也适用于数组.可以将一个子类数组赋值给一个父类数组变量.但可能 ...
- Java对象引用和对象赋值
关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用,那实在没法很好 ...
- Java 对象引用以及对象赋值
一.Vehicle veh1 = new Vehicle(); 通常这条语句执行的动作被称为创建一个对象,其实他包含了四个动作. 1.new Vehicle :表示在堆空间内创建了一个Vehicle ...
- Java基本数据类型之间赋值与运算归纳
前言:面对“byte b1=3;byteb2=7;byte b=b1+b2;”报错,而“int i1=3;int i2=7;int i=i1+i2;”不报错,进行了深入探究,从而引申出java基本类型 ...
- [JAVA]对象的别名问题
对于JAVA的基本数据类型,a=b就是把b的内容复制给a.若接着又修改了a,对b是没有影响的. 但是在为对象“赋值”的时候,情况发生了变化.对一个对象进行操作时,我们真正操作的是对象的引用. 下面对两 ...
- MATLAB符号对象与符号运算
序言 符号对象(Symbolic Objects 不同于普通的数值计算)是Matlab中的一种特殊数据类型,它可以用来表示符号变量.表达式以及矩阵,利用符号对象能够在不考虑符号所对应的具体数值的情况下 ...
- Java中用字符串常量赋值和使用new构造String对象的区别
String str1 = "ABC"; String str2 = new String("ABC"); String str1 = “ABC”;可能创建一个 ...
- JAVA基础——运算符号
运算符(java) 算数运算符:+,-,*,/,%(取余),++,-- 赋值运算符:= 关系运算符:<, >, >= ,<= ,== , != 逻辑运算符:&& ...
- 【java】对象赋值给另一个对象
对基本数据类型的赋值很简单的.基本类型存储了实际的数值,而并非指向一个对象的引用,所以在赋值的时候,是直接将一个地方的内容复制到另一个地方.对于a=b,修改b后并不会影响到a,这正是我们大多数情况下所 ...
随机推荐
- LeetCode OJ 47. Permutations II
题目 Given a collection of numbers that might contain duplicates, return all possible unique permutati ...
- 使用jQuery+huandlebars遍历展示对象中的数组
兼容ie8(很实用,复制过来,仅供技术参考,更详细内容请看源地址:http://www.cnblogs.com/iyangyuan/archive/2013/12/12/3471227.html) & ...
- 配置 SQL Server 2008 Email 发送以及 Job 的 Notification通知功能
SQL Server 2008配置邮件的过程就不写了,网上的案例太多了. http://www.cnblogs.com/woodytu/p/5154526.html 这个案例就不错. 主要写下配置完后 ...
- 使用AutoMapper时Expression的转换
此文章为转载:http://www.bubuko.com/infodetail-699735.html 参考链接: http://q.cnblogs.com/q/34480/ dudu有回复,其中 ...
- 修改maven项目的编译版本
在pom.xml中添加如下代码 <build> <!-- 配置了很多插件 --> <plugins> <plugin> <groupId>o ...
- 2017-2018面向对象程序设计(Java)课程助教工作职责及分工
2017-2018面向对象程序设计(Java)课程助教工作职责及分工 一.研究生助教团队名单 张光辉,王玉环,牟巧玲,徐进 二.工作职责与要求 1) 针对所指导学习小组学生,批改课程实验作业每周一次, ...
- Eclipse git 冲突合并
Eclipse有一个git的插件叫EGit,用于实现本地代码和远程代码对比.合并以及提交.但是在本地代码和远程代码有冲突的时候,EGit的处理方案还是有点复杂.今天就彻底把这些步骤给理清楚,并公开让一 ...
- Webpack Loaders
[Webpack Loaders] 1.Query parameters Loader can be passed query parameters via a query string (just ...
- Eclipse kepler 安装 Dynamic Web Project差距WTP
原文地址:http://blog.csdn.net/westrain2010/article/details/25122999, 欢迎转载 Eclipse 标准版是不能创建 Dynamic Web P ...
- 使用git或TortoiseGit推送项目至gitlab
一.Wins安装Git+Trtoisegit工具实现版本克隆与推送 Git: https://git-scm.com/ Tortoisegit: https://tortoisegit ...