Spring源码阅读(一)如何阅读Spring源码?

前言Spring源码,永远滴神!本来不是很想写这个系列的,因为我觉得阅读源码,学习源码是一件很基础的事情,程序员在面对一个神奇的黑盒的时候,研究其的输入输出只是一个基本的学习手段,我们只能做到推测它内部发生了什么,却不能将其利用,扩展,以及自己实现,这种程度的学习是很难让人尽兴的,这个时候对源代码的


JVM学习(四) 手动编译Windows版及Linux版OpenJDK14

前段时间发现《深入理解Java虚拟机》于去年12月出第三版了,这次由第二版的jdk6升级到了jdk11,于是兴致勃勃的找了电子版来拜读了一下(本来是想买的,但是小出租屋,实体书太多实在放不下了...之后一定补票),受益匪浅。感觉比第二版讲的清晰了太多,而且补充了很多JVM未来可能推出的新特性,比如L


NIO学习笔记(一)Buffer初探

概述由于疫情的原因,加上梯子全炸了,所以自己想造点轮子来玩玩,在家里学习了一直想学习的Nio,网络相关知识,在这里整理一些笔记。之前也断断续续接触过Nio,但是每次都很难坚持学下去,一方面是工作中目前用不上,学了也会忘记,另一方面是Java这套原生的NIOAPI设计上不是很好用,学习使用难度比较大.


最近十分频繁的碎碎念x4

原本碎碎念系列是发布在QQ空间的,但是由于这次可能篇幅比较长,而且最近和谐的也是越来越厉害了,不适合写长篇大论,因此这次就发布到博客里吧。反正基本上内容也就是折腾一些乱七八糟的东西。成功解决谷歌云Proxy无效的疑惑最近不怎么写技术笔记了,是因为在做实际的个人项目,一个自动检测、备份B站收藏夹视频的


Java多线程(五)——线程等待/通知机制之条件变量(二)

上一章节的最后,我们提到了Object提供的wait/notify的一些不足,主要有以下几点:notify只会随机唤醒等待在锁上的任意一个线程,并不一定是我们想要唤醒的。notifyAll会将全部等待在锁上的线程唤醒,虽然while(!保护条件)代码块保证了在全部唤醒线程时,被提前唤醒的线程不会执行


Java多线程(四)——等待,并心怀希望吧。线程的等待/通知机制(一)

等待/通知机制今天我们来看Java多线程的等待——通知机制。多线程的环境下,往往有这么一种需求,当某个线程执行到某个地方的时候,需要来自其他线程的数据,但我们又无法确定它是否已经准备就绪,你想让其他线程在准备好数据之后,给你打个招呼,在这之前,你就先等一会,等他招呼来了,你再继续执行。有的同学肯定第


Java多线程(三)——中断线程

今天我们继续来看多线程。中断线程概述要想中断一个正在执行中的线程,在远古时期Thread提供了一个方法,stop(),但他由于会造成很多问题,现在已经不推荐使用了。我初略看了一下stop的源码注释,大意讲的是stop()方法用于强制结束线程,但他天生不安全,如果一个线程使用stop方法结束,会导致其


对于前后端分离时,用户权限设计的一点思考

在模板引擎时代,对于用户权限的管理是后台的事情,无论是对于API的请求限制,还是对页面内容渲染的控制,比如对按钮级别的元素进行显示与隐藏,这些在模板引擎中都不是问题,各个模板引擎也开发了大量标签,帮助我们对页面上要显示的内容进行控制。但如今前后端分离的开发方式已经流行很长一段时间了,前后端各司其职,


Java多线程(二)——守护线程,以及Java线程的“父子关系”

上一篇文章里,我们知道了,当线程对象被创建时如果不指定线程组,构造器会默认指定当前线程所在的线程组作为新线程的线程组,在线程组的层面上,子线程和父线程实际上是平级的,并没有实际上的区别。守护线程今天我们来看看守护线程。守护线程本身很简单,只要在线程start方法执行之前,为线程对象设置setDaem


Java多线程基础(一)——线程和线程组

工作中很少真正用到多线程,毕竟CRUD就完事了,但是作为一名Coder,还是很想弄明白底层的一些东西,之前也看过《Java并发编程实战》,但由于没有总结输出,以至于看了就忘==。前几天在学习JVM的类加载器的时候,发现线程里有一个getContextClassLoader()方法,心想着是时候对Th