Java内存空间分两种,一种是栈内存,有多个,一种是堆内存,只有一个,在堆内存中又有一块方法区。 方法区中存储的是:类的信息(类名,类的直接父类,类的访问修饰符),类变量,类方法代码,实例方法代码,常量池。注意没有实例变量。 当使用new创建一个对象的时候,JVM实际上做了三件事:加载类,创建该类的 ...
分类:
编程语言 时间:
2019-10-24 13:14:16
阅读次数:
69
深入理解Java内存模型 【1】CPU和缓存的一致性 ? 我们应该都知道,计算机在执行程序的时候,每条指令都是在CPU中执行的,而执行的时候,又免不了要和数据打交道。而计算机上面的数据,是存放在主存当中的,也就是计算机的物理内存啦。 ? 刚开始,还相安无事的,但是随着CPU技术的发展,CPU的执行速 ...
分类:
编程语言 时间:
2019-10-24 00:08:31
阅读次数:
94
一、https原理 二、Http1.0和1.1及2.0的区别 三、限流算法 四、Java内存模型 1.https原理 我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险。为了解决这个问题,Netsca ...
分类:
其他好文 时间:
2019-10-18 12:40:39
阅读次数:
85
访问修饰符 控制被访问的权限 public protected default(不写) private (权限从高到低) 静态(static) 内存结构 ...
分类:
编程语言 时间:
2019-10-17 22:02:12
阅读次数:
81
首先,这两者是完全不同的概念,绝对不能混为一谈。1.什么是Java内存模型?Java内存模型是Java语言在多线程并发情况下对于共享变量读写(实际是共享变量对应的内存操作)的规范,主要是为了解决多线程可见性、原子性的问题,解决共享变量的多线程操作冲突问题。多线程编程的普遍问题是:所见非所得无法肉眼检测程序的准确性不同的运行平台表现不同错误很难复现故JVM规范规定了Java虚拟机对多线程内存操作的一
分类:
编程语言 时间:
2019-10-17 20:31:58
阅读次数:
100
1、串行垃圾收集器线程:单线程,无需线程交互,效率高;适用于单核处理器,或者小数据量(100M)情况下 ; -XX:UseSerialGC : 打开串行收集器 2、并行垃圾收集器线程:多线程,减少垃圾回收时间,适用于多核处理器; -XX:UseParallelGC : 打开串行收集器,仅用于新生代; ...
分类:
其他好文 时间:
2019-10-16 13:27:43
阅读次数:
87
Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型。 如果你想设计表现良好的并发程序,理解Java内存模型是非常重要的。Java内存模型规定了如何和何时可以看到由其他线程修改过后的 ...
分类:
编程语言 时间:
2019-10-15 12:58:41
阅读次数:
71
2.虚拟机栈 定义:虚拟机栈(Java Virtual Machine Stacks)就是每个线程运行需要的内存空间,栈由一个一个的栈帧(Frame)组成,栈帧就是每个方法运行时需要的内存(方法的参数、局部变量、返回地址) 每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法 问题分析 垃圾回收 ...
分类:
编程语言 时间:
2019-10-14 23:34:27
阅读次数:
106
前言 首先我们在了解java内存模型之前先看一下计算机内存模型,理解了计算机内存模型的话后面在看JMM就会简单的多。 首先我们在了解java内存模型之前先看一下计算机内存模型,理解了计算机内存模型的话后面在看JMM就会简单的多。 计算机内存 计算机是由CPU、主存、磁盘等组成的(简单引出问题熬)我们 ...
分类:
编程语言 时间:
2019-10-13 20:29:50
阅读次数:
103
java内存模型 1、JVM内存区域 方法区:类信息、常量、static、JIT (信息共享) java堆:实例对象 GC (信息共享) OOM VM stack:JAVA方法在运行的内存模型 (OOM) PC: java线程的私有数据,这个数据就是执行下一条指令的地址 Native method ...
分类:
编程语言 时间:
2019-10-11 12:18:23
阅读次数:
94