JAVA程序元素在内存中的分配
2016-03-24 13:30
232 查看
由于有大学期间的C语言学习经历我对JAVA的基本语法相对来说比较熟悉。最开始的几个星期我一直在努力理解JAVA语言运做方式和熟悉语法,分别包括JVM虚拟机的运做原理、JAVA程序元素在内存中的分配、JAVA是如何实现跨平台的可移植能力、及其JAVA为何被称为一种健壮的语言、APPLET小程序的概念;许多语言都通有的基本型别、流程控制语句、基本类库函数等等。到后来逐步了解了JAVA语言的一些特性比如JAVA对指针的处理、数组的特性、特有的接口功能(实现了C++的多继承功能,同时摈弃了相应的负面效果)、完善的异常处理机制、以及JAVA对流访问的实现方式、简化的网络编程、显式的线程定义等等。
其中熟悉语法的过程相当漫长,就是到现在我也不能说自己已经充分掌握了其中的全部,因为JAVA提供的标准类库实在是个庞大的集合,以至于常用的类库只占其中的很小比例。
下面我将对不同的学习单元做较具体的说明。
首先应该是对OOP的理解,在充分掌握OOP语言之前只能给出相对笼统的描述,如同管中窥豹只见一斑,OOP(OBJECT ORIENTED PROGRAMMING)面向对象的程序设计,字面上看是把对象作为主体,对象可理解为抽象的物体,这里先谈谈我对过程化程序语言的理解,许多资料描述PPL(PROCEDURAL PROGRAMMING LANGUAGE)用了一个“HOW”
,意思是说PPL描述了如何完成动作,当然完成动作的物体可以称之为OBJECT,所以我理解为PPL语言是在描述一个物体如何去做一个或多个动作执行程序任务,如果需要完成多个动作就需要多段代码,如果不同物体完成相同的任务也要重新写代码,这就造成浪费,另外,如果PPL中的部分代码需要修改,差不多肯定要影响到后面的部分,这造成维护的困难,由于PPL代码的功能和代码本身是密不可分的,所以隐藏重要代码成为不可能(为什么要藏呢?比如说你写了一个商用类库的第1个版本并且发放出去了,后来你发现前一个版本里有个函数有点不妥当需要修改或者干脆删掉,这时候问题来了,由于你的代码对用户是完全透明的,有的用户已经把你要修改的函数应用到自己的程序中去了,如果你改变了原来的代码,用户的代码也随即无法工作,这就是不使用实现隐藏的灾难,相信你的老板面临由你一手造成的两难境地时不会对你手软~)。
其中熟悉语法的过程相当漫长,就是到现在我也不能说自己已经充分掌握了其中的全部,因为JAVA提供的标准类库实在是个庞大的集合,以至于常用的类库只占其中的很小比例。
下面我将对不同的学习单元做较具体的说明。
首先应该是对OOP的理解,在充分掌握OOP语言之前只能给出相对笼统的描述,如同管中窥豹只见一斑,OOP(OBJECT ORIENTED PROGRAMMING)面向对象的程序设计,字面上看是把对象作为主体,对象可理解为抽象的物体,这里先谈谈我对过程化程序语言的理解,许多资料描述PPL(PROCEDURAL PROGRAMMING LANGUAGE)用了一个“HOW”
,意思是说PPL描述了如何完成动作,当然完成动作的物体可以称之为OBJECT,所以我理解为PPL语言是在描述一个物体如何去做一个或多个动作执行程序任务,如果需要完成多个动作就需要多段代码,如果不同物体完成相同的任务也要重新写代码,这就造成浪费,另外,如果PPL中的部分代码需要修改,差不多肯定要影响到后面的部分,这造成维护的困难,由于PPL代码的功能和代码本身是密不可分的,所以隐藏重要代码成为不可能(为什么要藏呢?比如说你写了一个商用类库的第1个版本并且发放出去了,后来你发现前一个版本里有个函数有点不妥当需要修改或者干脆删掉,这时候问题来了,由于你的代码对用户是完全透明的,有的用户已经把你要修改的函数应用到自己的程序中去了,如果你改变了原来的代码,用户的代码也随即无法工作,这就是不使用实现隐藏的灾难,相信你的老板面临由你一手造成的两难境地时不会对你手软~)。
相关文章推荐
- java反射机制方法的获取与调用
- java的一些发展前景!
- JHipster简介
- java的一些学习方案!
- java 学习资料
- Java核心知识点-Java多线程
- Spring4 版 eventbus 事件通信 事件驱动 介绍
- spark mllib 应用程序开发及提交到spark集群运行--入门
- 面向对象的java编程及面向对象的特征
- Struts2介绍及教程
- MyEclipse has detected that less than 5% of the 341MB of PS Old Gen(Heap memory) space remains.
- Java学习之HashMap和Hashtable的区别
- Spring Cron Expression
- Java学习之Iterator(迭代器)的一般用法
- myeclipse 注册机
- (转)浅析Java中的final关键字
- Java三大框架开发思路
- 【深入Struts2】获取ServletAPI的三种方式
- java--Struts2入门示例教程(五)
- eclispe中的maven项目使用spring报错