近来手上的项目快收尾了,天天工作就是写文档、画图、作报告。不写代码的日子还真不好受(人贱不能赢啊)。
晚上忽然看到书橱里躺着一本本厚实的书,有股其名的想看的冲动,实在是太久没看这些基础的书籍了,要是让我现在去面试,结果你懂的。
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类型.
分享到:
相关推荐
第2章 一切都是对象 2.1 用句柄操纵对象 2.2 必须创建所有对象 2.2.1 保存在什么地方 2.2.2 特殊情况:主类型 2.2.3 Java中的数组 2.3 绝对不要清除对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 新建数据类型:类 ...
《Java编程思想习题及答案》是一份针对Java编程学习者的宝贵资源,它包含了大量关于Java编程的习题和对应的解答。这份资料可能是从www.pigkrtv.com等网站转载而来,旨在帮助学习者深化对Java编程语言的理解,提高...
### 中文 Java编程思想(完整的中文简体第二版) #### 重要知识点概览 本教材由Bruce Eckel撰写,智慧东方工作室翻译,是一本全面深入介绍Java编程语言的经典之作。本书不仅适合Java初学者,也适合希望深入了解Java...
### JAVA2参考大全 第四版:Java的起源与演进 #### Java的诞生背景与动机 在探索Java的根源之前,我们先回顾一下计算机语言的发展脉络。B语言的出现催生了C语言,随后C语言的进化衍生出了C++,而今,C++正逐步被...
### 第二章:一切都是对象 本章深入探讨了 Java 中的对象和类的相关概念。 #### 2.1 一切都是对象(1) - 引用与对象 - **用引用操纵对象**:讲解如何通过引用访问和操作对象。 - **必须由你创建所有对象**:强调...
《疯狂Java讲义第二版》是一本深受程序员喜爱的Java编程教材,它的代码库涵盖了丰富的Java编程实践和设计模式应用。这本书深入浅出地讲解了Java语言的核心概念、语法以及面向对象编程思想,旨在帮助读者从初级到高级...
在本资源中,我们主要关注的是“Java语言程序设计(第二版)”一书的第三章课后习题答案,特别是那些涉及编程代码的问题。Java是一种广泛应用的面向对象的编程语言,以其平台无关性、安全性和高效性而受到赞誉。在...
java 面向对象前4章节回顾详细的ppt,自己看看吧,很不错哦
《Java经典编程50道》是一份集合了Java编程中具有代表性和挑战性的题目资源,包含完整的源码,旨在帮助开发者提升Java编程技能。通过学习和实践这些题目,开发者可以深入理解Java语言的核心特性和常见设计模式,...
为了使读者能够顺利地用Java实现遗传算法,书中会回顾Java编程的基础知识,包括数据类型、控制结构、类与对象、接口、异常处理、多线程等,确保读者具备必要的编程技能。 三、遗传算法的Java实现 书中将详细阐述...
《基于JAVA编程的坦克大战》是一款使用Java编程语言开发的经典射击游戏,其核心特性包括查看历史记录、单双人模式、背景音乐、地图更换、游戏难度调整以及详细的游戏说明。这款游戏中,玩家可以独自作战或者与朋友...
在学习Java编程基础课程之前,学生已学习过C语言编程基础,可以以此为切入点,让学生通过回顾C语言编程基础学习中代码的实现过程理解面向过程,然后通过类比和对比过程,让学生形象地认识面向对象。 通过类比认识...
Java以其“一次编写,到处运行”的跨平台特性,面向对象的编程范式和安全特性而著称。它的应用范围非常广泛,从小型的移动应用到大型的企业级应用都可以使用Java来开发。 2. Java技术的发展:提到“十年典藏版”...
在“JAVA 2 捷径教程 第二章 代码2”中,我们主要探讨的是Java编程语言的基础和进阶概念,尤其是与第二章相关的代码示例。本教程旨在帮助初学者快速掌握Java 2的核心知识,同时也适用于有一定经验的开发者进行回顾和...
【Java程序设计】类与对象是Java编程的核心概念,它们是面向对象编程的基础。类是对具有相似属性和行为的事物的抽象,而对象是类的实例,代表着具体存在的个体。 在【描述】中,该教案是为了2021年的高校教师资格证...
Java语言程序设计是计算机科学领域中的重要教材,其第八版为学生和开发者提供了全面的Java学习资源。本书涵盖了从基础语法到高级特性的广泛内容,旨在帮助读者掌握编写高效、可维护的Java程序的技能。课后答案部分是...
4.1 编程语言的几个发展阶段:回顾了编程语言的发展历程,包括机器语言、过程式语言、面向对象编程等。 4.2 类:深入讲解了类的声明、构造方法、方法重载、继承等面向对象的核心概念。 4.3 对象:阐述了对象的创建、...