Java的参数传递

Java作为一种强大的编程语言被广泛的应用为服务器编程与手机应用编程上。

学习的过程中,我想绝大多数人都对Java的函数参数传递产生过疑问。那么它究竟是怎么传递的参数呢?为什么有时候是值传递,有时候就成了引用传递呢?

许许多多人说,Java语言简单的主要因素就是去掉了CPP中的指针,但是这句话一点都不正确,Java中不是没有指针,而是Java故意隐藏了指针,让你看不到指针,也就意识不到你是在操作指针,因此,不少人在这里栽过跟头。

Java的指针究竟在哪里呢?

其实,我们所认知的Java程序他的基础就是指针,所有程序中的类实例都是以指针的形式存在的。如何理解这句话呢?

在解释真正的运行原理之前,我们必须记住这样一句话:“数据类型是数据存储空间与操作方法组成的集合。”,有了以上前提,我们就可以如此形象的理解Java程序的运行过程:

Java程序运行过程中,在计算机中的存储空间是动态管理的,我们在语言中操作的变量其实只是一个名字,这个名字并不存储任何东西。在程序运行过程中,Java的变量名字会被映射到系统给他开辟的存储空间之中,我们对这个变量所做的所有操作,最后都会指向名字映射的存储空间,进而对值进行操作。Java语言中所有的简单类型都是如此操作的。系统在操作变量的过程中,直接将操作指向Java的存储空间中的数据。但是Java中不仅仅有简单数据类型,关键是他有第三方数据类型,自定义的类,这种类型是无限多的。因此他在简单类型的基础上由包装了一层,在Java程序中,类变量的名字直接指向的空间实际上并不是真实的类的数据,而是类的数据的指针。也就是说是类的指针。这样一来,Java的所有行为就能够轻松解释了。

Java在运行过程中调用函数,进行参数传递,只是简单的遵守着值传递的过程,简单类型,他就讲变量内的内容传递过去了,而自定义的类呢?它其实是将类的指针传递过去了。在被调用的函数中规定的类型名字实际上是向子程序指明了传入数据的操作方式,简单类型让子程序明白了只需要一次映射就可以修改值了,而复杂的类类型则让子程序明白了,传进来的数据只是一个指针,需要二次映射才能够访问数据。而这一切都是藏在幕后,不会让你发现的。

现在你应该不会在对Java程序的参数传递过程中出现的函数作用域问题再感到困惑了吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值