正在加载图片...
Thinking in Java 3Edition 但是你也可以动态地创建一个数组,把它当作参数传给hide() hide(new Weeble[]i new Weeble(), new Weeble()))i 在很多情况下,这能给你的编程带来便利。 表达式 演示了如何将一个 reference指向另一个数组对象。这么做跟使用其他 对象的 refernce没什么两样。现在a和d都指向堆中的同一个数组对 象 Arraysize.java的第二部分应征了 primitive数组的工作方式和对象 数组的几乎一摸一样。只是它能直接持有 primitive的值 primitive的容器 容器类只能持有 Object对象的 reference。而数组除了能持有 Objects的 reference之外,还可以直接持有 primitive。当然可以使 用诸如 Integer, Double之类的 wrapper类,把 primitive的值放到 容器中,但这样总有点怪怪的。此外, primitive数组的效率要比 wrapper类容器的高出许多。 当然,如果你使用 primitive的时候,还需要那种“能随需要自动扩展 的”容器类的灵活性,那就不能用数组了。你只能用容器来存储 primitive的 wrapper类。也许你会想,应该为每种 primitive都提供 个 Array List,但是遗憾的是Java没为你准备。2 返回一个数组 假设你写了一个方法,它返回的不是一个而是一组东西。在C和C++之 类的语言里,这件事就有些难办了。因为你不能返回一个数组,你只能返 回一个指向数组的指针。由于要处理“控制数组生命周期”之类的麻烦 事,这么做很容易会出错,最后导致内存泄漏。 Java采取了类似的解决方案,但是不同之处在于,它返回的“就是一个 数组”。与C++不同,你永远也不必为Java的数组操心—一只要你还 需要它,它就还在;一旦你用完了,垃圾回收器会帮你把它打扫干净。 2这就是C+明显比Ja强的地方了,因为它的 template关键词支持参数化类型( parameterized type) 第5页共106页 www.wgqqh.com/shhgs/tij.html emailshhgsasohu.comThinking in Java 3rd Edition 第 5 页 共 106 页 www.wgqqh.com/shhgs/tij.html email:shhgs@sohu.com 但是你也可以动态地创建一个数组,把它当作参数传给 hide( ): hide(new Weeble[] { new Weeble( ), new Weeble( ) }); 在很多情况下,这能给你的编程带来便利。 表达式: a = d; 演示了如何将一个 reference 指向另一个数组对象。这么做跟使用其他 对象的 refernce 没什么两样。现在 a 和 d 都指向堆中的同一个数组对 象。 ArraySize.java 的第二部分应征了 primitive 数组的工作方式和对象 数组的几乎一摸一样。只是它能直接持有 primitive 的值。 primitive 的容器 容器类只能持有 Object 对象的 reference。而数组除了能持有 Objects 的 reference 之外,还可以直接持有 primitive。当然可以使 用诸如 Integer,Double 之类的 wrapper 类,把 primitive 的值放到 容器中,但这样总有点怪怪的。此外,primitive 数组的效率要比 wrapper 类容器的高出许多。 当然,如果你使用 primitive 的时候,还需要那种“能随需要自动扩展 的”容器类的灵活性,那就不能用数组了。你只能用容器来存储 primitive 的 wrapper 类。也许你会想,应该为每种 primitive 都提供一 个 ArrayList,但是遗憾的是 Java 没为你准备。2 返回一个数组 假设你写了一个方法,它返回的不是一个而是一组东西。在 C 和 C++之 类的语言里,这件事就有些难办了。因为你不能返回一个数组,你只能返 回一个指向数组的指针。由于要处理“控制数组生命周期”之类的麻烦 事,这么做很容易会出错,最后导致内存泄漏。 Java 采取了类似的解决方案,但是不同之处在于,它返回的“就是一个 数组”。与 C++不同,你永远也不必为 Java 的数组操心——只要你还 需要它,它就还在;一旦你用完了,垃圾回收器会帮你把它打扫干净。 2这就是 C++明显比 Java 强的地方了,因为它的 template 关键词支持参数化类型(parameterized type)
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有