java两个对象赋值_一起学Java(二十六)----- 对象之间赋值
不积跬步,无以至千里;不积小流,无以成江海。
Java语言基础
Java对象之间赋值
赋值是用等号运算符“ = ”进行的,在对对象进行“赋值”时,实际就是将句柄从一个地方复制到另一个地方。这意味着假若为对象使用“A = B”,那么A和B最终都会指向最初只有B才指向的那个对象。也就是说这个时候他们两个引用了同一块内存地址.
class Number{
int i;
}
public class Test {
public static void main(String[] args) {
Number n1 = new Number();
Number n2 = new Number();
n1.i = 1;
n2.i = 2;
System.out.println("n1.i:" + n1.i);
System.out.println("n2.i:" + n2.i);
n2 = n1;
System.out.println(n1.equals(n2));
System.out.println(n1 == n2);
System.out.println("n1.i:" + n1.i);
System.out.println("n2.i:" + n2.i);
n1.i = 3;
System.out.println("n1.i:" + n1.i);
System.out.println("n2.i:" + n2.i);
}
}
程序输出:
n1.i:1
n2.i:2
true
true
n1.i:1
n2.i:1
n1.i:3
n2.i:3
看来改变n1(n1.i = 3)的同时也改变了n2!这是由于无论n1还是n2都包含了相同的句柄,它指向相同的对象(最初的句柄位于n2内部,指向容纳了值1的一个对象。在赋值过程中,那个句柄实际已经丢失;它的对象会由“垃圾收集器”自动清除)。
注意:
class Number{
int i;
}
public class Test {
public static void main(String[] args) {
Number n1 = new Number();
Number other = (Number)n1;
System.out.println(other == n1);
System.out.println(other);
System.out.println(n1);
}
}
程序输出:
true
Hello.Number@15db9742
Hello.Number@15db9742
java两个对象赋值_一起学Java(二十六)----- 对象之间赋值相关推荐
- java不会框架怎么办_感觉学java无从下手了,各种框架乱七八糟,感觉好乱。该怎么办!?...
image 各种各样的编程语言不断崛起,但唯有Java是牢牢占据着老大的位置,目前几乎90%以上的大中型互联网应用系统在服务器端开发首选Java.因此,也是吸引了不少年轻人投入到Java的学习之中. ...
- java里面cin怎么用_刚学Java,弱弱一问,eclipse中怎样输入啊,我写了输入语句但它不像C++的cin一样弹出输入窗口。。...
展开全部 import java.io.*; import javax.swing.JFrame; /************************************ * * @author ...
- java 两个字段排序_如何在Java中按两个字段排序?
使用Java 8流方法..//Creates and sorts a stream (does not sort the original list) persons.stream().sorted( ...
- java项目使用技术要求_想学JAVA 这些技术要求你必须知道,否则没戏
在当今时代,随着电子产业的迅猛发展,Java技术也得到越来越广泛的应用,Java工程师随之也成为受欢迎的IT岗位,但是Java工程师到底是干什么的呢?安博亚威告诉你. Java工程师,直白点来说,就好 ...
- java随机产生坐标点_刚学JAVA不久,问一下怎么把这个程序实现随机啊,不是按照坐标...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 int i; int z=0; int j,h=0,k=0; int AppletWidch,AppletHeight,currentImage; Ima ...
- java 获取 反射 方法 名_乐字节Java反射之一:反射概念与获取反射源头Class
一.Java反射机制概念 "程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言",如Python, Ruby是动态语言:显然C++,Java,C#不是动态语言,但是JAV ...
- Java前景如何?现在还能学Java吗?
Java是目前世界上最流行的计算机编程语言,是一种可以编写跨平台应用软件的面向对象的程序设计语言.随着互联网的快速发展,对于程序员的需求量很大.那么Java前景如何?新手还能学Java吗?本文小千给大 ...
- 【零基础学Java】—final关键字与四种用法(二十九)
[零基础学Java]-final关键字与四种用法(二十九) 一.final关键字 final关键字代表最终.不可改变的 常见的四种用法: 可以用来修饰一个类 可以用来修饰一个方法 可以用来修饰一个局部 ...
- 从零开始学java(二十六)--多维数组,多维数组存储表格数据
从零开始学java(二十六)--多维数组 多维数组 多维数组存储表格数据 多维数组 多维数组可以看成以数组为元素的数组.可以有二维.三维.甚至更多维数组,但是实际开发中用的非常少.最多到二维数组(学习 ...
最新文章
- python手机版下载3.7.2-Python3.5.2
- 广告行业中常说的 CPC,CPM,CPD,CPT,CPA,CPS 等词的意思是什么?
- Anaconda中文版
- 【Python-ML】神经网络激励函数-Sigmoid
- 投票彰显电信合约机诺基亚Lumia 800C受热捧
- 端到端测试实践:Jenkins集成TestCafe
- ubuntu没有进入图形界面解决办法
- LeetCode 700 二叉搜索树中的搜索
- AutoWare 使用
- oracle开发的小技巧(原创)
- 怎样填充潘通颜色_怎样判定润滑脂,锂基脂的好坏?
- C++实现简易五子棋游戏
- 解决因cocosStudio发布的csb文件过大导致的加载游戏界面卡的问题
- 个性化推荐系统设计(4.1)——案例分析
- 微信互动营销有哪些方式?
- 微型计算机AL和AH区别,微型计算机的技术与应用.ppt
- 通达信指标公式编写常用函数(四)——EVERY、COUNT
- 高中开设计算机了吗,职业高中计算机专业开设的必要性
- csv文件查找指定内容
- Radiology:人工智能系统脑MRI鉴别诊断精度接近神经放射科医生水平
热门文章
- 痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU特性介绍(3)- 命名规则
- Nodejs创建简单的Bot
- 防火防盗竟防不了网络攻击智能摄像机的网络安全怎么办?
- Linux开关命令(shutdown,reboot,halt,init)
- 如何控制Yahoo! Slurp蜘蛛的抓取频度_国外博客资源站_百度空间
- 分区表学习三:分区表实际操作心得
- 程序员如何通过书籍学习编程?小心用错方法,不然可能事倍功半!
- Extjs 强大的WEB窗体开发库
- 可是来个拦路虎的scutzh
- 今天的你死那去了的飞秋