
JAVA
xpang0
这个作者很懒,什么都没留下…
展开
-
Spring AOP动态代理之jdk和cglib
Spring的两大特性就是IOC和AOP(Aspect Orient Programming),AOP一般称为面向切面编程,主要用于事务、日志等方面。AOP代理分为静态代理和动态代理,静态代理一般是AspectJAOP(编译时),动态代理则为Spring AOP(运行时)中的cglib和jdk两种。jdk动态代理jdk动态代理的核心是InvocationHandler接口和Proxy...原创 2020-04-20 17:02:06 · 225 阅读 · 0 评论 -
Java并发学习记录—手写一个死锁的Demo
真实的面试场景下,当面试官问到死锁相关的知识点的时候,往往会让你手写一个死锁的案例,一般是考察面试者手写代码的功力。死锁,指两个或多个线程之间,由于互相持有对方需要的锁,而永久处于阻塞的状态。public class DeadLock implements Runnable{ int flag=1; static Object o1=new Object(); static Object o2=new Object(); @Override p.原创 2020-05-26 15:08:13 · 261 阅读 · 0 评论 -
JVM学习记录—JVM参数优化案例
本案例主要参考狸猫技术窝“从 0 开始带你成为JVM实战高手”系列文章。以百万级别的交易系统为例上图为一个交易系统的核心流程概况目前系统最大的压力是创建上百条订单时候系统的压力,具体可以考虑下面几个问题需要多少台机器 机器内存多少 如何给JVM分配内存 JVM中年轻代、老年代等如何分配预估系统压力假设每天100万个支付订单,那么一般用户交易行为都会发生在每天的高峰期几个小时,用100万平均分配到几个小时里,那么大概是每秒100笔订单左右,假设部署了三台机器,每台机器每秒的.原创 2020-05-15 13:53:33 · 223 阅读 · 0 评论 -
jdk1.8源码学习之ConcurrentHashMap
目录jdk1.7中的实现jdk1.8中的实现put方法https://blog.youkuaiyun.com/e5yrt2/article/details/105249839之前这篇文章介绍了hashmap的源码,但是hashmap是线程不安全的,jdk同样提供了java.util.concurrent包下的ConcurrentHashMap来解决这个问题jdk1.7中的实现...原创 2020-04-18 19:30:05 · 242 阅读 · 1 评论 -
Java多线程实现生产者消费者设计模式
这个题目是多线程很常见的题目,主要就是知道wait()和notify()方法的作用import java.util.Date;import java.util.LinkedList;/** * 用wait/notify实现生产者消费者 * @author : vi3nty * @date : 21:08 2020/4/17 */public class ProducerC...原创 2020-04-17 22:01:52 · 333 阅读 · 0 评论 -
JVM学习记录—常见垃圾回收器
上文https://blog.youkuaiyun.com/e5yrt2/article/details/105515473介绍了常见的垃圾回收算法,这篇文章就来说下常见的垃圾回收器HotSpot虚拟机提供了7种垃圾收集器,其中适用于新生代的三种,老年代的三种,还有一种新生代老年代都适用新生代垃圾收集器:Serial收集器,ParNew收集器,Parallel Scavenge收集器老年代垃圾...原创 2020-04-15 22:30:57 · 199 阅读 · 0 评论 -
JVM学习记录—常见垃圾回收(GC)算法
JVM内存分代模型由上篇JVM内存模型中了解到,系统中创建的对象都是分配在堆上。堆的大小是固定的,那么如何利用好堆就是极为重要的。所以JVM分代模型为:年轻代、老年代和永久代(方法区)。public class Method1{ public static void main(String[] args) { Hello hello = new Hello();...原创 2020-04-14 23:19:28 · 324 阅读 · 0 评论 -
Java并发学习记录—基础知识脉络(思维导图)
本篇主要是建立一个对java并发基础知识的整个脉络结构,用来更好得理清并发的关系,不涉及各种工具类的使用和原理讲解等。原创 2020-04-12 22:37:34 · 487 阅读 · 1 评论 -
JVM学习记录—内存模型
本文是基于Java8的HotSpot虚拟机分析的什么是Java虚拟机众所周知,java主要特点就是平台无关性。那么如何实现平台无关性呢,答案就是用虚拟机将不同操作系统的差异隔离。Java 之所以要在虚拟机中运行,是因为它提供了可移植性。Java 代码被编译为 Java 字节码,可以在不同平台上的 Java 虚拟机实现上运行。JVM内存模型JVM(Java Virtual Ma...原创 2020-04-10 15:00:41 · 264 阅读 · 0 评论 -
jdk1.8源码学习之HashMap
分析ConcurrentHashMap之前,首先要对Map和HashMap逐个分析,才能更好得理解ConcurrentHashMap。所以这片文章主要来分析HashMap。1、Map简介转存失败重新上传取消如图Map是一个接口,除此之外常用的集合类接口还有Collection转存失败重新上传取消2、HashMapjdk1.7与1.8关于hashmap做了些许改动,...原创 2020-04-02 11:24:19 · 226 阅读 · 0 评论