java基础知识
文章平均质量分 92
不是因为坚持只是因为喜欢
persue constantly.
展开
-
从源码探究 1.8 ConcurrentHashMap 的几个使用过程中想到的问题
前言 水平有限,尽量深入 主要关注的点 ConcurrentHashMap 的底层结构 如何保证并发 put 安全(cas 和 synchronized 的使用) get 方法优化 如何扩容 链表转红黑树的时机 使用 ConcurrentHashMap 中的一些疑问解析 ConcurrentHashMap 的底层结构 如何保证并发 put 安全 ...原创 2020-03-05 01:03:08 · 178 阅读 · 0 评论 -
ThreadLoca的原理以及使用过程中为什么会出现内存泄漏
一、ThreadLocal的实现 ThreadLocal源码: public class ThreadLocal<T> { private final int threadLocalHashCode = nextHashCode(); private static AtomicInteger nextHashCode = new AtomicInt...原创 2019-03-11 01:51:26 · 636 阅读 · 0 评论 -
java中的弱引用 WeakReference
前言 最近在看ThreadLoca的实现机制,发现ThreadLocalMap的key是弱引用对象,下面针对弱引用做了一些简单的测试。 jvm GC的可达性分析算法 理解弱引用,需要先简单了解些jvm gc的一种方法:可达性分析算法 可达性分析法定义了一系列称为"GC Roots"的对象作为起始点,从这个起点开始向下搜索,每一条可达路径称为引用链,当一个对象没有任意一条引用链可以到达"GC Roo...原创 2019-03-10 16:42:23 · 407 阅读 · 0 评论 -
java8Stream操作
前言 Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、...原创 2019-01-15 22:47:10 · 664 阅读 · 0 评论 -
JAVA8 函数式编程—function包接口梳理
前言 函数式接口(Functional Interface)是Java 8对一类特殊类型的接口的称呼。 这类接口只定义了唯一的抽象方法的接口,并且这类接口使用了@FunctionalInterface进行注解。在jdk8中,引入了一个新的包java.util.function, 可以是java 8 的函数式编程变得更加简便。这个package中的接口大致分为了以下四类: Function: 接收...原创 2019-01-15 17:20:53 · 562 阅读 · 0 评论 -
初探java8的时间API
JAVA8之前时间API的不足 Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义。 java.util.Date同时包含日期和时间,而java.sql.Date仅包含日期,将其纳入java.sql包并不合理。另外这两个类都有相同的名字,这本身就是一个非常糟糕的设计。 java.util.Date这个...原创 2019-01-10 10:30:47 · 424 阅读 · 1 评论 -
Fork/Join框架—以分治的思想使用线程
前言 Fork/Join框架依赖于分治的思想,在了解Fork/Join之前需要先了解分治的思想和线程池技术(ThreadPoolExecutor)在分治思想下难以解决的问题 一、分治法 字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 举个例子,现在我们要计算从1累加到10000的值,利用分治法我们...原创 2019-01-12 23:35:22 · 345 阅读 · 1 评论 -
动态代理(jdk动态代理)
1、jdk动态代理 jdk的动态代理依赖 Proxy类和InvocationHandler接口实现 Proxy这个类的作用就是用来动态创建一个代理对象的类 InvocationHandler接口:InvocationHandler 是代理实例的调用处理程序实现的接口。每个代理实例都具有一个关联的调用处理程序。对代理实例调用方法时,将对方法调用进行编码并将其指派到它的调用处理程序的 invok...原创 2018-07-22 18:08:19 · 98 阅读 · 0 评论