读书人

回溯《JAVA编程思想》第四版 第二章 一

发布时间: 2012-09-21 15:47:26 作者: rapoo

回顾《JAVA编程思想》第四版 第二章 一切事物皆对象

????? 近来手上的项目快收尾了,天天工作就是写文档、画图、作报告。不写代码的日子还真不好受(人贱不能赢啊)。
? ? ? 晚上忽然看到书橱里躺着一本本厚实的书,有股其名的想看的冲动,实在是太久没看这些基础的书籍了,要是让我现在去面试,结果你懂的。
????? JAVA/C++都是混合型面向对象语言,相对C++的混合程度,JAVA更加抽象,因为C++还有向后兼容C的特点。因此JAVA较C++更易于学习与接受,所以当时我果断学习了JAVA,从此变成JAVA挨踢人员。
? ? ? 要学习好JAVA语言,必须要懂得面向对象,要懂得把思想转换到面向对象的世界中。一切事物皆对象。你可以用对象的概念抽象出现实世界的实体、实体自身演变的过程、实体间的关系、实体交互的过程等等。即物体可以被抽象成JAVA中的对象,过程也可以被抽象。对象内部也有对象,对象与对象之间的联系也可以是对象。没错,对象无处不在,能够最大限度的用对象描绘出真实世界的场景,且可以保证优秀的逻辑性,方便程序处理。不知道你做到了没有,反正我是还没有做到。
??? 好,棒子,套子可以抽象成对象,棒子的活塞运动也可以抽象成对象。那JAVA是怎么存储这些对象的呢?
??? 要说编程语言和计算机交互,那最基本的就是编程语言如何操作内存。
??? 首先说说计算机上有五种存储区域,

???? ??? 寄存器。它是存在于CPU中,可以说是CPU访问最快的区域。但是其数量极小,所以寄存器是按需分配,对于JAVA语言,你不能直接控制它的大小。但C/C++允许您向编译器建议寄存器的大小。??? 堆栈。位于RAM中,通过堆栈指针可以直接控制CPU,速度仅次于寄存器。堆栈指针向下移,表示分配内存,向上移表示释放内存。JAVA系统创建程序时,必须知道各个变量或类的生命周期,以便上下移动堆栈指针。??? 堆。也位于RAM中,用于存放所有的JAVA对象。堆与栈的区别,即编译器不需要知道存储在里面的数据存活多长时间。虽然此分配方式加大了JAVA的灵活性,但对堆中的存储分配和清理更耗费了时间。??? 常量存储。其直接存放于代码中,它们永远不会被改变。??? 非RAM存储。也就是数据存放于程序之外的介质中,即使程序不运行了,其数据还在。两种例子就是持久化对象就是流对象。


? ? ? JAVA声明了一个变量,即把它当作对象处理。但不直接存储对象,JAVA对象还存储了一个对象引用,即放在了栈中,上面说到的第2点,即可以和系统交互控制内存;不同的是,对于JAVA基本类型,如char,boolean,int,long等其存储方式也是栈。对于对象的处理,JAVA有一个垃圾处理机制,程序员并不用过多地关心内存泄漏的问题,不过也可以手动操纵垃圾处理机制。

?

????? 注意:存在栈中的数据有八种基本数据类型+reference类型+returnAddress类型.

读书人网 >编程

热点推荐