大家好,上次指北君给大家开启了函数式接口的介绍,今天,指北君将在第一篇基础上继续为大家解读函数式接口涉及到的知识点。本篇文章为函数接口的应用篇二,将会为各位小伙伴详细介绍“@FunctionInterface”注解,java.util.function包中所有接口。
并发编程大师(Doug Lea)也用的ThreadLocal -- 20210630
大家好,我是指北君。
今天学习了ThreadLocal相关的知识,发现原来道哥(Doug Lea)也用ThreadLocal。既然大师们都喜欢用的,我们必须得研究起来。大师的背影总是需要追随。
那么指北君给大家安排上了,如果你拥有了Java中的ThreadLocal,那麽你可以创建一个只允许同一个线程读写的变量。 因此,即使两个线程执行了相同的代码,并且引用了相同的ThreadLocal变量,这两个线程也无法看到彼此的ThreadLocal。 可以说ThreadLocal提供了一种代码线程安全的的简单方法。
下面我们就来看看道哥都用的ThreadLocal。
ArrayBlockingQueue 入队和出队的源码分析 --20210702
大家好,我是指北君。
今天我们来聊一聊以数组为数据结构的阻塞队列 ArrayBlockingQueue,它实现了 BlockingQueue 接口,继承了抽象类 AbstractQueue
Spring Boot 为什么可以使用 Jar 包启动? --20210625
可能很多初学者会比较困惑,Spring Boot 是如何做到将应用代码和所有的依赖打包成一个独立的 Jar 包,因为传统的 Java 项目打包成 Jar 包之后,需要通过 -classpath 属性来指定依赖,才能够运行。我们今天就来分析讲解一下 Spring Boot 的启动原理。
这个Java类使用率100%,你猜的到吗? -- 20210621
哈喽,大家好,我是指北君。
“今天,天气晴,32度,今天的砖头格外烫手,对面商店的冰镇可乐和你,依然是我不敢奢求的梦。我辛苦搬了一天砖,才写好这篇文章,你说你看到了这篇文章,马上就划掉了。突然天空开始有些暗了,暗的刚刚好,我流下泪水的样子就没人看到。”
你们看到这个标题的时候,肯定在骂我,什么类这么厉害,使用率100%? 其实我不是标题党,本篇文章给大家介绍的就是JDK中所有类的父类——java.lang.Object,你说使用率是不是100%,我想任何类都逃不掉吧。
Object 类属于 java.lang 包,此包下的所有类在使用时无需手动导入,系统会在程序编译期间自动导入。Object 类是所有类的基类,当一个类没有直接继承某个类时,默认继承Object类,也就是说任何类都直接或间接继承此类,Object 类中能访问的方法在所有类中都可以调用,下面我们会分别介绍Object 类中的所有方法。
看懂Integer源码,这篇文章就够了 -- 20210623
哈喽,大家好,我是指北君。
今天的砖比较烫手,指北君不能出去搬砖了,在家为你们肝下了这篇文章。前面介绍了 java.lang 包下的 Object 类,这是所有类的父类。本篇文章接着介绍该包下的另一个也很常用的类 Integer。
Zookeeper实现Zab协议详解 --20210618
大家好,我是指北君。
之前说了立志不当最菜程序员,所以上次我们不是决定要学习下这个分布式都会用到的这个技术:Zookeeper嘛,也给大家聊了被称为是最难理解的 Paxos 算法。
不懂 Paxos 算法的那得看下我们之前的这篇文章:Zookeeper基础Paxos算法详解
今天咱指北君就更进一步,学习下这个 Zookeeper 实现的基础协议–Zab协议(Zookeeper Atomic Broadcast),也称为zk原子广播协议。
首先大家可能会有疑问,Zab和我们上一篇讲解的Paxos之间有什么区别和联系 别着急,带着这个问题接着往下看吧,后面指北君会揭晓这个问题的答案的。
Zookeeper基础Paxos算法详解 --20210616
大家好,我是指北君。今天,我想学习下zookeeper,毕竟微服务这么火,立志不当最菜程序员的我也不能掉队。
但是,这个zookeepr我也没用过,只能从这个理论基础学起了,最终目的就是对它这个源码也得有个大概的了解。啥,你问我为啥要学习源码?平时也不用!! 那你要看下为啥现在刚毕业00后的都张口闭口了解各种源码了,不卷能行么,不到35就得退休了。
今天就给大家聊下,对于这个zk理论的学习。
ReentrantLock 公平锁与非公平锁的源码分析 --20210614
哈喽,大家好,我是指北君。
今天为你带来的是 ReentrantLock 公平锁与非公平锁的分析,它是 Java 并发包下的一个实现类,实现了 Lock 接口和 Serializable 接口。
小白都能理解的原码反码补码教程 --20210611
哈喽,大家好,我是指北君。
曾几何时,指北君北原码反码补码绕的有点晕,网上教程也很多,详细的太难理解,容易理解的又有问题。于是乎指北君花了很长时间,肝出了这篇文章,目的是让一个小白看完都能彻底理解。
JDK源码解读——MethodHandle --20210609
哈喽,大家好,我是指北君。反射(Reflect)作为Java最重要的一种机制,相信大家一定都很熟悉了,今天指北君要介绍另一种和反射机制类似的方法调用机制——MethodHandle。
MethodHandle是Java7引入的一种机制,主要是为了JVM支持动态语言,
JDK源码解析——深入函数式接口(应用篇一)--20210607
Lambda表达式,相信大家都耳有所闻,而且不少小伙伴在日常的工作中也在使用。但说到函数式接口,可能有一些即使会使用Lambda表达式的小伙伴也会觉得陌生。今天,指北君就将带领大家对Lambda、及其所使用的一些和函数式接口相关的知识点进行一个全面的学习。 函数式接口所涉及的知识点包含:java.util.function包,@FunctoinInterface注解,Lambda表达式,双冒号操作符。同时,我们还将对函数式接口的实现原理进行深入的剖析。
听说你想学Java并发编程?先把这个学了(2)--20210604
大家好,我是指北君。
俗话说,铁要趁热打,指北君在写完AQS第一篇文章后,就马不停蹄的输出第二篇了,这篇主要是讲AQS是如何解决互斥问题的,如果没看过AQS系列第一篇的童鞋,建议先把第一篇看完,它是后面两篇的基础。
说到互斥,我们第一个反应是什么?锁!对,AQS就是利用的锁来解决互斥的,那我们就来看看AQS是如何实现这个锁的。
听说你想学Java并发编程?先把这个学了(1) --20210602
大家好,我是指北君。
最近在学习Java并发编程,但学了很久,总觉得差点意思,因为只会使用相关工具类,却不知实现原理,有时候写出了bug也不知道啥原因,所以指北君一怒之下,决定死磕java.util .concurrent工具包下的源码!!经过一个月的熬灯夜读,指北君总于小有所成,现在决定输出这一个月的所有收获!
JUC包下的类这么多,我们先从哪个开始呢?这个答案是唯一的,那就是AQS!
Spring Boot 入门指南 --20210601
什么是Spring Boot
Spring Boot 是 Spring 开源组织下的一个子项目,也是 Spring 组件一站式解决方案,主要是为了简化使用 Spring 框架的难度和简化 Spring 框架复杂的XML配置。使用 Spring Boot 可以很容易创建一个独立运行的、基于 Spring 的生产级应用程序,而且Spring Boot 对 Spring 平台和第三方库做了一些版本适配,这样我们就可以尽快的上手。
一网打尽 java 8 的日期用法 -2022-01-22
java 已经出到 17 了,而小编还在用 8 的版本,在 8 中已经推出了新的日期 API,不在使用 。java.time 包下提供了用于日期、时间、实例和周期的主要 API。