不积跬步,无以至千里;不积小流,无以成江海。

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(二十六)----- 对象之间赋值相关推荐

  1. java不会框架怎么办_感觉学java无从下手了,各种框架乱七八糟,感觉好乱。该怎么办!?...

    image 各种各样的编程语言不断崛起,但唯有Java是牢牢占据着老大的位置,目前几乎90%以上的大中型互联网应用系统在服务器端开发首选Java.因此,也是吸引了不少年轻人投入到Java的学习之中. ...

  2. java里面cin怎么用_刚学Java,弱弱一问,eclipse中怎样输入啊,我写了输入语句但它不像C++的cin一样弹出输入窗口。。...

    展开全部 import java.io.*; import javax.swing.JFrame; /************************************ * * @author  ...

  3. java 两个字段排序_如何在Java中按两个字段排序?

    使用Java 8流方法..//Creates and sorts a stream (does not sort the original list) persons.stream().sorted( ...

  4. java项目使用技术要求_想学JAVA 这些技术要求你必须知道,否则没戏

    在当今时代,随着电子产业的迅猛发展,Java技术也得到越来越广泛的应用,Java工程师随之也成为受欢迎的IT岗位,但是Java工程师到底是干什么的呢?安博亚威告诉你. Java工程师,直白点来说,就好 ...

  5. java随机产生坐标点_刚学JAVA不久,问一下怎么把这个程序实现随机啊,不是按照坐标...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 int i; int z=0; int j,h=0,k=0; int AppletWidch,AppletHeight,currentImage; Ima ...

  6. java 获取 反射 方法 名_乐字节Java反射之一:反射概念与获取反射源头Class

    一.Java反射机制概念 "程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言",如Python, Ruby是动态语言:显然C++,Java,C#不是动态语言,但是JAV ...

  7. Java前景如何?现在还能学Java吗?

    Java是目前世界上最流行的计算机编程语言,是一种可以编写跨平台应用软件的面向对象的程序设计语言.随着互联网的快速发展,对于程序员的需求量很大.那么Java前景如何?新手还能学Java吗?本文小千给大 ...

  8. 【零基础学Java】—final关键字与四种用法(二十九)

    [零基础学Java]-final关键字与四种用法(二十九) 一.final关键字 final关键字代表最终.不可改变的 常见的四种用法: 可以用来修饰一个类 可以用来修饰一个方法 可以用来修饰一个局部 ...

  9. 从零开始学java(二十六)--多维数组,多维数组存储表格数据

    从零开始学java(二十六)--多维数组 多维数组 多维数组存储表格数据 多维数组 多维数组可以看成以数组为元素的数组.可以有二维.三维.甚至更多维数组,但是实际开发中用的非常少.最多到二维数组(学习 ...

最新文章

  1. python手机版下载3.7.2-Python3.5.2
  2. 广告行业中常说的 CPC,CPM,CPD,CPT,CPA,CPS 等词的意思是什么?
  3. Anaconda中文版
  4. 【Python-ML】神经网络激励函数-Sigmoid
  5. 投票彰显电信合约机诺基亚Lumia 800C受热捧
  6. 端到端测试实践:Jenkins集成TestCafe
  7. ubuntu没有进入图形界面解决办法
  8. LeetCode 700 二叉搜索树中的搜索
  9. AutoWare 使用
  10. oracle开发的小技巧(原创)
  11. 怎样填充潘通颜色_怎样判定润滑脂,锂基脂的好坏?
  12. C++实现简易五子棋游戏
  13. 解决因cocosStudio发布的csb文件过大导致的加载游戏界面卡的问题
  14. 个性化推荐系统设计(4.1)——案例分析
  15. 微信互动营销有哪些方式?
  16. 微型计算机AL和AH区别,微型计算机的技术与应用.ppt
  17. 通达信指标公式编写常用函数(四)——EVERY、COUNT
  18. 高中开设计算机了吗,职业高中计算机专业开设的必要性
  19. csv文件查找指定内容
  20. Radiology:人工智能系统脑MRI鉴别诊断精度接近神经放射科医生水平

热门文章

  1. 痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU特性介绍(3)- 命名规则
  2. Nodejs创建简单的Bot
  3. 防火防盗竟防不了网络攻击智能摄像机的网络安全怎么办?
  4. Linux开关命令(shutdown,reboot,halt,init)
  5. 如何控制Yahoo! Slurp蜘蛛的抓取频度_国外博客资源站_百度空间
  6. 分区表学习三:分区表实际操作心得
  7. 程序员如何通过书籍学习编程?小心用错方法,不然可能事倍功半!
  8. Extjs 强大的WEB窗体开发库
  9. 可是来个拦路虎的scutzh
  10. 今天的你死那去了的飞秋