一、Guava介绍 Guava是Google guava中的一个内存缓存模块,用于将数据缓存到JVM内存中。实际项目开发中经常将一些公共或者常用的数据缓存起来方便快速访问。 Guava Cache是单个应用运行时的本地缓存。它不把数据存放到文件或外部服务器。如果不符合需求,可以选择Memcached ...
分类:
编程语言 时间:
2020-01-14 13:24:40
阅读次数:
91
其实是为了填之前的一个坑 在一个多线程的案例中出现了阻塞的情况。 https://www.cnblogs.com/hetutu-5238/p/10477875.html 其中的第二个问题,即多个线程循环顺序打印1,2,3,4 public class Demo2 { public static vo ...
分类:
编程语言 时间:
2020-01-13 18:14:05
阅读次数:
134
多线程之间实现同步 理解线程安全 synchronized用法 死锁 Java内存模型 Vlolatile 关键字 ThreadLock 关键字 理解线程安全 什么是线程安全? 当多个线程同时对共享的同一个全局变量或静态变量做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。 但是做读操作是不 ...
分类:
编程语言 时间:
2020-01-13 09:15:02
阅读次数:
67
1. Java内存区域 1.1 运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。主要包括:程序计数器、虚拟机栈、本地方法栈、Java堆、方法区(运 行时常量池)、直接内存。 程序计数器 程序计数器(Program Counter Register) ...
分类:
编程语言 时间:
2020-01-05 22:37:11
阅读次数:
95
前言 工作过程中,经常会遇到基于内存数据进行分页处理的情况,例如批量更新数据库时,集合过大需要分批更新的情况,还有例如对缓存中的集合数据进行分页获取这种情况。 本文提供了通用的内存分页工具,参考了网络上的一些代码,主要基于 subList() 方法实现,希望对你有所帮助!工具类源码在本文底部。 <! ...
分类:
编程语言 时间:
2020-01-04 18:40:34
阅读次数:
151
并发:多个线程访问同一份资源。 并行:一边听歌一边写论文就是并行,同时做事。 volatile是java虚拟机提供的轻量级的同步机制。 voliatile有三大特性: 1.保证可见性。 2.不保证原子性。 3.禁止指令重排。 JMM(Java内存模型 Java Memory Model)本身是一种抽 ...
分类:
其他好文 时间:
2020-01-04 12:39:44
阅读次数:
56
/* * java运行内存: * 堆(heap):存储的全是对象,每个对象都包含一个与之对应的class信息 * 只有一个heap,被所有线程共享,heap中不存放基本数据类型和对象引用,只放对象本身 * 栈:每个线程都有属于自己的栈(用户态栈),栈中保存基本数据类型的对象和自定义对象的引用,这个引 ...
分类:
编程语言 时间:
2020-01-04 12:15:42
阅读次数:
82
JVM内存结构 Java内存模型是指Java虚拟机的内存模型,我们来看下Java内存模型的图片: VM内存模型主要分为三块:Java 堆内存(Heap)、方法区(Non-Heap)、JMV栈(JVM Stack)、本地方法栈(Native Method Stacks)、程序计数器(Program C ...
分类:
其他好文 时间:
2019-12-31 23:34:36
阅读次数:
102
一、Java内存区域 从《深入理解Java虚拟机》一书中知道 1. 程序计数器 当前线程的行号指示器,JVM多线程的方式,导致了线程在被挂起到重新获取执行权时,需要知道上次挂起的地方在哪。在JVM中, 通过程序计数器来记录字节码的执行位置。程序计数器具有隔离性,为线程私有。此区域不会发生OOM。 2 ...
分类:
其他好文 时间:
2019-12-31 12:28:46
阅读次数:
68
Java虚拟机深入理解系列全部文章更新中...深入理解Java虚拟机-Java内存区域透彻分析深入理解Java虚拟机-常用vm参数分析深入理解Java虚拟机-JVM内存分配与回收策略原理,从此告别JVM内存分配文盲深入理解Java虚拟机-如何利用JDK自带的命令行工具监控上百万的高并发的虚拟机性能深入理解Java虚拟机-如何利用VisualVM对高并发项目进行性能分析深入理解Java虚拟机-你了解
分类:
编程语言 时间:
2019-12-31 00:54:06
阅读次数:
107