内存:
栈:栈空间是系统分配的用于存放临时数据的地方,栈是一块有序排列的空间,其优点是读取速度快,缺点是究竟小(win32系统的栈空间是2M)
堆:堆空间是不连续的,由系统从物理内存与虚拟内存中提取,并拼装而成的,堆内存可以看做是金字塔,其结构有点像二叉堆(和二叉树差不多)堆内存很大,但速度相对栈来说要慢一些
除了以上两大内存区外,在编程专业用语里还有一些专用的内存分区。
对于举例我觉得没必要。我回答问题一般很少写代码,写也是简单的举例,因为我觉得代码是靠敲的,不是靠看的。编程要学的不是别人写个代码给你,而是告诉你编程的思想,想看别人的代码多了去了。java内置类库就够你看的。还要必要去让别人给你写一个?
理解对象的定义,理解构造函数是建立一个对象的必经过程,就像一个人出生之前必定要在母体10月怀胎一样。类看做是房子,那么构造函数就是打地基。没有地基房子盖不起来。构造函数是骨架,是初始化。
继承的概念就是我中有你。觉得不好理解就这么想,假如老虎继承了猫,那么你就想着老虎身体里就有一只猫。猫有的老虎都有,猫没有的老虎也可以有。
静态区(或叫全局变量区)一般用于存放固定的共享数据
常量区(文字常量区)用于存放固定的不可变量的数据,(并不是final修饰的)比如"abcdef"一个不可变量的字符串就在此区
代码区,用于存放函数体类定义等的二进制代码,此区不做运算,只是将数据转换后存放,由系统调用进栈后运算。
内存分配大概就这样,其中不一定都是java中的叫法,但所有计算机语法通用,无论是C# C++ java 都有这些分区,也有人叫静态常量区合称的
|