JAVA中几个易混淆关键词的正确理解

http://tech.ddvip.com   2006年11月22日    社区交流

本文详细介绍JAVA中几个易混淆关键词的正确理解

  我们在上面的程序中看到了一句没有用的代码,就是在MM类里的System.out.println("xxx");。没有人关心基类MM是怎么看帅哥,因为它只是一个模版,所以我们干脆就不要这句代码,而且我们连{}也不要了,直接改写这个方法为publicabstractvoidtoSeeGG();,那么这个方法称做抽象方法(abstractmethod)。基类MM对我们来说没有实现的必要,于是我们把classMM{...}改写为abstractclassMM{...},那么这个类叫做抽象类(abstractclass)。我们不禁要问,那么抽象类能不能含有非抽象的函数呢。答曰:可以。但是这在实际中没有什么用处,唯一用到的地方是:1,main()函数,用来测试你的类;2,考试中。那么我们还要问,子类可以不覆写父类中抽象方法行不行?答曰:如果子类也是abstract,那么可以,否则不行。

  比抽象类做的更彻底的是接口(注意,这里的接口是JAVA中真正意义的接口,非上文一开始的接口,也既行为)。接口被设计出来的目的就是要让你继承的。等………,这是第一章,只让大家知道一些概念就行了,上面我们说的太多了。

  BRUCE是个彻底的NN大师,我们接下来看到他把JAVA的低效率问题说的是那么的理所当然,以至于我们看完后情不自禁也要说:

  恩,JAVA就应该这样做,让C++见鬼去吧。面向对象,于是所有东东都是对象,有对象便有对象的产生和毁灭。程序运行的时候,对象产生在内存中。内存分配有三种策略,分别是静态的,栈式的(stack),和堆式的(heap)。C++使用前两种策略,JAVA仅使用后者。两者有什么区别呢?喜欢寻根究底的朋友请参考本站JSP/JAVA分坛的“栈存储(stack)和堆存储(heap)的区别”,我们只要记住,后者在内存中的寻址要花更长的时间,因此JAVA的效率低。但是JAVA提供了根据heap特点产生的垃圾回收机制。垃圾回收机制完成这样的任务,当你的对象不在使用的时候它会自动察觉并消灭。你不用再担心发生内存泄露了。而这是每个C++程序员最头疼的事情。所以,你选择吧,是要安全还是要效率。

作者:godyin    责编:豆豆技术应用

正在加载评论...