jvm内存区域与溢出 为什么学习jvm 木板原理,最短的一块板决定一个水的深度,当一个系统垃圾收集成为瓶颈的时候,那么就需要你对jvm的了解掌握。 当一个系统出现内存溢出,内存泄露的时候,因为你懂jvm知识,可以更加快速定位错误,可以通过参数去合理设置各内存区域的内存容量。 因为你对jvm的认识,写 ...
分类:
其他好文 时间:
2017-08-02 21:02:17
阅读次数:
108
分析下列程序,输出结果:不确定,未定义行为。 指针释放存储空间后没有置为NULL,变成野指针。 分析:野指针,不能通过简单的NULL进行判断,delete或free只是释放了指针所指向的内存区域,并没有干掉指针本身,所以指针指向的是“垃圾”指针,所以free或者delete之后要把指针置为NULL。 ...
分类:
其他好文 时间:
2017-08-01 23:13:28
阅读次数:
149
根据不同的操作系统,一个进程可能被分配到不同的内存区域去执行。但是不管什么样的操作系统、什么样的计算机架构,进程使用的内存都可以按照功能大致分为以下4个部分: (1)代码区:这个区域存储着被装入执行的二进制机器代码,处理器会到这个区域取指并执行。 (2)数据区:用于存储全局变量等。 (3)堆区:进程 ...
分类:
其他好文 时间:
2017-08-01 12:40:00
阅读次数:
183
根据《深入理解java虚拟机》这本书总结 书中有一段话,大体的意思是:java和c之间有一堵墙,墙里的人想出来,墙外的人想进去,这堵墙就是垃圾回收机制了。 一、为什么要理解垃圾回收机制? java的垃圾回收,是自动完成的,一般情况下并不需要去关注,但是当遇到一些并发量、数据量比较大的时候,可能就会出 ...
分类:
其他好文 时间:
2017-07-31 17:24:04
阅读次数:
122
一、函数JavaScript中的函数定义分为两种:声明式函数和赋值式函数。而且,函数的名称就是函数的内存地址,和变量一样,指向函数代码所在的内存区域。//声明式函数functionfn(name){varmsg="你好,"+name+",我是一个函数.";alert(msg);}//赋值式函数varfn=function(name){varm..
分类:
其他好文 时间:
2017-07-31 14:44:47
阅读次数:
158
一、JVM介绍 1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个 ...
分类:
其他好文 时间:
2017-07-30 21:07:25
阅读次数:
149
1. java内存区域(堆区、栈区、常量池) 2. String 3. StringBuffer和StringBuilder 区别 执行速度,StringBuilder > StringBuffer StringBuilder 线程不安全,StringBuffer 线程安全 (在单线程程序中用Str ...
分类:
编程语言 时间:
2017-07-29 12:55:03
阅读次数:
144
此处内容均是作者参考《深入理解Java虚拟机》--周志明著 第二章内容所总结 一、java内存区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则依赖用户线程的启动和结 ...
分类:
编程语言 时间:
2017-07-27 21:18:07
阅读次数:
253
本内容由《深入理解java虚拟机》的部分读书笔记整理而成,本读者计划连载。 通过如下图和文字介绍来了解几个运行时数据区的概念。 方法区:它是各个线程共享的区域,用于内存已被VM加载的类信息、常量、静态变量、即时编译器编译的代码等数据。JVM规范对这个区域的限制很宽松,如同堆一样不需要连续的内存、可选 ...
分类:
编程语言 时间:
2017-07-26 23:33:17
阅读次数:
261
1. C/C++中每个字符串都以'\0'作为结尾,这样我们就能很方便找到字符串的最后结尾。 注意:谨记字符串末尾的空字符,防止数组越界。 2. C/C++把常量字符串放到单独的一个内存区域 为了节省内存,C/C++把常量字符串单独放到单独的一个内存区域。当几个指针赋值给相同的常量字符串时,它们实际上 ...
分类:
编程语言 时间:
2017-07-24 22:33:58
阅读次数:
293