参数名 含义 默认值 描述 -Xms 初始化堆大小 物理内存的1/64(<1G) 默认空余堆内存比例(MinHeapFreeRatio)小于40%的时候JVM就会增大堆内存直到-Xmx限制 -Xmx 最大堆内存 物理内存的1/4 默认空余堆内存比例(MinHeapFreeRatio)大于70%时候J ...
分类:
其他好文 时间:
2020-03-21 13:03:24
阅读次数:
74
摘抄并自查 1. JMM 的介绍 线程安全:当多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替运行,也不需要额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获取正确的结果,那这个对象就是线程安全的。 出现线程安全的问题一般是因为主内存和工作内存数据不一 ...
分类:
移动开发 时间:
2020-03-20 21:53:13
阅读次数:
69
1、内存泄漏memory leak : 是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。 2、内存溢出 out of memory : 指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但 ...
分类:
编程语言 时间:
2020-03-18 23:47:08
阅读次数:
63
并发是个系统的知识体系,有理论上的,有语言上的,有概念上的,这份总结力求简单,看的懂,而不是用一大堆源码和概念去描述 java的内存模型 java的内存模型被称为JMM,从上图可以看出,java内存模型主要是针对多线程。 为什么要先说java的内存模型,事实上,涉及到线程之间通信的两种模型; 第一种 ...
分类:
编程语言 时间:
2020-03-18 11:30:19
阅读次数:
62
Java内存模型(java memory model)本身是一种抽象概念,是一种符合内存模型规范的,屏蔽了硬件和操作系统之间访问差异的,保证java程序在各种平台下对内存的访问都能达到一致性访问效果的规范及机制。目的是解决多线程通过共享内存进行通信时,存在的原子性,有序性,可见性问题。除此之外,ja ...
分类:
编程语言 时间:
2020-03-16 12:38:29
阅读次数:
71
static 关键字主要用来修饰方法 ,类 ,成员变量以及代码块。 1、修饰成员变量和成员方法 被 static 修饰的成员属于类,不属于这个类的某个对象,而是被类中所有对象共享,可以并且建议通过类名调用。被static 声明的成员变量属于静态成员变量,静态变量存放在 Java 内存区域的方法区,方 ...
分类:
其他好文 时间:
2020-03-15 20:34:27
阅读次数:
76
public class Test06 { /* * StreamAPI: * StreamAPI是用来处理数据,处理集合等容器中的数据,处理操作有:查询、筛选、删除、过滤、统计、映射等。 * 希望能够用类似于SQL语法的形式对Java内存中的数据进行处理。 * * SQL是对数据库中的数据进行处理 ...
分类:
其他好文 时间:
2020-03-14 13:02:43
阅读次数:
76
Volatile 关键字 Volatile 是java虚拟机提供的轻量级同步机制(保证可见性,不保证原子性,禁止指令重排) 可见性之前需要了解 JVM(java虚拟机) JMM(java内存模型) javamemory model 不真实存在描述的一种规则规范 定义了程序中各个变量(包括实例字段静态 ...
分类:
编程语言 时间:
2020-03-06 19:28:39
阅读次数:
82
永久区是一个常驻内存区域,用于存放JDK自身所携带的Class Interface的元数据 也就是说它存储的是运行环境必须的类信息,被装载进此区域的数据锁不会被垃圾回收掉的,关闭JVM 才会释放此区域所占用的内存。 JVM调优 堆参数调优 java8中,永久代被移除被元空间取代 两者本质类似 最大区 ...
分类:
其他好文 时间:
2020-02-29 14:42:14
阅读次数:
224