- 浏览: 137189 次
- 性别:
- 来自: 北京
-
最新评论
转自: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 4491今天测试防火墙,看到被测主机会连接一个陌生ip,查了一下是go ... -
使用微软的工具生成证书
2009-07-28 13:32 2954一,使用微软的工具不采用私钥文件 1.制作根证书 make ... -
windows openssl 安装
2009-07-06 12:06 28461、下载perl并安装 2、下载openssl并解压 3、 ... -
ACM上安全相关的几个SIG
2009-03-10 10:31 1172今天正好找了一下: SIGSAC,这个是专门的安全相关的sac ... -
http meta设置的内容
2009-02-17 16:12 3891response.setHeader 是用来设置返回页面的头 ... -
网络安全笔试题目收集
2008-12-17 00:27 01、linux、unix、windows最近三大漏洞?2、用I ... -
网络安全产品
2008-12-16 22:27 1190IDS/IPS 启明:天阗 绿盟:冰之眼 东软:NetE ... -
html中的绝对和相对路径 zz
2008-12-16 15:34 1280如果你在引用文件时(如加入超链接,或者插入图片等),使用了错误 ... -
MyEclipse、Tomcat的一点使用经验
2008-12-16 15:30 1367我用的是MyEclipse6.5 1、编码 在projec ... -
信息安全相关标准的一些总结
2008-11-18 23:22 0ISO/IEC 11770主要是密钥管理方面的标准。 IS ... -
JavaScript的基础知识(一)
2008-11-16 16:01 762数据类型: number,string,object和boll ... -
让你的 Web1.0 看起来像 Web2.0
2008-11-16 15:35 844在别人的blog上看到这篇文章,感觉挺好的 1. 把 es ... -
普华永道调查显示:中国信息安全发展仍滞后
2008-11-05 14:52 1024“亚洲国家在推动信息安全方面已卓有成效,印度正在赶 ... -
信息安全标准ISO27000
2008-11-05 10:16 6291那天去考绿盟,最后问到ISO27000标准的事情,想了半天,不 ... -
TCP/UDP 端口汇总
2008-11-02 11:38 4129下表汇总了本文“系统服务端口”部分的信息。此表按端口号(而不是 ... -
cvs
2008-10-29 15:44 0Eclipse中CVS版本管理 ... -
MAC地址 IPV6地址 IPV4地址
2008-10-28 23:11 8144MAC地址 MAC地址通常表示为12个16进制数,每2个1 ... -
中继器、集线器、网桥、交换机和路由器之间的简单区别
2008-10-28 23:03 1939中继器、集线器、网桥 ... -
阿尔卡特朗讯笔试题汇总
2008-10-24 14:47 3331-----以下内容均来自网上—————— 1. 自己定义数 ... -
Java和C++中的纯虚函数、虚函数
2008-10-17 18:19 3581纯虚函数和虚函数都是在讲C++的时候出现的,于是,就想在JAV ...
相关推荐
在Java编程语言中,对象和引用的理解是至关重要的,它们构成了Java程序的基础。本文将深入探讨Java中的对象、引用以及它们之间的关系,并结合值传递的概念进行解析。 首先,我们需要理解什么是Java对象。在Java中,...
Java 中的基本类型和引用类型变量的区别 Java 中的基本类型和引用类型变量是两个不同的概念,它们在内存分配、变量赋值和函数传递等方面有着本质的区别。 基本类型是 Java 中的八种基本类型,包括 byte、short、...
在Java编程中,深入理解对象与引用的概念对于掌握面向对象编程至关重要。本文将从以下几个方面详细解析对象与引用的基本概念及其相互间的关系。 #### 一、对象与引用的基础概念 **对象**: 在Java中,对象是类的一...
Java中的引用问题主要涉及到对象作为参数传递时的行为。在Java中,有两类数据类型:基本类型(如int、char)和引用类型(如类实例、数组)。对于基本类型,Java采用值传递的方式,而对于引用类型,则是传递引用的...
Java中的四种引用类型是Java内存管理的重要组成部分,它们分别是强引用(StrongReference)、软引用(SoftReference)、弱引用(WeakReference)和虚引用(PhantomReference)。每种引用类型具有不同的特点和用途,...
在Java中,对象的引用扮演着类似于其他编程语言(如C/C++)中指针的角色,但是Java的引用比传统的指针更加安全且易于管理。这是因为Java的设计者们刻意避免了一些容易引发错误的操作,比如不允许对引用进行算术操作...
在Java中,对象的引用方式对于内存管理和对象生命周期的控制至关重要。从JDK 1.2版本开始,Java引入了四种不同级别的引用:强引用(Strong Reference)、软...希望本文能够为您提供在Java引用类型的使用上清晰的指导
### Java 常见的四种引用详解 #### 引言 在Java中,为了更好地管理对象的生命周期,从JDK 1.2开始引入了四种不同级别的引用类型:强引用、软引用、...正确理解和使用这些引用类型对于优化Java应用程序的性能至关重要。
在Java编程语言中,函数调用时的参数传递方式有两种:传值(Passing by Value)和传引用(Passing by Reference)。虽然Java官方文档中并未明确指出有传引用这一概念,但在实际操作中,Java的行为类似于传引用,尤其...
在Java编程语言中,方法引用是一种特殊的语法构造,它允许我们直接引用已有方法,而无需在lambda表达式中重新定义。方法引用的概念是随着Java 8的发布引入的,它是函数式编程特性的一部分,旨在简化代码并提高可读性...
为了更好地理解和控制对象的生命周期,Java提供了四种不同类型的引用:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)以及虚引用(Phantom Reference)。每种引用都有其特定的...
Java中的引用和C++中的引用在概念和使用上有显著的不同,这是由于两者设计哲学和语言特性的差异。首先,我们要明确一点,Java的引用更接近于C++的指针,而C++的引用则是一种完全不同的机制。 在Java中,引用可以...
在Java编程语言中,引用类型是理解内存管理的关键概念之一。强引用、弱引用、软引用和虚引用是四种不同的引用强度,它们在垃圾回收机制中扮演着不同的角色。了解这些引用类型对于优化内存使用、防止内存泄漏以及合理...
### Java中的指针概念与引用解析 #### 一、引言 Java作为一种广泛使用的面向对象编程语言,在设计之初就摒弃了C/C++中的指针概念。然而,尽管Java没有传统意义上的指针,但仍然存在一种类似的概念——引用。本文将...
### Java中对象与对象引用的区别 #### 基础概念 在Java编程语言中,对象与对象引用是非常基础且重要的概念。理解它们之间的区别对于掌握Java面向对象编程至关重要。 #### 对象与引用定义 - **对象**:在Java中,...
本文将深入探讨Java中的参数传递机制,并通过具体的代码示例和内存分配图解来帮助读者理解按值传递和按引用传递的概念。 #### 二、按值传递的概念与特点 按值传递是指在函数或方法调用过程中,传递给函数或方法的...
Java中的弱引用是一种特殊的引用类型,它在内存管理中扮演着重要的角色,特别是在避免内存泄漏和优化资源使用方面。本文将从三个方面详细解释弱引用...理解和合理使用弱引用对于编写高效、健壮的Java应用程序至关重要。
### Java中对象创建、初始化与引用详解 #### 一、Java对象、引用及创建过程 在Java中,对象是程序的基本单位,它包含了属性(成员变量)和行为(方法)。对象是由类创建出来的实例,而类则是一组具有相同属性和...
在Java编程语言中,除了基本数据类型如int、double等之外,还提供了引用数据类型,它们是构建复杂数据结构和对象的...引用数据类型的深入理解是Java程序员必须掌握的基础知识,有助于编写高质量、可维护和高效的代码。