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,这正是我们大多数情况下所 ...
随机推荐
- 记录Git的安装过程
从https://git-scm.com/download/win,选择Windos版本下载. 选择打开的工具,用的Notepad. 下一步 下一步
- LINUX系统一一CentOS6.5之tomcat安装
一 准备工作建立好文件夹 tomcat文件夹地址 二 下载并解压 当然是下载了 1.centos6.5系统里面下载 解压 2.本机下载 然后利用Xftp复制到目标文件加载解压(我用的是这种,随意啦) ...
- C# CefSharp 可监听请求等
原地址:https://blog.csdn.net/jinxiu0406/article/details/80365140 bug1:在抓取js文件的时候,有时候数据未获取全,文本被截断了.在IRes ...
- js固定底部菜单
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- Python gevent
1\协程 import geventfrom gevent import monkeyimport requestsfrom bs4 import BeautifulSoupimport thread ...
- WebView 加载网页返回后,jsp界面数据消失(一个斜杆引起来的风波)
http://ip:port//interface/app/index.jsp 如果不小心就会把,port后面的//两个斜杆给忽略... 当有两个斜杆时,webview仍可以将网页,正常加载.但是数据 ...
- 一个查询指定错误记录数据表错误记录条数的shell脚本
#!/bin/bash #author:skycheng #parameters db_user=dbuser db_pass=dbpass db_host=xxx.xxx.xxx.xxx datab ...
- Mono vs IL2CPP
[Mono vs IL2CPP] 参考:http://blog.csdn.net/gz_huangzl/article/details/52486255
- app.use
[app.use] app.use([path,] function [, function...]) Mounting a middleware at a path will cause the m ...
- js中函数的 this、arguments 、caller,call(),apply(),bind()
在函数内部有两个特殊的对象,arguments 和 this,还有一个函数对象的属性caller. arguments对象 arguments是一个类似数组的对象,包含着传入函数的所有参数. func ...