1.1.什么是直接内存(Derect Memory) 在内存模型最开始的章节中,我们画出了JVM的内存模型,里面并不包含直接内存,也就是说这块内存区域并不是JVM运行时数据区的一部分,但它却会被频繁的使用,原因是NIO这个包。 NIO(New input/output)是JDK1.4中新加入的类,引 ...
分类:
其他好文 时间:
2018-09-15 18:22:11
阅读次数:
161
一、堆(Heap) 1.1.什么是堆 堆是用于存放对象的内存区域。因此,它是垃圾收集器(GC)管理的主要目标。其具有以下特点: 堆在逻辑上划分为“新生代”和“老年代”。由于JAVA中的对象大部分是朝生夕灭,还有一小部分能够长期的驻留在内存中,为了对这两种对象进行最有效的回收,将堆划分为新生代和老年代 ...
分类:
其他好文 时间:
2018-09-15 17:32:07
阅读次数:
127
1.技术背景: 系统缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能。缓存设想内存是有限的,缓存的时效性也是有限的,所以可以设定内存数量的大小可以执行失效算法,可以在内存满了的情况下,按照最少访问等算法将缓存直 ...
分类:
系统相关 时间:
2018-09-14 13:56:10
阅读次数:
189
JVM的内存区域是怎么划分的? JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;有些区域会抛出OOM异常,有些则不会,了解JVM的内存区域划分以及特征,是定位线上内存问题的基础。那么JVM内存区域是怎么划分的呢? 首先是 程序计数器 (Program Counter Regi ...
分类:
其他好文 时间:
2018-09-12 20:18:52
阅读次数:
187
重写基础函数 1. 字符串拷:strcpy() 函数strcpy的原型是char* strcpy(char* des , const char* src),des 和 src 所指内存区域不可以重叠且 des 必须有足够的空间来容纳 src 的字符串。 1) 最后拷贝了结束符’\0’; 2)源指针应 ...
分类:
其他好文 时间:
2018-09-09 14:58:50
阅读次数:
138
1、运行时数据区域 1.1、程序计数器 线程私有,当前线程所执行的字节码行号指示器, Java虚拟机的多线程是通过线程轮流切换处理器执行时间的方式来分配 1.2、Java虚拟机栈 线程私有,,虚拟机的局部变量表每个方法在执行的时候都会创建栈帧用于存储局部变量,操作数栈,动态链接方法出口等信息,每个方 ...
分类:
编程语言 时间:
2018-09-07 23:56:38
阅读次数:
322
让计算机看起来可以干很多事情。 计算机在用它的超高运行性能碾压人类的反应速度。 手机对着电脑屏幕扫描,因为变换频率相差不大,所以会闪。 酷睿多核,保证电脑可以在物理上实现多线程。 进程是操作系统中运行的一个任务。 进程是一块包含了某种资源的内存区域。操作系统利用进程把它的工作 划分为一些功能单元。 ...
分类:
编程语言 时间:
2018-09-05 19:48:57
阅读次数:
163
Python内置数据结构一、数值型1.数据类型分类:int:整数python3的int就是长整型,且没有大小限制,受限于内存区域的大小int(x)返回一个整数float:浮点数有整数部分和小数部分组成。支持十进制和科学计数法表示。只有双精度型。float(x)返回一个浮点数complex:复数有实数和虚数部分组成,实数和虚数部分都是浮点数,3+4.2Jcomplex(x)、complex(x,y)
分类:
编程语言 时间:
2018-09-05 00:46:38
阅读次数:
175
GC算法:引用计数法(Reference Counting)、标记清除法(Mark-Sweep)、复制算法(Copying)、标记压缩法(Mark-Compact)、分代算法(Generational Collecting)及分区算法(Region) ...
分类:
编程语言 时间:
2018-09-03 12:08:07
阅读次数:
152
java内存区域和内存溢出异常 划分内存: java 虚拟机在执行 java 程序时将内存划分为 5 个部分。线程私有的有成员计数器、虚拟机栈、本地方法栈,线程共享的有方法区、堆。 程序计数器储存字节码行号,此区域未规定任何内存溢出异常。虚拟机栈储存栈帧,用于java 方法的运行。本地方法栈用于 n ...
分类:
编程语言 时间:
2018-09-02 02:13:29
阅读次数:
161