摘要:
Log4j系列参考文章: 1、升级过log4j,却还没搞懂log4j漏洞的本质? - 华为云开发者联盟 - 博客园 (cnblogs.com) 2、log4j漏洞成因和原理(JNDI和LDAP)_jndi ldap_Koikoi123的博客-CSDN博客 3、【紧急】Log4j又发新版2.17.0, 阅读全文
摘要:
Log4j系列参考文章: 1、升级过log4j,却还没搞懂log4j漏洞的本质? - 华为云开发者联盟 - 博客园 (cnblogs.com) 2、log4j漏洞成因和原理(JNDI和LDAP)_jndi ldap_Koikoi123的博客-CSDN博客 3、【紧急】Log4j又发新版2.17.0, 阅读全文
摘要:
36 package cn.com.pep; 37 import java.util.concurrent.TimeUnit; 38 import java.util.concurrent.locks.AbstractOwnableSynchronizer; 39 import java.util. 阅读全文
摘要:
package cn.com.pep; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutExcep 阅读全文
摘要:
AOP的定义:AOP(Aspect Oriented Progamming)利用称为"横切"的技术,剖解开封装的对象内部,把多个类的公共行为封装到一个可重用模块中,便于减少重复代码,降低模块之间的耦合度,符合“开闭原则”。 上面这段关于AOP的定义是从网上抄的,是不是很拗口,我们就结合实际开发来先简 阅读全文
摘要:
今天我们来学习下模板方法设计模式。 模板方法(Template Method Pattern):抽象的父类中定义一个操作中算法的骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。简单地讲,就是“父类的模板方法定义不变的流程,子类重写流程中的方法”。 阅读全文
摘要:
在上一篇文章多线程并发(一)中我们通过acquire()详细地分析了AQS中的独占锁的获取流程,提到独占锁,自然少不了共享锁,所以我们这边文章就以AQS中的acquireShared()方法为例,来分析下并发编程中共享锁的获取与释放吧,获取共享锁的大体流程和获取独占锁一样,但是因为共享锁可以被多个线 阅读全文
摘要:
谈到java中的并发,我们就避不开线程之间的同步和协作问题,谈到线程同步和协作我们就不能不谈谈jdk中提供的AbstractQueuedSynchronizer(翻译过来就是抽象的队列同步器)机制; (一)、AQS中的state和Node含义: AQS中提供了一个int volatile state 阅读全文
摘要:
外观模式(facadePattern)又叫门面模式,隐藏了子系统的复杂实现,为子系统中的一组接口提供了一个统一的访问入口,使得子系统容易被访问或使用,说白了就是把复杂的子系统封装成一个接口供给外部用户更简单地使用,这也是一种结构型设计模式。 模式结构图: 此模式中涉及的三种角色: 1、门面角色(Fa 阅读全文
摘要:
在面向对象的程序设计中,模块之间交互采用接口编程,通常情况下调用方不需要知道被调用方的内部实现细节,因为一旦涉及到了具体实现,如果需要换一种实现就需要修改代码,这违反了程序设计的"开闭原则"。所以我们一般有两种选择:一种是使用API(Application Programming Interface 阅读全文
摘要:
继续把我们的设计模式捡起,希望我能坚持完这个系列吧,下面我们就进入正题吧。 在软件开发过程中,我们需要重复使用某个对象的时候,如果重复地new这个对象,不停地申请内存空间,会造成内存空间的极大浪费,在之后程序运行过程中也可能会产生大量的垃圾对象,给服务器的垃圾回收带来极大压力,那么我们从软件设计的角 阅读全文
|