2014年9月22日
摘要: 关于Java内存分配,很多问题都模模糊糊,不能全面贯通理解。今查阅资料,欲求深入挖掘,彻底理清java内存分配脉络,只因水平有限,没达到预期效果,仅以此文对所研究到之处作以记录,为以后学习提供参考,避免重头再来。一、Java内存分配1、Java有几种存储区域?* 寄存器-- 在CPU内部,开发人员不... 阅读全文
posted @ 2014-09-22 22:35 zmlctt 阅读(556) 评论(0) 推荐(0) 编辑
摘要: 在多任务操作系统中的每一个进程都运行在一个属于它自己的内存沙盘中。这个沙盘就是虚拟地址空间(virtual address space),在32位模式下它总是一个4GB的内存地址块。这些虚拟地址通过页表(page table)映射到物理内存,页表由操作系统维护并被处理器引用。每一个进程拥有一套属于它... 阅读全文
posted @ 2014-09-22 22:34 zmlctt 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 今天面试问了一个栈大小问题,问过两次内存的结构问题,都没有答好,这次要弄清楚才行。栈大小是有默认值的,如果申请的临时变量太大的话就会超过栈大小,造成栈溢出。编译期限制栈大小,和系统限制栈深度根本是两回事。系统限制栈深是限制进程主线程的栈深,限制的是整个函数调用链的最大栈深,这个栈深是函数调用链上各个... 阅读全文
posted @ 2014-09-22 22:31 zmlctt 阅读(25843) 评论(3) 推荐(1) 编辑
摘要: 1、内联函数在编译时展开,而宏在预编译时展开2、在编译的时候,内联函数直接被嵌入到目标代码中去,而宏只是一个简单的文本替换。3、内联函数可以进行诸如类型安全检查、语句是否正确等编译功能,宏不具有这样的功能。4、宏不是函数,而inline是函数5、宏在定义时要小心处理宏参数,一般用括号括起来,否则容易... 阅读全文
posted @ 2014-09-22 21:49 zmlctt 阅读(5001) 评论(0) 推荐(0) 编辑