Java - 别名机制

原创 2015年07月07日 17:38:10

对于赋值操作”=”, 基本数据类型存储了实际的值,
而”将一个对象赋值给另一个对象”, 是将引用从一个地方复制到另一个地方.
对象的这种现象就是“别名现象”.
示例:

//: Main.java


class FloatType {
    float f;
}

/**
 * 别名机制示例
 */
public class Main {
    public static void main(String[] args) {
        FloatType f1 = new FloatType();
        FloatType f2 = new FloatType();
        f1.f = 4; f2.f = 8;
        System.out.println("f1.f = " + f1.f + ", f2.f = " + f2.f);
        f1.f = 16; f2.f = 32;
        System.out.println("f1.f = " + f1.f + ", f2.f = " + f2.f);
        f1 = f2; // 赋值操作
        f2.f = 64; // 别名现象, f1.f的值也被修改
        System.out.println("f1.f = " + f1.f + ", f2.f = " + f2.f);
    }
}
/**
 * Output:
 * f1.f = 4.0, f2.f = 8.0
 * f1.f = 16.0, f2.f = 32.0
 * f1.f = 64.0, f2.f = 64.0
 *///:~

方法调用中, 将一个对象作为参数传递给方法, 其实传递引用, 也会产生别名现象.

//: Main.java


class FloatType {
    float f;
}

/**
 * 方法调用别名机制
 */
public class Main {
    static void change(FloatType of) {
        of.f = 32;
    }

    public static void main(String[] args) {
        FloatType of = new FloatType();
        of.f = 4;
        System.out.println("of.f = " + of.f);
        change(of); // 方法调用的引用传递
        System.out.println("of.f = " + of.f);
    }
}
/**
 * Output:
 * of.f = 4.0
 * of.f = 32.0
 *///:~

娱乐

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Java中相同类名不同package名的类的引用

现在有两个类,它们名称相同,但所在的package不同。其结构如下图所示:两个class A的代码如下:package pka; public class A { public void pri...

Java类包及import关键字

在Java中,提供一种工具用于管理类,

java中的别名机制

突然看到一个很奇怪的题目:说是要写一个类来展示别名机制,一下子被闷住了,啥是别名机制呢? 然来如此啊:----------------------          什么是别名?用...

java中的别名现象

别名现象:是java操作对象的一种基本方式,当对引用型变量进行赋值操作时,可能出现别名现象,两个引用变量共同指向同一个对象,当一个引用对对象进行改变时,另一个引用变量的对象值也跟着改变...

java中的别名机制

陡然看到一个很独到的题目:说是要写一个类来揭示别名机制,一下子被闷住了,啥是别名机制呢? 然来如此啊:---------------------- 什么是别名?用个容易的例子解释 pub...

java 中的别名机制

将一个对象赋值给另一个对象,实际是将引用从一个地方复制到另一个地方。这意味着假若对对象使用c=d,那么c和d都指向原本只有d指向的那个对象,下面这个例子将向大家阐释这点。       package...

JAVA类,别名问题

/*   *    * @author caryt   *   */ class test1{ String thh="caryt1"; } /**  *   * @autho...
  • caryt
  • caryt
  • 2013年06月27日 09:59
  • 899

Java笔记---别名现象

一、前言 在Java中,我们经常会使用到赋值操作符"=",但是一般都是直接使用,而没有去注意这个操作符带来的一些陷阱。小菜也是最近看了《Java编程思想第四版》才注意到这一点,也就是博文标题所说的...

Mybatis 内置 Java 类型别名与 typeHandlers

There are many built-in type aliases for common Java types. They are all case insensitive, note the ...
  • wz5891
  • wz5891
  • 2016年10月04日 00:41
  • 2749

模拟扔硬币的结果

这里只模拟抛一枚硬币,即只有两种结果:正面(1)和反面(0)。 package jing.three; import java.util.Random; /**  * 模拟扔硬币的结果  * ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java - 别名机制
举报原因:
原因补充:

(最多只允许输入30个字)