精选文章 别名机制

别名机制

作者:y_y__d_d 时间: 2019-11-07 10:49:19
y_y__d_d 2019-11-07 10:49:19

将对象的引用进行赋值操作 

package chap3;
//展示别名机制
public class Ex2 {
    float num;
}
 class Test{
    public static void main(String[] args) { //将e1和e2绑定到了相同的对象
        Ex2 e1 = new Ex2();
        Ex2 e2 = new Ex2();
        e1.num = 12.0f;
        e2.num = 24.0f;
        System.out.println("将e1和e2绑定到了相同的对象!");
        System.out.println("e1.num = " + e1.num);
        e1 = e2;
        System.out.println("e1.num = " + e1.num);
        e1.num = 55;
        System.out.println("e1.num = " + e1.num
                            + "\n" + "e2.num = " + e2.num);
//        System.out.println("避免将e1和e2绑定到了相同的对象!");
//        e1.num = e2.num;
//        System.out.println("e1.num = " + e1.num
//                           + "\n" + "e2.num = " + e2.num);
//        e1.num = 13;
//        System.out.println("e1.num = " + e1.num+ "\n" + "e2.num = " + e2.num);

    }
}

别名机制1

将e1和e2绑定到了相同的对象,简单理解就是e1,e2这两个引用指向了同一块内容(e1.num)。 

方法调用中的别名机制

 

package chap3;
//方法调用中的别名问题
class Another{
    float m;
}
public class Test3 {
    static void func(Another x){
        x.m = 12.0f;
    }

    public static void main(String[] args) {
        Another a = new Another();
        a.m = 99.0f;
        System.out.println("调用方法前:" + a.m);
        func(a);
        System.out.println("调用方法后:" + a.m);

    }
}

别名机制2

func()方法中的实参是一个引用,通过传递这个引用,来改变引用的指向的内容。 原本引用a指向的是99.0,调用func()方法后,该引用指向了12.0.s

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:理解golang中关键字-chan&select

下一篇:C#封装成DLL,并在C#中调用

您可能感兴趣

  • 51单片机硬件基础知识

    一、去偶电容的应用 图1 USB接口电路和供电电路 上图的左图中,F1为保险丝 ,C16为470uF电容,C19为100uF电容,所起的作用一样,C10为0.1uF电容,作用与那两个电容不同。 容值比较大的电容,起到两个作用。第一个作用是缓冲作用,第二个作用是稳定作用。有了这个电容,电压和电流就会很稳定,不会产生大的波动。 0.1uF的电容,用来滤除高频信号干扰。 二、三极管在数字电路中的应...

  • SIP语音环境中十大经典问题及解决办法

    在VOIP的环境中,特别是基于SIP通信的环境中,我们经常会遇到一些非常常见的问题,例如,单通,30秒就断线,注册问题,回声等。这些问题事实上都有非常直接的排查方式和解决办法,用户可以按照一定的排查方式,工具非常高效地解决这些问题。但是,因为读者技术水平参差不齐,网络上的很多技术也不完整。笔者今天系统归纳了这些问题。根据一些用户的使用环境和用户经常遇到一些问题,我们列举了以下十个在SIP呼叫...

  • oracle 裸磁盘扩容

    云服务器存储扩容详解 2020-01-20阅读 6640 环境说明 Linux操作系统:CentOS Linux release 7.6.1810 (Core) 平台环境:腾讯云CVM,CBS 本教程相关视频教程:腾讯云大学-云服务器存储扩容 1. 存储扩容概述 随着业务的发展,业务数据不停的增长,原有的磁盘空间可能会出现磁盘空间不够用的情况,因此,需要对磁盘空间进行扩容,以满足业务数据增长...

  • HIDL详解-Android10.0 HwBinder通信原理(二)

    摘要:本节主要来讲解Android10.0 HIDL相关知识 阅读本文大约需要花费18分钟。 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! [Android取经之路] 的源码都基于Android-Q(10.0) 进行分析 [Android取经之路] 系列文章: 《系统启动篇》 Android系统架构 Android是怎...

  • SpringMVC框架的入门学习01

    SpringMVC的基本概念 关于三层架构和MVC 三层架构 我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S架构的开发。那么在 B/S架构中,系统标准的三层架构包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用的非常多,所以很多案例也都是基于三层架构设计的。...

  • kubespray部署k8s version 1.0

    一、部署原理 基于vagrant和virtualbox,通过kubespray项目,控制ansible,部署高可用的k8s集群。 二、部署环境 1.部署拓扑 2.部署软硬件 硬件: 物理机 CPU:Double CPU,14 core,2 threads per core,CPU Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz 内存:64G 软件: Cent...

  • .NET Core:通过Web API进行微服务交互

    目录 介绍 命名协议 MicroCommerce应用程序结构 MicroCommerce应用开发 1.接口项目,微服务接口和模型类 2. ProductCatalog项目 3. ShoppingCart项目 4. ActivityLogger项目 5. WebUI项目,用户界面 6.关于通用功能的几句话 应用测试 结论 缺点 下载源代码26.3 KB 介绍 几乎所有在.NET Core中使用...

  • cocos2d 之lua加密

    加密方式 lua 代码加密方式很很多种,这里只讲最简单的一种,就是把代码编译成二进制字节码。lua 是一门脚本语言,不需要经过编译就可以使用 lua 解释器来执行;但我们也可以把 lua 代码事先编译成二进制文件,这样就达到了加密的方式。 使用 lua 编译器 最简单也最直接的方式就是使用 lua 编译器来编译 lua 代码,编译的方式很简单,打开命令行,输入下面的命令 lucac -o o...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。