SpringBoot整合Redis缓存
SpringBoot整合Redis缓存如果我们每次需要数据都要从数据库访问数据的话,会给数据库带来极大的压力,这时候,就需要一个地点暂时居住起来,这样就不会因为大量的IO导致效率低下。:happy: Redis简介REmote DIctionary Server(Redis) 是一个由Salvato ...
阅读更多
SpringBoot整合MyBatis框架
SpringBoot整合MyBatis框架我们很多应用,访问数据库的方式都是JDBC等等,这些非常麻烦而又繁琐的操作,为了使得这个方式得到更好的优化,人们便开始对上帝有所诉求,上帝感到了程序猿的不幸,为了平衡各个物种的差别,同时也得给达尔文一个面子,于是诞生了MyBatis(瞎说)。 MyBatis ...
阅读更多
Java虚拟机(七)虚拟机性能监控、故障处理工具
基础故障工具在JDK中,有很多工具可以进行对虚拟机的性能监控,或者是故障处理。 jps:虚拟机进程状况工具之前在讲多线程的时候也有用到了,在检查死锁问题的时候,使用jps查看是哪个线程。 jstat:虚拟机统计信息工具jstat可以用于对线程的监控和统计,如图: 对 15192线程查询GC的情况 ...
阅读更多
Java虚拟机(六)内存分配与回收策略
内存分配与回收策略这次,我们就是用最基本的收集器 Serial来查看内存是怎么分配和回收的吧。首先看Java堆的分区: 1.Eden区 Eden区位于Java堆的年轻代,是新对象分配内存的地方,由于堆是所有线程共享的,因此在堆上分配内存需要加锁。而Sun JDK为提升效率,会为每个新建的线程在 ...
阅读更多
Java虚拟机(五)经典的垃圾收集器
垃圾收集器垃圾收集算法,都是一个原理,这些算法的实现的最终结果,就是垃圾收集器。每个垃圾收集器虽然算法上类似,但是各个都有着自己的优势。如图: 这七个就是是如今比较流行的垃圾收集器。它们都是在分代收集算法的策略下运行的。 Serial收集器这是一个最古老的垃圾收集器,现在几乎不被使用了。它的原理非 ...
阅读更多
ConcurrentHashMap原理
ConcurrentHashMap原理ConcurrentHashMap指的是一个线程安全的HashMap,并且ConcurrentHashMap比起HashTable,拥有这着更高的效率。ConcurrentHashMap更多的时候,是用来代替HahsMap在多线程下进行生产活动。 HashMap ...
阅读更多
HashMap原理
HashMap原理HashMap怎么使用1234567891011121314151617181920212223242526272829import java.util.HashMap;import java.util.Map;public class test { public ...
阅读更多
AQS队列同步器
队列同步器(AbstractQueuedSynchronizer)队列同步器,是一个用来构建锁或者其他同步组件的基础框架,像之前提到的重入锁,读写锁,都是使用这个框架搭建起来的。它使用一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。 队列同步器接口的方法1prot ...
阅读更多
Java虚拟机(四)垃圾回收的机制和算法
GCJava虚拟机除了支持了Java的跨平台性之外,最重要的就是虚拟机能够自动进行内存的回收,它不像C++那样,需要析构函数之类的去分配和管理内存,同样的也没有指针这个神奇的玩意,在处理不会再被使用的对象时,Java虚拟机会自动帮我们完成内存的回收。而所谓的内存回收,就叫做GC,也可以叫做垃圾收集, ...
阅读更多
Java虚拟机(三)虚拟机中的内存溢出
OutOfMemoryError异常OutOfMemoryError异常(简称OOM)是Java虚拟机中一个比较常见的异常,它的情况有很多种,我们就以HotSpot的虚拟机为例,讲解一下常见的异常。 Java堆溢出Java堆是在虚拟机中,所有线程共享的一个堆栈,我们如果在程序中不断地添加一个对象而不 ...
阅读更多