深入学习
文章平均质量分 86
CoderBruis
菜是原罪
展开
-
二进制运算以及源码、补码、反码概念讲解
前言在学习框架源码底层时,有非常多的二进制运算,由于大学学习计算机基础时抓梦脚(jio),没有学习牢固,所以在看底层源码的算法逻辑时遇到二进制运算比较吃力,遂通过一篇博文来总结下二进制运算,记录一下。正文1. 二进制基础因为计算机底层是通过二进制来进行计算的,所以在计算机底层会将十进制转换为二进制。十进制就是逢10进1,二进制就是逢2进1。就十进制来说,比如一百可以分为三位,个位、十位、百位, 用位数在下列表示 101这个十进制数。百位十位十位101因此对于十进原创 2020-07-01 13:58:38 · 4096 阅读 · 2 评论 -
深入分析 Java I/O 的工作机制
最近国内疫情已逐渐趋于稳定,我也要回归CSDN了,项目代码实操要跟上,专业知识原理的学习也不能落下。在学习Java IO工作机制时,发现一片写的非常好的博文,为了避免重复造轮子,遂拿来作为转载文章,以供自己学习。https://www.ibm.com/developerworks/cn/java/j-lo-javaio/Java 的 I/O 类库的基本架构I/O 问题...转载 2020-04-30 11:24:47 · 326 阅读 · 0 评论 -
深入解读CompletableFuture源码与原理
1 前言最近在看公司源码,发现有些服务大量使用到了CompletableFuture,学了这么久Java,对这个类还是挺陌生的,实在惭愧。于是利用了业余时间认真学习并总结了下CompletableFuture的特性以及用法。2 正文CompletableFuture是JDK8中的心特性,主要用于对JDK5中加入的Future的补充。CompletableFuture实现了Completion...原创 2019-11-28 11:24:25 · 12497 阅读 · 7 评论 -
深入学习String源码与底层(二)
前言不想成为一个只会使用API的攻城狮,也不甘于现状想深入学习JDK源码。【版本JDK1.8】在前一篇文章中,已经对String的创建和String在常量池中的对应关系进行了讲解,本片将继续深入String的源码学习。正文1. String的equals方法String源码的equals方法如下: public boolean equals(Object a...原创 2019-07-12 15:09:24 · 422 阅读 · 0 评论 -
深入学习String源码与底层(一)
前言不想成为一个只会使用API的攻城狮,也不甘于现状想深入学习JDK。【版本JDK1.8】正文1 基础1.1 String的修饰符与实现类打开String源码,可以看到String类的由final修饰的,并且实现了Serializable,Comparable,CharSequence接口。public final class String implements java.i...原创 2019-07-06 19:05:05 · 1782 阅读 · 0 评论 -
深入Spring源码系列(补充篇)——程序调用Spring源码
前言前段时间一直忙于其他事情,没空下来继续研究Spring源码。最近有空又重拾Spring源码,打算继续深入研究。之前下载好了Spring源码之后,并成功导入到IDEA中了,可是光导入源码但是没有调用Spring源码就显得特别的菜了,且不利于深入学习Spring源码。本人花了点时间来尝试使用IDEA程序调用Spring源码,遂写下这篇文章来记录下实现过程。正文在系列文章第一篇中,已经成功下...原创 2019-06-26 10:13:52 · 2569 阅读 · 11 评论 -
深入Spring源码系列(二)——深入Spring容器,通过源码阅读和时序图来彻底弄懂Spring容器(下)
前言继上一篇文章深入了解了在普通的Spring应用程序中如何创建并启动SpringIOC容器的,下面,深入学习一下在web容器中,是如何创建、初始化并启动SpringIOC容器的。Spring版本:Spring5-0-3在web容器中初始化spring容器相信读者都能够用IDE搭建出基于Spring的web应用程序,例如SSM框架(不会的百度一下吧,这里就不讲解了)。在搭建SSM框架的时...原创 2019-01-16 12:21:02 · 756 阅读 · 0 评论 -
深入Spring源码系列(二)——深入Spring容器,通过源码阅读和时序图来彻底弄懂Spring容器(上)
前言Spring版本: Spring5-0-3Spring容器就相当于一个大的水桶,里面装着很多水——bean对象。bean对象就是一个普通的pojo对象。进入正题在学习Spring容器之前,先来看看beans是怎么被加载的??下面介绍Spring最核心的两个类。DefaultListableBeanFactoryDefaultListableBeanFactory是整个bean加载...原创 2019-01-06 18:20:03 · 1943 阅读 · 2 评论 -
深入Spring源码系列(一)——导入Spring源码包
前言——万里长征的第一步要学习Spring源码,导入Spring源码到IDE是必不可少的一步,因为Spring源码各个包、各个类之间的各种关联关系非常复杂。如果仅仅是通过Spring源码文档来看,相信没多少人能坚持学下去。因此将Spring源码包导入IDE是非常必要的。本人使用IDEA较多,所以也就将Spring源码导入至IDEA中。准备工作Spring源码包下载在本地磁盘下载Spring...原创 2019-01-05 11:17:36 · 1573 阅读 · 3 评论 -
Java内存区域和常量池总结
运行时数据区运行数据区包含以下几个区域:方法区(Method Area)Java堆(Heap)本地方法栈(Native Method Stack)虚拟机栈(VM Stack)程序计数器(Program Conter Register)其中方法区和堆是所有线程共享的数据区,而其他三个区收拾线程隔离的数据区。Java虚拟机在执行Java程序的过程中将它管理的内存划分为若干个不同的区...原创 2018-12-24 22:46:42 · 997 阅读 · 0 评论 -
深入学习Java volatile关键字
前言在学习volatile之前,先需要了解并发编程的一些基础概念。并发编程的目的是为了让程序运行得更快,但是,并不是启动的线程越多就能让程序大幅度的并发执行。因为在实际开发中,并发编程将会面临大量的问题,比如上下文切换问题、死锁问题,以及受限于硬件和软件资源限制问题。上下文切换时间片是CPU分给各个线程的时间,因为时间片非常短,所以CPU将会在各个线程之间来回切换从而让用户感觉多个程序...原创 2019-01-04 09:56:03 · 291 阅读 · 0 评论 -
深入理解并总结一波Java类加载过程
编程语言发展的大步发展——代码编译的结果,从本地机器码变为字节码从Java类到JVM执行Class文件Java类会被编译为Class文件,这里,编译的过程先不去具体了解,Class文件中存储的各种信息,包括魔数、Class文件的版本、常量池、访问标志、字段表集合等等重要信息,都需要被加载到JVM中之后才能运行和使用。虚拟机会将Class文件中的描述类的数据加载到内存中,然后对数据进行校验、转...原创 2018-12-22 15:08:34 · 315 阅读 · 0 评论 -
深入学习(一)—— Servlet的运行流程和源码分析
现在市面上的框架越来越多,从SSH到SSM,再到现在的SpringBoot,微服务,技术更新迭代的速度之快,让学习者都有点应接不暇,有点被技术鞭策着,去学习最新技术的感觉。很多人,在追逐框架技术的道路上会或多或少有些迷失,包括我自己,在追逐框架技术的道路上停不下来,刹不住车。该给自己降降温了,该回头把最基本,最重要的基础-JavaWeb重温一遍了。学习了这么多框架,从SSH、SSM再到Spri...原创 2018-08-02 15:08:12 · 819 阅读 · 0 评论 -
言简意赅 - spring ioc原理,超赞博文
最近,买了本Spring入门书:spring In Action 。大致浏览了下感觉还不错。就是入门了点。Manning的书还是不错的,我虽然不像哪些只看Manning书的人那样专注于Manning,但怀着崇敬的心情和激情通览了一遍。又一次接受了IOC 、DI、AOP等Spring核心概念。 先就IOC和DI谈一点我的看法。IOC(DI):其实这个Spring架构核心的概念没有这么复杂,更不像有...转载 2018-08-06 18:51:24 · 245 阅读 · 0 评论