程序员学习笔记---程序内存机制的理解
来源:互联网 发布:淘宝客推广的有权重吗 编辑:程序博客网 时间:2024/04/29 07:02
Pre:我们在开发程序时,弄清本质往往会很重要,程序的底层究竟是如何运作的。虽然学习过了汇编和编译原理,但是真正的能将各学科的知识融会贯通的又有多少呢?那似乎是仅仅停留在理论水平上。
其实程序,往底层汇编讲,就是内存,变量,寄存器,寻址,控制,运算什么的。有一个对这个机制宏观的理解,对开发来说,很重要。
高级语言无论是C,C++,还是java,一般将程序的逻辑内存分为代码区,常量区(池),静态/全局区,栈区,堆区。
代码区用于存放读写的代码,我们知道编译过程,经过词法分析,得到一个个单词符号,然后语法分析识别出语法单位,然后语义分析中间代码生成生成中间代码,之后是代码优化和目标代码生成,一般就成了汇编语言。
定义一个字符常量,会放在常量区内,定义全局或静态变量,会放在静态区,局部变量会放在栈中,程序员自己申请释放的放入堆中。在java中,只要是用new的,都是在堆中开辟。数组也是在堆中。在c中,malloc开辟的是在堆中。在c++中new在堆中开辟。
栈的形式是优先占用高地址,与变量的字节高对高,低对低的存放。函数的调用也是一个压栈的过程。其实变量名就是对应的内存地址 ,每一个标识符都有指向的内存区。一般的变量对应了一段内存地址。变量分为值变量和引用变量。这点o-c做的很好。o-c所有的引用变量都是指针类型的。数组一般是在栈中连续存放的,但是在java中。数组是引用类型,是在堆中的。代码的优化,性能的优化,说到底还是内存的优化。如何让内存利用的更有效率,如何更高效的执行。
0 0
- 程序员学习笔记---程序内存机制的理解
- JVM内存的理解(学习笔记)
- 内存分页机制的理解
- Java内存机制学习笔记
- 黑马程序员-面向对象的理解以及Objective-C方法和对象分配内存的学习笔记
- 黑马程序员_java反射机制的学习笔记
- 黑马程序员Java学习笔记__javaBean的内省机制
- 黑马程序员-----Java代理机制的学习笔记
- 黑马程序员学习笔记 面向对象的理解
- 理解memcached的内存存储机制
- Java GC 机制与内存分配策略(《深入理解Java虚拟机》一书的整理笔记)
- Memcached 学习笔记(二)内存机制
- JVM内存分配机制学习笔记
- 黑马程序员_JAVA反射机制的理解
- 黑马程序员_Java反射机制学习笔记
- 黑马程序员-高新技术-反射机制学习笔记
- 黑马程序员-学习笔记1-java程序的特性
- 《深入理解LINUX内存管理》学习笔记
- oto餐饮app和服务器通信接口和规范定义(三)
- 安卓学习第一天
- Linux时间管理类命令
- pycharm快捷键、常用设置、配置管理
- 高端存储技术与应用趋势
- 程序员学习笔记---程序内存机制的理解
- 《数据结构》第三章知识结构导图
- CSS——层叠样式表
- Leetcode - linked list circle 2
- 李轶楠:新数据库技术对DBA的冲击与影响
- Authentic Louis Vuitton Sunglasses fcfZT
- Authentic Louis Vuitton nKVsy
- Cheap Louis Vuitton Outlet pnlEk
- Louis Vuitton Outlet Online D3mgP