聊聊伪共享

在看《并发编程的艺术》的时候,在「volatile的使用优化」中提到追加字节能够优化性能,当时看的似懂非懂的。如今看到《并发编程之美》中的「伪共享」,对其原理又有了新的理解。接下来我们来聊聊伪共享。

单例设计模式

单例模式是Java中最简单的设计模式之一,属于创建型模式,提供了一种创建对象的方式。单例模式主要解决的是,⼀个全局使⽤的类频繁的创建和消费,从⽽提升提升整体的代码的性能。

代理模式

代理模式对于我们来说并不难理解,日常生活中我们经常能看到代理模式的影子。我们平时使用「智行」、「同程」等买票的时候,就是一个典型代理模式的应用。

1
我们(使用者) ----- 智行/同程(代理者) ----> 12306(被代理者)

我们不直接通过12306买票,因为这样抢票并不方便,我们通过「智行」/「同程」等第三方专业机构来帮我们买票,这些机构建来代替我们去12306买票,同时这些机构代代理买票的过程中会增强一系列功能,如:增值服务、用户消费记录等。

Java中也实现了代理模式,本文我们来讨论一下「代理模式」。

再谈反射

JVM在加载完类之后,会在方法区产生一个对应的Class类型的对象,这个对象包含了完整类的结构信息。这个对象就像一面镜子,可以反映类的内部结构,我们形象地称这种机制为「反射」。反射的使用场景有很多,比如 Spring IOC 便利用了反射机制,接下我们来聊一下反射。

线程池的简单使用

线程作为一种稀缺资源,在线程较多的情况下,频繁创建、销毁消除将会带来较大的系统开销。线程池基于池化思想,内部维护多个线程,可以对内部的线程进行统一的管理和监控,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。

双亲委派机制

JVM可以使用类加载器通过全限定类名的方式来加载一个类。类加载器在加载类的时候会使用一种称为「双亲委派」的机制来实现类的加载,本文将简要介绍双亲委派机制。

排序算法-快速排序

快速排序是一种高级排序算法,虽然他的最优时间复杂度是O(nlogn),但是其前面的常数比其他高级排序算法要小,因此比其他高级算法要快很多。

排序算法-归并排序

归并排序是一种高级排序算法,本文介绍了归并排序的 Java 实现。

Github骚操作

GitHub作为一个基于git的代码托管平台,具有全球海量的用户,其中也包含了很多价值极高的开源项目,接下来接受一下GitHub骚操作。

MySQL进阶-2-索引优化分析

MySQL进阶第二弹。