Java专题二十二:垃圾回收(GC) 22.1. 垃圾回收算法 22.1.1. 复制算法 复制算法将内存按容量划分为大小相等的两块,每次只使用其中的一块,当这一块内存用完了,就将还存活着的对象复制到另一块上面,然后再把已经使用过的内存空间一次清理掉 22.1.2. 标记-清除算法 标记-清除算法将垃 ...
分类:
编程语言 时间:
2020-06-15 17:25:41
阅读次数:
53
Cookie和SessionHTTP协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;Session和Cookie的主要目的就是为了弥补HTTP的无状态特性。Session是什么客户端请求服务端,服务端会为这次请求开辟一块内存空间,这个对象便是Session对象,存储结构为ConcurrentHashMap。Session弥补了HTTP
分类:
其他好文 时间:
2020-06-15 09:20:17
阅读次数:
55
1. static 1.1 引入 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上 的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象, 其(!static)方法才可以供外部调用。 我们有时候希望无论是否产生了对象或无论产生了多少 对象的情况下,某些特 ...
分类:
其他好文 时间:
2020-06-13 13:26:28
阅读次数:
43
1.堆【heap】 (1)堆总是一颗完全二叉树【深度为K,除了k层外,1~k-1层的结点数都达到最大值,k层所有的节点都连续集中在最左边的就是完全二叉树】 (2)堆 不是在程序编译时申请内存的,而是在程序运行时向操作系统申请内存空间,即动态分配内存空间,一般是申请/给予的过程; (3)堆通常可被看作 ...
分类:
其他好文 时间:
2020-06-13 10:35:03
阅读次数:
67
前言在JVM的管控下,Java程序员不再需要管理内存的分配与释放,这和在C和C++的世界是完全不一样的。所以,在JVM的帮助下,Java程序员很少会关注内存泄露和内存溢出的问题。但是,一旦JVM发生这些情况的时候,如果你不清楚JVM内存的内存管理机制是很难定位与解决问题的。一、JVM内存区域Java虚拟机在运行时,会把内存空间分为若干个区域,根据《Java虚拟机规范(JavaSE7版)》的规定,J
分类:
其他好文 时间:
2020-06-12 10:40:41
阅读次数:
53
前言在JVM的管控下,Java程序员不再需要管理内存的分配与释放,这和在C和C++的世界是完全不一样的。所以,在JVM的帮助下,Java程序员很少会关注内存泄露和内存溢出的问题。但是,一旦JVM发生这些情况的时候,如果你不清楚JVM内存的内存管理机制是很难定位与解决问题的。一、JVM内存区域Java虚拟机在运行时,会把内存空间分为若干个区域,根据《Java虚拟机规范(JavaSE7版)》的规定,J
分类:
其他好文 时间:
2020-06-12 10:39:57
阅读次数:
67
前言在JVM的管控下,Java程序员不再需要管理内存的分配与释放,这和在C和C++的世界是完全不一样的。所以,在JVM的帮助下,Java程序员很少会关注内存泄露和内存溢出的问题。但是,一旦JVM发生这些情况的时候,如果你不清楚JVM内存的内存管理机制是很难定位与解决问题的。一、JVM内存区域Java虚拟机在运行时,会把内存空间分为若干个区域,根据《Java虚拟机规范(JavaSE7版)》的规定,J
分类:
其他好文 时间:
2020-06-12 10:35:14
阅读次数:
110
内部碎片 概念:一个分区内部出现的碎片(即被浪费的空间),不能被利用。(能明确指出属于哪个进程) 例子: 固定分区法中,当6KB的进程被分配了10KB的内存空间,就有4KB的内部碎片; 一个进程申请43KB的内存空间,某些处理器因为限制(比如其体系结构规定只能整除4、8、16),该进程被分配了44K ...
分类:
其他好文 时间:
2020-06-10 10:59:06
阅读次数:
90
概述 一个进程对应一个JVM实例,一个运行时数据区,又包含多个线程,这些线程共享了方法区和堆,每个线程包含了程序计数器、本地方法栈和虚拟机栈 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间 ...
分类:
其他好文 时间:
2020-06-09 16:31:47
阅读次数:
63
一、 堆(heap)和栈(stack) 栈(stack)会自动分配内存空间,会自动释放。堆(heap)动态分配的内存,大小不定也不会自动释放。 二、 基本类型和引用类型 基本类型:简单的数据段,存放在栈内存中,占据固定大小的空间。 引用类型:指那些可能由多个值构成的对象,保存在堆内存中,包含引用类型 ...
分类:
Web程序 时间:
2020-06-09 11:21:06
阅读次数:
100