- 浏览: 132675 次
- 性别:
- 来自: 北京
-
最新评论
转自:http://www-128.ibm.com/developerworks/cn/java/l-jpointer/index.html
Java对对象和基本的数据类型的处理是不一样的。和C语言一样,当把Java的基本数据类型(如int,char,double等)作为入口参数传给函数体的时候,传入的参数在函数体内部变成了局部变量,这个局部变量是输入参数的一个拷贝,所有的函数体内部的操作都是针对这个拷贝的操作,函数执行结束后,这个局部变量也就完成了它的使命,它影响不到作为输入参数的变量。这种方式的参数传递被称为"值传递"。而在Java中用对象的作为入口参数的传递则缺省为"引用传递",也就是说仅仅传递了对象的一个"引用",这个"引用"的概念同C语言中的指针引用是一样的。当函数体内部对输入变量改变时,实质上就是在对这个对象的直接操作。
此外,在Java中,除了在函数传值的时候是"引用传递",在任何用"="向对象变量赋值的时候都是"引用传递"。
理解:
C中传递参数有:值传递,或指针传递
C++中有:值传递,显式的指针传递,引用传递
Java中:对对象一般是引用传递
关于java中的clone:
在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。在Java语言中,用简单的赋值语句是不能满足这种需求的。要满足这种需求虽然有很多途径,但实现clone()方法是其中最简单,也是最高效的手段。
Java的所有类都默认继承java.lang.Object类,在java.lang.Object类中有一个方法clone()。JDK API的说明文档解释这个方法将返回Object对象的一个拷贝。要说明的有两点:一是拷贝对象返回的是一个新对象,而不是一个引用。二是拷贝对象与用new操作符返回的新对象的区别就是这个拷贝已经包含了一些原来对象的信息,而不是对象的初始信息。
发表评论
-
为什么连接safebrowsing-cache.google.com
2009-10-28 18:28 4444今天测试防火墙,看到被测主机会连接一个陌生ip,查了一下是go ... -
使用微软的工具生成证书
2009-07-28 13:32 2876一,使用微软的工具不采用私钥文件 1.制作根证书 make ... -
windows openssl 安装
2009-07-06 12:06 27711、下载perl并安装 2、下载openssl并解压 3、 ... -
ACM上安全相关的几个SIG
2009-03-10 10:31 1096今天正好找了一下: SIGSAC,这个是专门的安全相关的sac ... -
http meta设置的内容
2009-02-17 16:12 3847response.setHeader 是用来设置返回页面的头 ... -
网络安全笔试题目收集
2008-12-17 00:27 01、linux、unix、windows最近三大漏洞?2、用I ... -
网络安全产品
2008-12-16 22:27 1126IDS/IPS 启明:天阗 绿盟:冰之眼 东软:NetE ... -
html中的绝对和相对路径 zz
2008-12-16 15:34 1239如果你在引用文件时(如加入超链接,或者插入图片等),使用了错误 ... -
MyEclipse、Tomcat的一点使用经验
2008-12-16 15:30 1327我用的是MyEclipse6.5 1、编码 在projec ... -
信息安全相关标准的一些总结
2008-11-18 23:22 0ISO/IEC 11770主要是密钥管理方面的标准。 IS ... -
JavaScript的基础知识(一)
2008-11-16 16:01 726数据类型: number,string,object和boll ... -
让你的 Web1.0 看起来像 Web2.0
2008-11-16 15:35 800在别人的blog上看到这篇文章,感觉挺好的 1. 把 es ... -
普华永道调查显示:中国信息安全发展仍滞后
2008-11-05 14:52 960“亚洲国家在推动信息安全方面已卓有成效,印度正在赶 ... -
信息安全标准ISO27000
2008-11-05 10:16 6212那天去考绿盟,最后问到ISO27000标准的事情,想了半天,不 ... -
TCP/UDP 端口汇总
2008-11-02 11:38 4073下表汇总了本文“系统服务端口”部分的信息。此表按端口号(而不是 ... -
cvs
2008-10-29 15:44 0Eclipse中CVS版本管理 ... -
MAC地址 IPV6地址 IPV4地址
2008-10-28 23:11 8042MAC地址 MAC地址通常表示为12个16进制数,每2个1 ... -
中继器、集线器、网桥、交换机和路由器之间的简单区别
2008-10-28 23:03 1879中继器、集线器、网桥 ... -
阿尔卡特朗讯笔试题汇总
2008-10-24 14:47 3247-----以下内容均来自网上—————— 1. 自己定义数 ... -
Java和C++中的纯虚函数、虚函数
2008-10-17 18:19 3514纯虚函数和虚函数都是在讲C++的时候出现的,于是,就想在JAV ...
相关推荐
Java 中的基本类型和引用类型变量的区别 Java 中的基本类型和引用类型变量是两个不同的概念,它们在内存分配、变量赋值和函数传递等方面有着本质的区别。 基本类型是 Java 中的八种基本类型,包括 byte、short、...
NULL 博文链接:https://deony2jacob1314.iteye.com/blog/1845769
ava有四种引用类型,strongreference,softreference,weakreference,phantomreference。本篇文档主要的就是进阶的介绍和了解这四种引用类型的异同点,助于你对java的更好的学习理解
将带大家快速理解Java中弱引用,文章介绍的很详细,对大家学习Java很有帮助哦,有需要的可以参考借鉴。
java及C++中传值传递、引用传递和指针方式的理解.docx
十分钟理解Java中的弱引用编程开发技术共3页.pdf.zip
主要介绍了深入理解Java中的弱引用,本文讲解了强引用、弱引用、引用队列、四种引用、软引用、虚引用等内容,需要的朋友可以参考下
关于C语言指针和Java引用的思考 该资源主要讨论了C语言指针和Java引用...该资源主要讨论了C语言指针和Java引用的概念、实现、差异和应用场景,旨在帮助读者更好地理解这两种语言的内存管理机制和指针/引用的使用方法。
深入理解 Java 虚拟机笔记 Java 虚拟机(JVM)是 Java 语言的运行环境,它负责解释和执行 Java 字节码。下面是 Java 虚拟机相关的知识点: 虚拟机内存结构 Java 虚拟机的内存结构主要包括以下几个部分: * 方法...
作者以易于理解的方式深入揭示了java虚拟机的内部工作原理,深入理解这些内容,将对读者更快速地编写更高效的程序大有裨益! 本书共分20章,第1-4章解释了java虚拟机的体系结构,包括java栈、堆、方法区、执行...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
主要介绍了JAVA 虚引用的相关资料,帮助大家更好的理解和学习JAVA,感兴趣的朋友可以了解下
在Java中,有一组名词经常一起出现,它们是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然。我们来一起了解一下对象和对象引用之间的区别和联系。 1....
主要介绍了 JAVA 弱引用的相关资料,帮助大家更好的理解和学习java引用对象,感兴趣的朋友可以了解下
第2章概述Java虚拟机的整体架构,包括class文件格式、数据类型、原始类型、引用类型、运行时数据区、栈帧、浮点算法、异常等,这对理解本书后面的内容有重要帮助;第3章详述如何将Java语言编写的程序转换为Java...
本篇文章尝试从What、Why、How这三个角度来探索Java中的弱引用,理解Java中弱引用的定义、基本使用场景和使用方法。由于个人水平有限,叙述中难免存在不准确或是不清晰的地方,希望大家可以指出,谢谢大家:) 1....
Java中this与super的区别 this&super; 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。 Java关键字this只能用于方法的方法体内。当一个对象创建后, Java虚拟机(JVM)就...
主要介绍了JAVA 强引用的相关资料,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
堆栈(stack)是 Java 中的一种内存区域,用于存储基本类型的变量和对象的引用变量。堆(heap)是 Java 中的一种动态内存区域,用于存储由 new 创建的对象和数组。 堆栈(stack) 堆栈(stack)是 Java 中的一种...
第2章概览了Java虚拟机整体架构,包括class文件格式、数据类型、原始类型、引用类型、运行时数据区、栈帧、浮点算法、异常等,这对理解本书后面的内容有重要帮助。第3章详述如何将Java语言编写的程序转换为Java...