经常在网上各大版块都能看到对于java字符串运行时内存分配的探讨,形如:String a = "123",String b = new String("123"),这两种形式的字符串是存放在什么地方的呢,其实这两种形式的字符串字面值"123"本身在运行时既不是存放在栈上,也不是存放在堆上,他们是存放...
分类:
编程语言 时间:
2014-11-01 06:16:33
阅读次数:
305
引言: JVM分析和优化是Java技术体系中的高大上的内容,其实这个东西没有那么神秘和高深,只是大部分童鞋没有机会真正接触它们,从而对它们有一个深入理解。这里通过一个小题目,来展示如何来看JVM输出的日志信息,并得出JVM几个设置变量的设置信息。...
分类:
其他好文 时间:
2014-10-30 22:44:13
阅读次数:
283
mysql 执行流程我们可以人为的把mysql 的主要功能分为如下模块.1.初始化模块 mysql启动的时候执行初始化工作,如读取配置文件,分配一些全局变量(sql_model,catch buffer),载入控制表, 内存分配之类的,这个模块执行完之后, 初始化模块执行完之后就把控制器交给链接管....
分类:
数据库 时间:
2014-10-30 19:08:48
阅读次数:
265
http://blog.chinaunix.net/uid-29958512-id-4584209.html
分类:
编程语言 时间:
2014-10-30 18:41:17
阅读次数:
203
功能: 用于检測c++程序的内存泄露。 原理: 事实上非常easy,就是通过函数的重载机制,捕获应用程序的new, new[] , delete , delete[], malloc,calloc,free等内存操作函数。 特点: 因为在检測的过程中,须要记录用户程序内存分配...
分类:
编程语言 时间:
2014-10-30 15:15:44
阅读次数:
282
我们知道java中new方式创建的对象都是在堆中创建的,而局部变量对应的值存放在栈上。那么java中的int [] arr={1,2,3}是存放在什么地方的呢,int []arr = new int[3]又是存放在什么地方的呢,下面我们通过编写两个小例子,通过查看生成的字节码文件,来了解jvm会如何...
分类:
编程语言 时间:
2014-10-30 01:36:32
阅读次数:
246
一、预备知识―程序的内存分配
一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
3、全局区(静态...
分类:
其他好文 时间:
2014-10-28 21:47:49
阅读次数:
131
本文是对http://www.davidlenihan.com/2008/01/choosing_the_correct_cc_runtim.html的翻译,如有错误,还请指正c/c++运行库(runtime library)包括许多基本的功能,像内存分配、输出和字符串操作(复制、计算长度)等等当建...
分类:
编程语言 时间:
2014-10-27 12:33:01
阅读次数:
192
动态内存分配
传统数组的缺点:
1数组长度必须事先制定,且只能是长整数不能是变量
2传统形式定义的数组该数组的内存程序无法手动释放
3数组一旦定义,系统就会为该数组分配的存储空间就会一直存在直到该函数运行结束
4数组的长度不能再函数的运行的过程中动态的扩充或者缩小
5不能跨函数使用
为什么需要动态分配内存
动态内存分配内存举例——动态数组的构造
静态内存分配和动态内存分配
跨函数使用内存的问题
...
分类:
编程语言 时间:
2014-10-26 00:29:49
阅读次数:
214
转自:http://book.51cto.com/art/200811/96138.htmC语言编译后的可执行程序的存储结构和运行结构可执行程序在存储时(没有调入到内存)分为代码区(text)、数据区(data)和未初始化数据区(bss)3个部分。(1)代码区(text segment)。存放CPU...
分类:
编程语言 时间:
2014-10-26 00:12:52
阅读次数:
308