随笔分类 - Java基础
摘要:什么是ThreadLocal?它有什么作用? ThreadLocal 被称为 线程局部变量 ,每个线程可以创建属于其 独享 的对象,一个线程不能访问另外一个对象创建的实例,达到里 线程隔离 效果。 ThreadLocal相当于线程访问其线程特有对象的代理(Proxy),就是说每个线程都可以通过其创建
阅读全文
摘要:一. Functional 二. Consumer 三. Supplier 四. Predicate
阅读全文
摘要:一、线程的生命周期图示 二、Java线程的状态 2.1 Thread里的枚举State 在Java.lang.Thread里,有个内部枚举: State,一个线程在某一时刻可以是State里的一种状态。 2.2 NEW 已经创建了一个线程,但是还未被启动的状态。由于一个线程实例只能被启动一次,因此
阅读全文
摘要:一、传统写法 有一个SKU对象,里面包含一个skuId和一个price对象,price对象里面有市场价和成本价。假如现在有个需求,获取sku里面的mallPrice,并且返回。 毫无疑问,NPE相信每个程序员都不可能没遇到过。jdk1.8以前一般是这么写: 其实在真实项目中,这种写法实在是太普遍了,
阅读全文
摘要:对Java中interrupt、interrupted和isInterrupted的理解 一、示例 输出: 本示例新建了一个线程,用主线程启动,主线程睡1s,再调用子线程的interrupt()方法,子线程由于也在睡着,被打断后,输出子线程中断状态。 这里子线程的isInterrupted()方法返
阅读全文
摘要:读写锁性能之王 —— StampedLock 一. StampedLock概述 1.1 简介 StampedLock是JDK1.8中新增的一个读写锁,也是对JDK1.5中的读写锁ReentrantReadWriteLock的优化。 主要包括读写锁之间的转换及更加细粒度并发控制等,前者提供的是不可重入
阅读全文
摘要:JDK的并发List之CopyOnWriteArrayList 1.介绍 CopyOnWriteArrayList是一个 线程安全 的ArrayList,它的写操作都是在底层的一个复制数组(快照)中进行的,也就是使用了 写时复制策略 。 什么是写时复制策略? 通俗易用地讲,不同进程访问同一资源的时候
阅读全文
摘要:foreach循环 foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素。Java语言从 JDK 1.5.0 开始引入foreach循环。在遍历数组、集合方面,foreach为开发人员提供了极大的方便。通
阅读全文
摘要:JDK动态代理 说到java自带的动态代理api,肯定离不开反射。JDK的Proxy类实现动态代理最核心的方法: 这个方法的作用:在运行时,动态创建一组指定接口的实现类对象。其中的三大参数: ClassLoader loader 类加载器,主要作用是用来加载类的,把.class文件加载到jvm的方法
阅读全文
摘要:Java类的初始化顺序 在开发中,知道Java类的初始化顺序才能让我们更加清楚地掌握程序的执行流程。先把结论贴出来,Java里,从图里的1~6,分别按顺序执行。 以下为代码验证阶段,一共三个类:基类(Base)、子类(Sub)和工具类(Log,输出日志
阅读全文


浙公网安备 33010602011771号