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,这正是我们大多数情况下所 ...
随机推荐
- JAVA字符串格式化-String.format()的使用【转】
原文地址:https://blog.csdn.net/lonely_fireworks/article/details/7962171 常规类型的格式化 String类的format()方法用于创建格 ...
- MVC part3
SpringMVC原理图 SpringMVC接口解释 DispatcherServlet接口: Spring提供的前端控制器,所有的请求都有经过它来统一分发.在DispatcherServlet将请求 ...
- c# vs2013部署项目
http://demo.netfoucs.com/shinepan/article/details/24865931
- RPN(region proposal network)之理解
在faster-r-cnn 中,因为引入rpn层,使得算法速度变快了不少,其实rpn主要作用预测的是 “相对的平移,缩放尺度”,rpn提取出的proposals通常要和anchor box进行拟合回归 ...
- /src/struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC ...
- java fastJson
// 大区的数据 String cityList = "[{'title':'华北','value':'1','children':[{'title':'山东','value':'1.1', ...
- 大型运输行业实战_day15_1_全文检索之Lucene
1.引入 全文检索简介: 非结构化数据又一种叫法叫全文数据.从全文数据(文本)中进行检索就叫全文检索. 2.数据库搜索的弊端 案例 : select * from product whe ...
- versionCode & versionName
[versionCode & versionName] Android的版本可以在androidmainfest.xml中定义,主要有android:versionCode和android:v ...
- Openstack 集群,及常用服务的 高可用 haproxy配置
一.介绍 配置文件位置(yum 安装):/etc/haproxy/haproxy.cfg 全局配置 #------------------------------------------------- ...
- nohup top -p 22452 -b >>jiu.log &
解释一下: 1. nohup \$order & 后台执行 2. nohup \$order >>$file & 后台执行,并输入指定文件 3. top -p $num 使 ...