Java中的Unsafe Java和C++语言的一个重要区别就是Java中我们无法直接操作一块内存区域,不能像C++中那样可以自己申请内存和释放内存。Java中的Unsafe类为我们提供了类似C++手动管理内存的能力。 Unsafe类,全限定名是sun.misc.Unsafe,从名字中我们可以看出来这个类对普通程序员来说是“危险”的,一般应用开发者不会用到这个类。
Reactor线程模型及其在Netty中的应用
Java中的四种引用类型 Java中有四种引用类型:StrongReference(强引用),SoftReference(软引用),WeakReference(弱引用),PhantomReference(虚引用)。这四种引用的强度按照上面的顺序依次减弱。强引用就是我们通常使用的引用类型,如果在GC Roots引用链上有一个强引用能够到达一个对象,那么这个对象就不会被垃圾回收。如果一个对象的引用为软引用,则垃圾收集器会视内存使用情况来决定是否回收对象:如果内存足够则不回收对象,否认回收。而弱引用则不相同:垃圾收集器不管内存是否足够只要一个对象只有一个弱引用,就回收对象。虚引用不会决定对象的生命周期,垃圾收集器任何时候都可以回收虚引用引用的对象。
实现分布式锁 Java中的锁主要包括synchronized锁和JUC包中的锁,这些锁都是针对单个JVM实例上的锁,对于分布式环境如果我们需要加锁就显得无能为力。在单个JVM实例上,锁的竞争者通常是一些不同的线程,而在分布式环境中,锁的竞争者通常是一些不同的线程或者进程。如何实现在分布式环境中对一个对象进行加锁呢?答案就是分布式锁。
浅析Java NIO
ThreadLocal解析
Java Object类的各个方法
Java类加载机制 Java中一个类的生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(Unloading)七个阶段。其中准备、解析和初始化统称为连接。七个阶段的顺序如下:
初识Java内存模型
Java垃圾回收机制 Java语言是一门自动内存管理的语言,不再需要的对象可以通过垃圾回收自动进行内存释放。