Java North

Java 's Blog


  • 首页

  • 分类

  • 作者

  • 归档

  • 关于

新媒体大佬粥佐罗:这样取标题会让你文章浏览量大增

发表于 2021-06-08 | 分类于 杂谈

哈喽,大家好,我是指北君。
本篇文章给大家总结自媒体大佬粥佐罗取标题技巧,看完之后再也不担心文章如何取标题了。

阅读全文 »

Zookeeper 源码分析:Leader选举

发表于 2021-06-06 | 分类于 分布式系统

大家好,我是指北君。

Zookeeper作为一个开源的分布式应用协调系统,简称 ZK。已经用到了许多分布式项目中,用来完成统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等工作,使用场景也是非常多。

面试中如何你能够对原理讲解清楚,甚至从源码的角度谈一谈,那征服面试官想必也是水到渠成的事情。

阅读全文 »

Docker是什么?--20210721

发表于 2021-06-06 | 分类于 Docker

大家好,我是指北君。

如果说个人主机时代大家都是比拼单机 CPU 主频的高低和内存的大小,那么现在的云计算时代,虚拟化技术毫无疑问是时代的主流了(进一步压榨硬件资源)。而 Docker 就是实现轻量级虚拟机技术的代表了。它实现了应用组件级别的 “一次封装,到处运行”。

阅读全文 »

从 a++ 到 乐观锁 CAS -- 20210719

发表于 2021-06-06 | 分类于 CAS

大家好,我是指北君。

上周指北君的朋友小 B,遇上了这么一道面试题:在多线程的情况下,对一个值进行 a++ 操作,会出现什么问题?

阅读全文 »

听说有人不清楚[时间复杂度],怪我。看完这篇还不清楚,那么请来怼我!--20210716

发表于 2021-06-05 | 分类于 Algorithm

大家好,指北君学习了一段时间的算法,听说有人对时间复杂度还不太清楚,那么今天它来了。

时间复杂度是是怎么定义的? 又是如何计算出来的?

指北君带你一探究竟!

阅读全文 »

了解这两个接口后,阿里多线程面试题秒AC --20210715

发表于 2021-06-05 | 分类于 JDK , JUC , 源码解读

大家好,我是指北君

我们知道,阿里面试时非常喜欢考Java多线程编程题,如果你AC不了,可能会给面试官留下一个基础不扎实的印象,影响到你offer的收割,想当年指北君面阿里时就因为秒AC了一道多线程面试题,让面试官刮目相看,所以我们需要重视Java多线程编程。

一般在解决多线程编程题时,我们都离不开JUC并发包下的各种工具类,特别是ReentrantLock锁,它能提供互斥与线程同步的能力,那它是如何获得这个能力的呢?今天指北君就来详细说说给它提供强大能力的两大接口。(PS:文末有当年指北君面试阿里的多线程编程原题以及答案喔)

阅读全文 »

听说你想学Java并发编程?先把这个学了(3) -- 20210714

发表于 2021-06-05 | 分类于 JDK , JUC , 源码解读

大家好,我是指北君。

这是AQS系列的第三篇文章,也是最后一篇,如果没看过AQS系列前两篇的童鞋,建议先去公号中的”Java并发编程”专栏中把前两篇看完。这篇主要是讲AQS是如何解决线程同步通信问题的。

我们在第一篇中说到AQS使用的是管程模型,而管程模型是使用条件变量来解决同步通信问题的。条件变量会有两个方法,唤醒和等待。当条件满足时,我们会通过唤醒方法将条件队列中的线程放入第二篇所说的同步队列中;如果不满足条件,则会通过等待方法将线程阻塞放入条件队列中。而AQS中通过ConditionObject类实现了条件变量,所以接下来我们就具体看看ConditionObject类吧。

阅读全文 »

你还在苦苦分析Spring Boot 启动错误堆栈,而不是使用故障分析器吗? --20210712

发表于 2021-06-04 | 分类于 Spring-Boot

大家好, 我是指北君。

相信大家在启动 Spring Boot 项目的时候,也遇到过由于各种各样的原因而启动失败的情况吧,显示出一大堆的错误信息,比如端口占用时会打印如下异常:

1
2
3
4
5
6
7
***************************
APPLICATION FAILED TO START
***************************
Description:
Embedded servlet container failed to start. Port 8080 was already in use.
Action:
Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.

相信大家应该很熟悉吧,多少遇到过这种情况吧。

阅读全文 »

你知道Spring Boot的彩蛋怎么设置吗?--20210709

发表于 2021-06-04 | 分类于 Spring-Boot

文稿原地址: https://www.yuque.com/wbf1013/mglhnr/ah83wl

大家好,我是指北君。

前言

今天,我给大家来讲讲在 Spring Boot 项目中,自定义 banner 的事情。有些新入门的朋友可能会不知道 banner 是什么?它在哪里? 我在哪里见过它吗? 这3连门是不是很有意思。 我们今天所说的 banner 如下图所示,想必大家在启动 Spring Boot 项目的时候,大家都见过吧。

阅读全文 »

JDK源码解析——深入函数式接口(原理篇)--20210708

发表于 2021-06-04 | 分类于 JDK , 源码解读 , JVM

大家好,函数式接口的应用篇已经给大家讲完,今天,指北君和大家一同深入探索Java实现函数式接口的原理。本篇将从编译,执行层面为大家讲解函数式接口运行的机制,让各位小伙伴更进一步加深对函数式接口的理解。

阅读全文 »

LinkedBlockingQueue 的入队与出队解析 -- 20210628

发表于 2021-06-03 | 分类于 LinkedBlockingQueue

大家好,我是指北君。

在前面的文章中,已经对 ArrayBlockingQueue 进行了一次源码分析,对它的核心源码做了分析,今天来解析一波同为 BlockingQueue 家族中的一员的 LinkedBlockingQueue。它的底层基于单向链表实现。

阅读全文 »

深拷贝和浅拷贝,看完再也不怕面试官问了 -- 20210707

发表于 2021-06-02 | 分类于 深拷贝和浅拷贝

  哈喽,大家好,我是指北君。
  本篇文章给大家介绍面试常问的深拷贝和浅拷贝,看完之后再也不担心面试官问你这道题而做不到了。

阅读全文 »

JDK源码解析——深入函数式接口(应用篇二) -- 20210705

发表于 2021-06-02 | 分类于 JDK , 源码解读

大家好,上次指北君给大家开启了函数式接口的介绍,今天,指北君将在第一篇基础上继续为大家解读函数式接口涉及到的知识点。本篇文章为函数接口的应用篇二,将会为各位小伙伴详细介绍“@FunctionInterface”注解,java.util.function包中所有接口。

阅读全文 »

并发编程大师(Doug Lea)也用的ThreadLocal -- 20210630

发表于 2021-06-02 | 分类于 Concurrency

大家好,我是指北君。

今天学习了ThreadLocal相关的知识,发现原来道哥(Doug Lea)也用ThreadLocal。既然大师们都喜欢用的,我们必须得研究起来。大师的背影总是需要追随。

那么指北君给大家安排上了,如果你拥有了Java中的ThreadLocal,那麽你可以创建一个只允许同一个线程读写的变量。 因此,即使两个线程执行了相同的代码,并且引用了相同的ThreadLocal变量,这两个线程也无法看到彼此的ThreadLocal。 可以说ThreadLocal提供了一种代码线程安全的的简单方法。

下面我们就来看看道哥都用的ThreadLocal。

阅读全文 »

ArrayBlockingQueue 入队和出队的源码分析 --20210702

发表于 2021-05-31 | 分类于 ArrayBlockingQueue , 源码解读

大家好,我是指北君。

今天我们来聊一聊以数组为数据结构的阻塞队列 ArrayBlockingQueue,它实现了 BlockingQueue 接口,继承了抽象类 AbstractQueue。

阅读全文 »

Spring Boot 为什么可以使用 Jar 包启动? --20210625

发表于 2021-05-30 | 分类于 Spring-Boot

可能很多初学者会比较困惑,Spring Boot 是如何做到将应用代码和所有的依赖打包成一个独立的 Jar 包,因为传统的 Java 项目打包成 Jar 包之后,需要通过 -classpath 属性来指定依赖,才能够运行。我们今天就来分析讲解一下 Spring Boot 的启动原理。

阅读全文 »

这个Java类使用率100%,你猜的到吗? -- 20210621

发表于 2021-05-30 | 分类于 JDK , 源码解读

哈喽,大家好,我是指北君。

“今天,天气晴,32度,今天的砖头格外烫手,对面商店的冰镇可乐和你,依然是我不敢奢求的梦。我辛苦搬了一天砖,才写好这篇文章,你说你看到了这篇文章,马上就划掉了。突然天空开始有些暗了,暗的刚刚好,我流下泪水的样子就没人看到。”

你们看到这个标题的时候,肯定在骂我,什么类这么厉害,使用率100%? 其实我不是标题党,本篇文章给大家介绍的就是JDK中所有类的父类——java.lang.Object,你说使用率是不是100%,我想任何类都逃不掉吧。

Object 类属于 java.lang 包,此包下的所有类在使用时无需手动导入,系统会在程序编译期间自动导入。Object 类是所有类的基类,当一个类没有直接继承某个类时,默认继承Object类,也就是说任何类都直接或间接继承此类,Object 类中能访问的方法在所有类中都可以调用,下面我们会分别介绍Object 类中的所有方法。

阅读全文 »

看懂Integer源码,这篇文章就够了 -- 20210623

发表于 2021-05-30 | 分类于 JDK , 源码解读

  哈喽,大家好,我是指北君。
  今天的砖比较烫手,指北君不能出去搬砖了,在家为你们肝下了这篇文章。前面介绍了 java.lang 包下的 Object 类,这是所有类的父类。本篇文章接着介绍该包下的另一个也很常用的类 Integer。

阅读全文 »

Zookeeper实现Zab协议详解 --20210618

发表于 2021-05-30 | 分类于 分布式系统

大家好,我是指北君。

之前说了立志不当最菜程序员,所以上次我们不是决定要学习下这个分布式都会用到的这个技术:Zookeeper嘛,也给大家聊了被称为是最难理解的 Paxos 算法。

不懂 Paxos 算法的那得看下我们之前的这篇文章:Zookeeper基础Paxos算法详解

今天咱指北君就更进一步,学习下这个 Zookeeper 实现的基础协议–Zab协议(Zookeeper Atomic Broadcast),也称为zk原子广播协议。

首先大家可能会有疑问,Zab和我们上一篇讲解的Paxos之间有什么区别和联系 别着急,带着这个问题接着往下看吧,后面指北君会揭晓这个问题的答案的。

阅读全文 »

Zookeeper基础Paxos算法详解 --20210616

发表于 2021-05-30 | 分类于 分布式系统

大家好,我是指北君。今天,我想学习下zookeeper,毕竟微服务这么火,立志不当最菜程序员的我也不能掉队。

但是,这个zookeepr我也没用过,只能从这个理论基础学起了,最终目的就是对它这个源码也得有个大概的了解。啥,你问我为啥要学习源码?平时也不用!! 那你要看下为啥现在刚毕业00后的都张口闭口了解各种源码了,不卷能行么,不到35就得退休了。

今天就给大家聊下,对于这个zk理论的学习。

阅读全文 »
1 … 15 16 17
Java Geek Tech

Java Geek Tech

一群热爱 Java 的技术人

328 日志
117 分类
44 作者
RSS
GitHub 知乎
Links
  • 纯洁的微笑
© 2019 - 2023 Java Geek Tech
由 Jekyll 强力驱动
主题 - NexT.Mist