浅拷贝与深拷贝 一、数据类型 数据分为基本数据类型(String, Number, boolean, Null, Undefined,Symbol)和对象数据类型。 基本数据类型的特点:直接存储在栈(stack)中的数据 对象数据类型的特点:存储的是该对象在栈中引用,真实的数据存放在堆内存里 二、浅 ...
分类:
其他好文 时间:
2018-08-01 18:55:43
阅读次数:
137
jps -- 查看进程号 jmap -histo pid 查看堆内存中的对象数目、大小统计直方图, 如果带上live则表示先进行一次fullgc 再统计内存使用情况,如下: jmap -histo:live pid | more ...
分类:
其他好文 时间:
2018-08-01 15:18:22
阅读次数:
247
Netty本身在内存分配上支持堆内存和直接内存,我们一般选用直接内存,这也是默认的配置。所以要理解Netty内存的释放我们得先看下直接内存的释放。 Java直接内存释放 我们先来看下直接内存是怎么使用的 申请的过程是其实就是创建一个DirectByteBuffer对象的过程,DirectByteBu ...
分类:
Web程序 时间:
2018-07-31 00:31:19
阅读次数:
242
静态变量和成员变量的区别 * 静态变量也叫类变量 成员变量也叫对象变量 * A:所属不同 * 静态变量属于类,所以也称为为类变量 * 成员变量属于对象,所以也称为实例变量(对象变量) * B:内存中位置不同 * 静态变量存储于方法区的静态区 * 成员变量存储于堆内存 * C:内存出现时间不同 * 静 ...
分类:
其他好文 时间:
2018-07-30 01:09:15
阅读次数:
204
类的生命周期 加载 验证 准备 解析 初始化 使用 卸载 验证、准备、解析为连接 解析与初始化交换顺序为动态绑定 类加载过程 包含了加载、验证、准备、解析、初始化阶段 1、加载 通过一个类的全限定名来获取此类的二进制字节流; 将这个字节流所代表的静态存储结构转换为方法区的运行时存储结构 在堆内存中生 ...
分类:
其他好文 时间:
2018-07-29 00:12:45
阅读次数:
168
先了解一下Java堆: 关于Java内存区域的分配,可以查看Java运行时数据区域一篇文章。 Java堆是虚拟机内存管理中最大的一块区域,该区域是线程共享的,某Java进程中所有的线程都可以访问该区域中的数据。Java堆中大部分区域是存放的实例对象,就是我们常说的Java面向对象编程中的对象。比如我 ...
分类:
编程语言 时间:
2018-07-26 13:03:42
阅读次数:
193
内存溢出异常 除了程序计数器之外,jvm的其他几个运行时区域都存在着OOM异常的可能性 java堆溢出 对象数量达到最大堆的容量限制后 虚拟机栈和本地方法栈溢出 线程请求的栈深度大于虚拟机所允许的最大深度 虚拟机在扩展栈时无法申请到足够的内存空间 方法区和运行时常量池溢出 生成大量的class的情况JDK的可视化工具 JConsole:java监视与管理控制台 概述;类;vm摘要;MBe
分类:
其他好文 时间:
2018-07-22 12:03:41
阅读次数:
206
java内存区域 程序计数器 因为java可以多线程并发执行,因此,为了线程切换后能恢复到正确的执行位置,每个线程都需要一个独立的程序计数器。记录正在执行的虚拟机字节码指令的地址。 这个区域不会产生内存溢出异常。 栈 java虚拟机栈 栈中主要存放了编译期可知的四类八种基本数据类型存(逻辑型 boo ...
分类:
其他好文 时间:
2018-07-21 19:51:49
阅读次数:
200
1、安装 Windows 环境 Maven 官网下载安装文件 解压到指定目录 配置环境变量(M2_HOME) cmd 输入 mvn v Mac环境 brew install mvn 配置环境变量 export M2\_HOME=/usr/local/Cellar/maven/3.5.4, expor ...
分类:
其他好文 时间:
2018-07-20 01:19:03
阅读次数:
294
Virtual 关键字起到什么作用 借鉴网友blog, 了解了虚析构函数的作用: 虚析构函数是为了避免内存泄露,而且是当子类中会有指针成员变量时才会使用得到的。 也就说虚析构函数使得在删除指向子类对象的基类指针时可以调用子类的析构函数达到释放子类中堆内存的目的,而防止内存泄露的。 c++中的函数调用 ...
分类:
编程语言 时间:
2018-07-19 13:42:28
阅读次数:
198