看这个java程序

[复制链接]
查看11 | 回复5 | 2012-2-2 16:22:14 | 显示全部楼层 |阅读模式
午夜java男说的对,java 中引用的概念一直贯穿他的核心,在java中实例化的类我们称作对象或是对象实例,虽说是实例但是用起来却不简单,因为我们无法直接操作他的值,而要通过“引用”也就是我们声明的变量(或是字段)来操作具体的实例。而这个引用不是一个抽象的概念他是实实在在的值存于内存中(虚拟机栈中)。在现实的操作中其实是对这些栈中的引用值得使用。Collection等的集合记录的值也不例外。 c.add(new Name("f1","l1"));中的new Name("f1","l1")对象我们记做s1 . c.remove(new Name("f1","l1"))中的new Name("f1","l1")对象我im记做s2此时S...
回复

使用道具 举报

千问 | 2012-2-2 16:22:14 | 显示全部楼层
你这里都是两个新的对象。c.add(new Name("f1","l1"));c.remove(new Name("f1","l1"))你只是分别实例化了两个不同但是属性相同的对象而已,所以去不掉的,你可以试试看Name name1 = new Name("f1","l1");c.add(name1);c.remove(name1);看看可不可...
回复

使用道具 举报

千问 | 2012-2-2 16:22:14 | 显示全部楼层
你好,我运行了你的程序,发现你说的(new Name("f1","l1"))已经去掉...
回复

使用道具 举报

千问 | 2012-2-2 16:22:14 | 显示全部楼层
一看就知道不错,对象和对象的值,以及引用的核心机制(你可以想象成对象以及值存在于内存中的那种模式),这些都是Java处理各种变量和值传递的麻烦地方啊,特别是在各种List或者对象之间的来回传递。楼主例子不错!...
回复

使用道具 举报

千问 | 2012-2-2 16:22:14 | 显示全部楼层
根据上面几位,我就补充一点点,弄懂堆栈问题 就明白了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行