DragonflyDavid

61
获赞数
2
关注数
19
粉丝数
IP 属地江苏
2020-03-11 加入
浏览 7.5k

尽心,知命

182 声望|学徒
netty
36
epoll
21
20
thread
18
mysql
18
黄金勋章
暂未获得该勋章
如何获得
白银勋章
暂未获得该勋章
如何获得
个人动态
  • 发布了文章2020-05-05
    Spring框架06-Spring声明式事务
    编程式事务:在业务代码中添加事务控制代码,这样的事务控制机制就叫做编程式事务    声明式事务:通过xml或者注解配置的⽅式达到事务控制的⽬的,叫做声明式事务
  • 发布了文章2020-05-05
    Spring框架05-IoC循环依赖
    Spring IoC 循环依赖问题 什么是循环依赖 循环依赖其实就是循环引⽤,也就是两个或者两个以上的 Bean互相持有对⽅,最终形成闭环。⽐如A 依赖于B,B依赖于C,C⼜依赖于A 注意,这⾥不是函数的循环调⽤,是对象的相互依赖关系。循环调⽤其实就是⼀个死循环,除⾮有终...
  • 发布了文章2020-05-05
    Spring框架04-AOP应用
    在讲解AOP术语之前,我们先来看⼀下下⾯这两张图,它们是一个案例需求的扩展(针对这些扩展的需求,我们只进⾏分析,在此基础上去进⼀步回顾AOP,不进⾏实现)
  • 发布了文章2020-04-19
    Spring框架03-IOC应用
    通常,我们称BeanFactory为SpringIOC的基础容器ApplicationContext是容器的⾼级接⼝,⽐BeanFactory要拥有更多的功能,比如说国际化支持和资源访问(xml,java配置类)等等
  • 发布了文章2020-04-17
    设计模式篇
    在学习源码的过程中不可避免的涉及到了很多设计模式,其实在我们自己开发中也会不自觉的使用设计模式。设计模式其实是对开发设计的一种落地方法,它属于实现层面。设计模式将代码设计的一些范例进行了抽象和总结
  • 发布了文章2020-04-17
    Spring框架02-核心思想IOC和AOP
    注意:IOC和AOP不是spring提出的,在spring之前就已经存在,只不过更偏向于理论化,spring在技术层次把这两个思想做了⾮常好的实现(Java)
  • 发布了文章2020-04-17
    Spring框架01-Spring概述
    Spring 是分层的 full-stack(全栈) 轻量级开源框架,以 IoC 和 AOP 为内核,提供了展现层 SpringMVC 和业务层事务管理等众多的企业级应⽤技术,还能整合开源世界众多著名的第三⽅框架和类库,已经成为使⽤最多的 Java EE 企业应⽤开源框架
  • 发布了文章2020-04-15
    多线程与高并发13-Java8并发新特性
    JDK1.8时,java.util.concurrent.atomic包中提供了一个新的原子类:LongAdder根据Oracle官方文档的介绍,LongAdder在高并发的场景下会比它的前辈AtomicLong 具有更好的性能,代价是消耗更多的内存空间
  • 发布了文章2020-04-14
    多线程与高并发12-JMM和底层实现原理
    Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。Java1.5版本对其进行了重构,现在的Java仍沿用了Java1.5的版本。Jmm遇到的问题与现代计算机中遇到的问题是差...
  • 发布了文章2020-04-14
    多线程与高并发11-并发安全
    线程安全栈封闭:把对象封装在一个线程里,只有这个线程才能看到,无全局变量无状态:没有任何成员变量的类,就叫无状态的类,这种类一定线程安全让类不可变:类中的成员变量加上final关键字,不提供修改成员变量的地方,但是成员变量中如果有对象,final关键字也不...
  • 发布了文章2020-04-13
    多线程与高并发10-线程池
    其实在真正的开发中,高并发的情形并直接用多线程,而是用线程池技术的地方比较多,线程的池化技术有很多好处,JDK也提供了线程池相关的类,下面将深入展开进行介绍
  • 发布了文章2020-04-11
    多线程与高并发09-并发容器(二)
    TreeMap和TreeSet使用红黑树按照key的顺序(自然顺序、自定义顺序)来使得键值对有序存储,但是只能在单线程下安全使用;多线程下想要使键值对按照key的顺序来存储,则需要使用ConcurrentSkipListMap和ConcurrentSkipListSet,分别用以代替TreeMap和TreeSet,存入的...
  • 发布了文章2020-04-11
    多线程与高并发08-并发容器(一)
    就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单...
  • 发布了文章2020-04-09
    多线程与高并发07-一道有趣的面试题目
    一道有趣的面试题 前面学习了多线程中的各种多线程工具类,还是锁的使用,下面来看一道有趣的面试题目,让大家有机会尝试使用前面的各种多线程工具类和锁 题目 请写一个程序,让两个线程交替输出“ABCDEF”和“123456”,输出结果为固定“A1B2C3D4E5F6” 解法 Talk is chea...
  • 发布了文章2020-04-09
    多线程与高并发06-显示锁和AQS
    Java程序是靠synchronized关键字实现锁功能的,使用synchronized关键字将会隐式地获取锁,但是它将锁的获取和释放固化了,也就是先获取再释放,而不需要我们手动的进行获取和释放,使用起来也更加方便,也不用担心由于某种异常场景没有释放锁
  • 发布了文章2020-04-06
    多线程与高并发05-原子操作CAS
    实现原子操作可以使用锁,锁机制,满足基本的需求是没有问题的了,但是有的时候我们的需求并非这么简单,我们需要更有效,更加灵活的机制,synchronized关键字是基于阻塞的锁机制(锁升级),也就是说当一个线程拥有锁的时候,访问同一资源的其它线程需要等待,直到该...
  • 发布了文章2020-04-05
    多线程与高并发04-线程的并发工具类
    设置一个初始值,然后await,减到0,自动往下走门闩,CountDownLatch这个类能够使一个线程等待其他线程完成各自的工作后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有的框架服务之后再执行
  • 发布了文章2020-04-05
    多线程与高并发03-生产者消费者试题
    采用多线程技术,例如wait/notify,设计实现一个符合生产者和消费者问题的程序,对某一个对象(枪膛)进行操作,其最大容量是20颗子弹,生产者线程是一个压入线程,它不断向枪膛中压入子弹,消费者线程是一个射出线程,它不断从枪膛中射出子弹。
  • 发布了文章2020-04-04
    多线程与高并发02-线程基础(二)
    线程之间相互配合,完成某项工作,比如:一个线程修改了一个对象的值,而另一个线程感知到了变化,然后进行相应的操作,整个过程开始于一个线程,而最终执行又是另一个线程。前者是生产者,后者就是消费者,这种模式隔离了“做什么”(what)和“怎么做”(How),简单的...
  • 发布了文章2020-04-04
    多线程与高并发01-线程基础(一)
    基础概念 进程和线程 进程是程序运行资源分配的最小单位 线程是CPU调度的最小单位,必须依赖于进程二存在 任何程序都必须创建线程,Java程序的main函数就会创建一个主线程 Linux下一个进程最多只能开1000个线程,新线程分配栈空间1M CPU核心数和线程数关系 多线程: S...