JMM JMM(Java内存模型Java Memory Model)是一种抽象的概念并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段、静态字段和构成数组对象的元素)的访问方式。 JMM关于同步的规定: ①线程解锁前,必须把共享变量的值刷新回主内存; ②线程解锁前 ...
分类:
其他好文 时间:
2019-05-07 18:14:57
阅读次数:
141
由于垃圾收集算法的实现涉及大量的程序细节,而且每个平台的虚拟机操作内存的方法又各不相同,因此博客中不过多的讨论算法的实现,只是介绍几种算法的思想以及发展。 相关阅读: 1、深入理解java虚拟机之java内存区域 2、深入理解java虚拟机之对象真的死了吗 1、标记-清除算法 标记清除算法分为“标记 ...
分类:
编程语言 时间:
2019-05-07 16:56:51
阅读次数:
180
Java内存模型 主内存与工作内存 Java内存模型主要目标:定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量(Variable)与Java编程中的变量略有区别,它包括实例变量/静态字段和构成数组对象的元素,不包括局部变量和方法参数(线程私有)。 ...
分类:
编程语言 时间:
2019-05-05 23:39:10
阅读次数:
138
做一个积极的人 编码、改bug、提升自己 我有一个乐园,面向编程,春暖花开! 一、初识String类 首先JDK API的介绍: String类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。 字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字 ...
分类:
编程语言 时间:
2019-05-04 23:44:05
阅读次数:
195
1.运行时数据区域 1.程序计数器:是一块较小的内存空间,它可以看作是当前线程所执行字节码的行号指示器,字节码解释器工作时就是通过改变程序计数器的值来选取下一条指令的地址。分支、循环、跳转、异常处理、线程恢复等基础功能都是由这个计数器来完成。 每一条线程都要有一个属于自己的独立的程序计数器,所以该块 ...
分类:
编程语言 时间:
2019-05-02 13:18:11
阅读次数:
185
Java内存模型规范了JVM如何提供按需禁用缓存和编译优化的方法。具体来说,这些方法包括volatile、synchronized和final三个关键字,以及六项Happens-Before规则。Happens-Before的7个规则:(1).程序次序规则:在一个线程内,按照程序代码顺序,书写在前面的操作先行发生于书写在后面的操作。准确地说,应该是控制流顺序而不是程序代码顺序,因为要考虑分支、循环
分类:
编程语言 时间:
2019-04-30 10:55:45
阅读次数:
150
为什么使用分页查询: 数据量比较大时,如果全部查询,展示刚给用户,数据量太大,用户难以接受。并且数据量大,查询慢。如果此时将大量的数据读取到java内存中,可能会存储崩溃。 分页查询的方式: 1.全部查询,在前台展示的时候,只展示其中的一部分。适用于数据库数据较少的时候。 2.数据库获取数据的时候, ...
分类:
数据库 时间:
2019-04-26 16:23:26
阅读次数:
171
原文出处: 兰亭风雨 内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。下面详细阐述各数据区所存储的数据类型。 程序计数器(Pr ...
分类:
编程语言 时间:
2019-04-25 15:59:25
阅读次数:
129
锁是JAVA多线程关键,也是面试中必问的, 在此好好总结一下。 (先要从进程和线程说起,此处先欠下,回头专门说一下操作系统是怎么管理进程和线程的) 说到多线程就要说说JAVA的内存模型:图片来自于网络。 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中 ...
分类:
编程语言 时间:
2019-04-24 12:14:30
阅读次数:
110
5.1、案例分析 5.1.1、高性能硬件上的程序部署策略 假如一个15w/天左右的在线文档类型网站再准备更换硬件系统 新的硬件为4个CPU、16GB物理内存,操作系统为64为Cento是 Resin作为Web服务器 整个服务器暂时没有部署别的应用,所有的硬件资源都可以提供给这个访问量不大的网站使用 ...
分类:
其他好文 时间:
2019-04-24 00:36:56
阅读次数:
207