自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

皇甫嗷嗷叫

公众号 | 源码学徒

  • 博客(83)
  • 资源 (5)
  • 收藏
  • 关注

原创 Netty的ChannelPipline传播源码解析

上一章节 ,我们基本讲述了Netty对于新连接接入与管道数据处理的源码解析,大家可能发现,在我们前面学习中,涉及到了很多的有关pipeline的操作,在前面介绍这些的时候,我为了保证主线逻辑的清晰,基本都是一概而过,本章节将对pipeline做一个详细的讲解!一、基础铺垫1. JAVA中的基本位运算符运算符描述&与|或~非^异或<<左移>>右移2. 位运算解释与实例&(与)十进制二

2021-08-03 08:30:49 224

原创 Netty服务端的新连接接入源码解析

经过上一章节的学习,我们基本了解了Netty是如何对IO事件以及异步任务的处理了,今天我们就一起来学习一下,Netty是如何处理新连接接入与数据读取的!一、源码寻找我们上一章节学到了,当存在IO事件的时候,Netty的反应堆线程会监听这些事件,然后进行处理,忘记的,可以回顾一下上一章节,,我们这里直接进入到:io.netty.channel.nio.NioEventLoop#processSelectedKey(java.nio.channels.SelectionKey, io.netty.cha

2021-08-02 09:45:35 219

原创 Netty的异步任务处理与Socket事件处理

经过前面几章的学习,我们基本是明白了Netty通道的创建、注册、与绑定与JDK NIO的对应关系,如果我们使用的是JDK NIO的方式去开发一个Socket服务端的时候,此时还缺少了一个重要的环节,就是循环处理IO事件!我们前面不只一次的见到Netty的异步事件,因为我们某些知识还没有学习到,所以我们都按照同步的方式去获取的,所以我们本章节将带你学习,Netty对于IO事件的处理与异步事件的处理!我们以绑定为出发点,由点到面进行分析!一、源码入口我们直接进入到绑定的源码分析:private sta

2021-07-21 08:32:30 528 1

原创 NioServerSocketChannel的绑定源码解析

前面两节课,我们着重分析了 initAndRegister方法,对通讯通道的创建、初始化以及注册到选择器上有了一个详细的介绍,回想JDK NIO的开发步骤,我们需要获取SocketChaennel、获取选择器Selector、将通道注册到选择器、绑定端口、处理事件!那么同样的Netty是基于NIO开发的,也同样少不了这几个步骤,迄今为止,我们已经学习了,Selector的创建、SocketChannel的创建、选择器的注册,今天我们要学的就是通道的绑定端口!欢迎关注公众号【源码学徒】一、源码入口我们回到

2021-07-14 14:40:48 161

原创 NioServerSocketChannel的注册源码解析

我们上一章分析了Netty中NioServerSocketChaennl的创建于初始化,本章节将继续分析NioServerSocketChannel的分析,NioServerSocketChannel是Netty官方封装的一个通道对象,旨用来代替或者包装JDK原生的SocketChannel对象,那么他是如何讲NioServerSocketChannel于JDK的NIO相关代码关联起来的呢?欢迎关注公众号【源码学徒】一、源码入口寻找我们上一节课主要分析的源码方法是initAndRegister方法,其实

2021-07-09 09:13:38 272 4

原创 NioServerSocketChannel的初始化源码

源码分析上一节课我们就NioEventLoop的初始化进行了一个初步的讲解,他是Netty很重要的一个类,后面还有针对它的分析,大家先对我前面介绍的组件有一个初步的认识!仔细的看,看到后面会有一种豁然开朗的感觉!我们这一节课学习服务端的ServerSocketChannel的初始化源码,首先,我们还是老规矩,我告诉你你从哪里找,他是如何一步一步调用到ServerSocketChannel的,然后在进行分析!一、入口寻找首先,我们大家再开发Netty服务端的时候,都会有这样几行代码:ServerBo

2021-07-06 13:45:47 218

原创 多线程协作处理数据读写

经过前面几章的学习,我们已经 能够掌握了JDK NIO的开发方式,我们来总结一下NIO开发的流程:欢迎关注公众号【源码学徒】创建一个服务端通道 ServerSocketChannel创建一个选择器 Selector将服务端通道注册到选择器上,并且关注我们感兴趣的事件serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);绑定服务管道的地址 serverSocketChannel.bind(new InetSocketAddres

2021-07-02 09:36:16 368

原创 NIO中的开发利器ByteBuffer源码解析

想要使用NIO开发Socket分服务端和客户端,必须掌握的一个知识点就是ByteBuffer的使用,他是NIO再数据传输中的利器!相比于BIO传输过程中的字节流,ByteBuffer更能体现出服务端/客户端对于数据的操作效率,ByteBuffer内存维护一个指针,使得传输的数据真正的能够达到重复使用,重复读写的能力!主要API和属性他是对于Buffer的一个默认实现,具体主要的属性和方法我们需要看Buffer类:主要属性//指针标记private int mark = -1;//指针的当前位置

2021-06-25 17:18:37 382 3

原创 深入分析NIO的零拷贝

本章还是关于NIO的概念铺底,有关NIO相关的代码,我还是希望大家闲余时间取网上找一下有关使用JDK NIO开发服务端、客户端的代码,我会取写这些,但是具体的代码我不会很详细的取介绍,下一章的话可能就要上代码了,具体的规划如下:讲一下NIO基础API的使用、分析Netty的核心思想,使用Reactor模式仿写一个多线程版的Nio程序、再然后就是关于Netty的源码分析了!欢迎关注公众号【源码学徒】回归正题,NIO的高性能除了体现在Epoll模型之外,还有很重要的一点,就是零拷贝!首先大家要先明白一点,所

2021-06-25 14:12:09 262 1

原创 深入Hotspot源码与Linux内核理解NIO与Epoll

一、为什么必须去了解NIO首先你需要之后Netty的主要实现手段就是Nio,很多人一直学不明白Netty,根本原因是 除了日常开发中很难能够实践,很大一部分原因是不熟悉NIO,事实上真正熟悉了NIO和它背后的原理之后,去查看Netty的源码就有如神助!我们今天就从最基本的IO、以及NIO学起!后续会跟新Netty源码系类的文章,有兴趣的小伙伴可以关注公众号 【源码学徒】二、操作系统是如何定义I/O的I/O相关的操作,详细各位从事java的人员并不陌生,顾名思义也就是Input/Output,对应着连个

2021-06-24 09:18:40 252

原创 一个Spring Bean从诞生到逝去的九次人生转折!

关于Spring生命周期的学习,前面已经写过很多篇文章去不断的探究Spring对一个Bean的创建、管理过程,在整个SpringBean的生命周期中,BeanPostProcessor是不可绕过的一环,他几乎贯穿了整个Spring Bean的生命周期!几乎我们现在所熟知Bean的生命周期的功能,大部分都是由BeanPostProcessor完成的!比如,依赖注入、循环依赖问题、Aop等,全部都是由BeanPostProcessor的扩展实现的!BeanPostProcessor的学习是我们理解Spring

2020-10-01 13:04:34 286

原创 跳出源码地狱,Spring巧用三级缓存解决循环依赖-原理篇

一、循环依赖所产生的原因在探讨Spring三级缓存解决循环引用之前,我们需要了解一点就是Spring所谓的循环依赖到底是什么,是如何产生的,为什么会产生这种问题?这就是经典的一个循环引用的问题,一个类的实例化依赖另外一个类,如果我们不使用Spring管理这两个bean而是自己手动创建,这种循环引用的方式实现极其简单:为什么Spring解决循环依赖比较麻烦呢?因为Spring创建一个Bean是需要通过反射来构建的,构建过程中无法感知这个类具体是什么类型的,它只能够实例化一个填充一个实体!于是:创

2020-09-25 14:14:18 807 1

原创 Spring:没有人比我更懂Java对象的创建!

一、开篇一问一个Spring Bean是Java对象吗?那么一个对象是Spring Bean吗?带着这个问题我们一起来回顾Spring的生命周期流程,彻底了解一个类在Spring中究竟做了那些操作!我们先看一段代码!诚然,相信只要是使用过Spring的人都应该知道,从Spring容器中获取的对象,里面的EmailServiceImpl是被Spring自动注入了的!但是相同的点是,他们两个都是一个Java对象,都是加载在JVM里面的,那么至少我们现在可以回答的问题了:SpringBean一定是一

2020-09-24 08:44:46 454

原创 带你跳出源码地狱,从原理上理解MyBatis对Spring源码的扩展实现

注意今天的文章只会对原理进行分析,可能会涉及少部分代码,但是不会太多,具体的源码分析,请移步牛逼哄哄的Spring是怎么被MyBatis给征服了? ! 建议先阅读本文章,了解原理之后再去观看源码,效果会稍微好一点!今天我们大概从以下几点去讲解MyBatis对于Spring的一个扩展思路!一、FactoryBean是干什么?首先我们至少要知道一个事情,就是FactoryBean的一个大致结构:可以看到,整个 FactoryBean有三个方法:getObject(): 返回具体创建的真实对象!

2020-09-17 09:07:44 210

原创 记一次向Spring官方提交PR的失败经历

一、事情始末周末无聊在家,打开Spring源码,想再温习一遍之前学习过的流程,忽然看到一段代码,就是在执行BeanFactoryPostProcessor的逻辑中我发现了这样奇怪的一幕:于是我就把代码改成这个样子(草率了)于是乎,整个代码都简便多了,当时随手写了一个测试类,没报错就直接提交到Spring项目上了,然后申请合并了,当我怀着激动地心,颤抖的手,提交完成之后,一天我都十分亢奋,是不是的打开github,看看作者回复了我没有!二、终于,草率了!到了下午三四点左右的时间,作者回复我了(都

2020-09-12 08:37:26 268

原创 你知道Spring中BeanFactoryPostProcessors是如何执行的吗?

了解了BeanDefinition以及生命周期的大概概念之后,我们班可以试着看一下源码!我们上一章也说到,BeanFactoryPostProcessors的执行时机是:在扫描完成之后,实例化之前! 那么我们看一下Spring是如何去回调BeanFactoryPostProcessors的呢?org.springframework.context.support.AbstractApplicationContext#refreshorg.springframework.context.support.A

2020-09-11 08:36:18 604 1

原创 想要学会Spring源码,你必知必会的BeanDefinition原理!

一、BeanDefinition浅析1. 基本概念了解首先我提出一个问题:一个java对象和一个Spring Bean有什么区别?这是一个经典的面试题,什么是java Object?万物皆对象,在Java内部所有的类,经过创建之后都可以称之为一个对象,SpringBean也是一个java Object, 但是Spring Bean是脱离于JAVA Object的,为什么这么说呢?因为一个class要想变成对象只需要new一下,就能够称之为一个对象,但是一个类要想变成一个Spring Bean就需要经过

2020-09-10 09:23:15 289

原创 急速入门Docker使用大法

一、基础命令1. 帮助命令docker --version # 显示docker的版本信息docker info # 显示docker的系统信息docker 命令 --help # 显示帮助命令2. 镜像命令2.1 搜索镜像# 搜索镜像docker search mysql# 条件过滤搜索结果docker search --filter=STARS=5000列表解释NAME: 镜像名称DESCRIPTION: 镜像介绍STARS: 镜像的starsOFFI

2020-09-07 09:41:02 128

原创 面试问倒无数人的Spring事务问题,就被你这样说完了?

一、随便聊聊又是一周过去了,对于这周的收获你还满意吗?相信一直看我文章的小伙伴都知道,Spring源码精读系列的文章已经写了好多篇了,今天依旧是和以前一样,我们来分析Spring对于事务的管理!使用过Spring的小伙伴都应该知道,Spring可以通过配置或者再方法上加一个@Transactional注解,然后Spring就能够自动的对里面的JDBC操作进行管理,或提交或回滚!可能有些阅读过部分源码或者看过一切类似的文章的额同学应该知道他是基于AOP完成的对事务的管理,但是对于其实现的细节却不是很明白,

2020-08-30 18:38:45 638

原创 牛逼哄哄的Spring是怎么被MyBatis给征服了?

其实前几篇文章已经写了好多有关于Spring源码的文章,事实上,很多同学虽然一直在跟着阅读、学习这些Spring的源码教程,但是一直都很迷茫,这些Spring的源码学习,似乎只是为了面试吹逼用,我大概问过一些同学,很多同学看了很长时间的Spring但是依旧不知道如何将这些学到的知识运用到实际的案例上!其实这个问题很好解决,如果你在开发中很少能够遇见需要Spring扩展时,不妨把目光放到一些依托于Spring的项目,看看它们是如何运用Spring的扩展点的。对于Spring的学习,我认为最终真正学会的一定是

2020-08-24 18:05:44 176 1

原创 Spring中眼见为虚的 @Configuration 配置类

一、前言在这里我不得不感慨Spring的代码的完善与优秀,从之前看源码迷迷糊糊到现在基本了解Spring的部分源码后,愈来愈发现Spring开发者的思虑之周全!之前说过学习源码的目的在哪?正如我特别喜欢的一句话,有道无术,术尚可求也!有术无道,止于术!,对于Spring的了解仅仅局限于使用远远不够,Spring作为一个国内绝大多数java开发者使用的一个项目管理框架,他是一个生态,什么是生态?比如现在的SpringBoot、SpringCloud,他们是什么?是Spring生态中的一个组成部分!他们利用

2020-08-13 14:33:13 365

原创 生气!面试官你过来,我给你手写一个SpringAop!

说到`Spring Aop`无论是面试还是开发都是绕不过的一个坎 ,相信不少同学工作中也是经常性的使用AOP去搞一些日志啦权限啦或者校验之类的开发,但是实际上不少同学开发过程中基本都是去网上找一篇帖子,施展CV大法,然后改改就用到生产了!

2020-08-09 08:49:07 285

原创 【Spring】万字长文,祝你完全掌握Spring循环依赖的源码分析!

一、概述长文警告,事实上我不愿意写太长的文章,一面是太冗余,一方面读者容易疲倦,但是只要是涉及到源码级别的,就肯定篇幅不短,因为太短肯定没意义也解释不清楚,但是相信,耐心看完这个文章一定会有所收获!最近有很多读者面试的时候都被问到了有关于Spring三级缓存的解决方案,很多读者在面试受挫之后,试着自己去读源码,试着去跟断点又发现一层套一层,一会自己就懵了,我这几天总结了一下,为了能够让读者更加的去了解Spring解决循环依赖问题,我决定从以下四个方面去讲述:什么是循环依赖如果不依赖于Sprin

2020-07-30 12:40:56 182

原创 听说你一读Spring源码就懵逼?我帮你把架子搭好了,你填就行!

最近断更了一段时间,因为公司比较忙,周五的时候在公司做了一个关于Netty的分享,后续会总结一下分享出来!最近一段时间发现经常看到很多人,对Spring源码比较感兴趣,日常开发中,无论你做什么什么项目,大部分都离不开Spring生态的那一套东西,所以很多人对Spring底层源码实现很感兴趣,但是有些从来没有接触过源码的开发者,在看Spring源码的过程中确实及其难受的,为什么,大部分人看源码基本都是debug一点一点去看的,最后发现,越追越离谱,越追越深,到最后都追到JDK源码了,也没有明白是什么意思!

2020-07-25 15:30:43 327

原创 MyBatis为了解决二级缓存脏读问题,究竟做了那些骚操作!

MyBatis为了解决二级缓存脏读问题,究竟做了那些骚操作!一、存在即合理MyBatis为了提高我们的查询性能,专门设计了一级缓存和二级缓存,众所周知,我们在开发环境中,使用的缓存的时候,也会遇到各种各样的挑战,比如缓存穿透,缓存雪崩,数据脏读等等各种各样的问题,MyBatis也同样,在设计二级缓存的时候,MyBatis也同样遇见了各种挑战;我这几天在观看MyBatis对于二级缓存的设计的时候,突然发现,我们查询出来一个数据后并没有直接放置到二级缓存中,而是放到了另外一个存储空间,只有提交了之后才会被

2020-07-10 15:23:51 1107

原创 你凭什么说Spring会导致MyBatis的一级缓存失效!

一、概述最近老是听说Spring和MyBtis集成后,一级缓存就不可用了!我就纳闷了,为什么一级缓存不可用呢?这难道是Spring的BUG?这引起了我极大的兴趣,因为Spring作为一个极其优秀的项目管理框架,它居然也有BUG,我要一探究竟,满足我的好奇心!二、真的没走缓存为了帮助我查看源码,我把MyBatis和Spring集成后写了如下代码:AnnotationConfigApplicationContext annotationConfigApplicationContext;@Before

2020-07-07 14:31:40 243

原创 MyBatis与设计模式的激情碰撞

最近一直在研究MyBatis的源码,MyBatis作为国内最为经常使用的持久层框架,其内部代码的设计也是极其优秀的!我们学习源码的目的是什么呢?一方面是对该框架有一个很深入的认识,以便在开发过程中有能力对框架进行深度的定制化开发或者在解决BUG的时候更加得心应手!一方面是学习代码里面优秀的设计,看看这些成名多年的框架,他们的开发者是如何设计出一个高扩展性、低耦合性的代码呢?然后在自己的开发场景中应用。今天我们就来讨论一下,在MyBatis内部,为了提高代码的可读性究竟做了哪些设计呢?当然,如果你对

2020-07-05 14:46:23 193

原创 天啦噜,项目上使用InputStream,我被坑了一把!

本文目的是为了记录,项目开发时的一个小BUG,如果你是大佬,或者对InputStream十分熟悉,那么可以忽略!今天开发项目的时候遇见了一个小BUG,该功能如下:读取指定FTP服务器里面的文件数据,并计算md5签名推送到备份FTP服务器以上功能涉及到公司项目功能实现,不能详细多说,大致功能就是这样,读取一个MD5同步到另外一个服务器,期间我遇到什么问题了呢?先看一个模拟的代码实现!package com.inputstreams;import org.apache.commons.code

2020-06-30 21:13:48 604 2

原创 RedLock究竟是不是Redis分布式锁分布式环境下的银弹?

一、概述在这个技术不断更新迭代的情况下,分布式这个概念,在企业中的权重越来越高!谈及分布式时,不可避免一定会提到分布式锁,现阶段分布式锁的实现方式主流的有三种实现方式,Zookeeper、DB、Redis,我们本篇文章以Redis为例!从我们的角度来看,这三个属性是有效使用分布式锁所需的最低保证。安全特性:互斥。在任何给定时刻,只有一个客户端可以持有锁。活力属性:无死锁。最终,即使锁定资源的客户端崩溃或分区,也始终可以获得锁。活动性:容错能力。只要大多数Redis节点都处于运行状态,客户端就可以

2020-06-28 22:58:46 470

原创 求求你,别再开发的时候一用redis分布式锁,就急着去复制粘贴了!lua脚本的实现思路

随着业务越来越负责,现在的业务,能够支持分布式和高并发是基本的要求,涉及到高并发和分布式就一定会涉及到分布式锁机制,分布式锁就是为了保证分布式环境下,只有一个机器能够拿到锁对象,其余的都需等待该锁释放,再进行申请锁资源!分布式锁必须遵循以下原则:同一时刻只能有一个机器(进程或线程)能够拿到锁对象!拥有过期机制,防止机器宕机没有释放锁的情况下造成死锁!加锁和解锁的必须是一个机器(线程、进程)!集群环境下,存活机器依旧何以做完整的加解锁操作!一、思路图二、思路图实现1.正确实现该实现由

2020-06-25 18:38:13 354

原创 当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?SpringMVC视图处理器与视图篇章【终章】

本篇文章依旧是基于上篇文章的基础做的描述,请先观看【当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?请求映射器篇】【当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?SpringMVC处理器适配器与处理器篇章】先上图:上一篇文章,我将 Handler处理器适配器,处理器做了一个很详细流程分析,那么本篇文章会围绕视图解析器和视图两个流程来分析源码!1. 视图推断源码分析不知道大家对这一段代码是否熟悉!public void invokeAndHan

2020-06-21 10:00:18 226

原创 当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?SpringMVC处理器适配器与处理器篇章

SpringMVC之请求处理适配器与处理器源码分析上次的SpringMVC源码分析因为篇幅原因只将请求映射器的源码流程分析完毕,不知道大家对上次的流程分析有什么意见呢?空闲的时候是不是自己追了一遍源码嘞?先上图:上一篇文章,我将 Handler处理器映射器做了一个很详细流程分析,那么本篇文章会围绕处理器适配器、处理器两个流程来分析源码!1. 处理器适配器源码解析上篇文章其实后面也大概说了一下后面的大概逻辑,但是事实上,SpringMVC作为一个优秀的框架,他所考虑的是很全面的,其实在开发一个Co

2020-06-19 22:31:47 294

原创 当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?

一、简介Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。1. Springmvc的优点:可以支持各种视图技术,而不仅仅局限于JSP;与Spring框架集成(如IoC容器、AOP等);清晰的角色分配:前端控制器(dispatcherServlet) , 请求到处理器映射(hand

2020-06-18 10:33:38 333

原创 市面上数据库种类那么多,如何选择?

​ 技术真的是日新月异,关系型数据库在数据库存储界称霸这么多年后,市面上各种数据库如雨后春笋蓬勃发展,似乎关系型数据库也地位不保,我前段时间和同事聊天,听到他们经常说的现在市面上的noSql数据库完全可以替代现有的关系型数据库,可是事实真的如此吗,我们一起就市面上现在比较流行的各类数据库,做一个对比:​ 真正业务开发中,绝对不是拍脑袋定下来使用那种数据库就使用那种数据库的,选择某种或者某几种数据库配合使用,一定是对改数据库有一个比较全面的认识。​ 关系型数据警告过这么多年的

2020-06-17 11:39:14 719

原创 研发组扩充,研发组暂时拟定这么多JAVA面试题,快来看看吧!

一.List相关面试题List是一个集合接口,分为AarrayList和LinkedList两个实现方式**ArrayList:**底层实现就是数组,且ArrayList实现了RandomAccess,表示它能快速随机访问存储的元素,通过下标 index 访问,只是我们需要用 get() 方法的形式, 数组支持随机访问, 查询速度快, 增删元素慢;**LinkdeList:**底层实现是链表, LinkedList 没有实现 RandomAccess 接口,链表支持顺序访问, 查询速度慢,

2020-06-14 21:38:27 488

原创 设计原则之开闭原则

基本介绍:对扩展开放对修改关闭,用抽象构建框架 用实现扩展细节!所谓对扩展开放,对修改关闭,其实是设计模式里面所重点提倡的,后续所有涉及模式的介绍其实都是为了程序能够更好的扩展,提倡设计模式的本质就是为了减少增加一点功能而修改系统的主要逻辑!用抽象构建框架 用实现扩展细节! 尽量通过扩展类的操作来实现行为变化,而不是通过修改已有代码来实现修改错误的示范下面还是老规矩,我们先看一段错误的代码!需求1:我需要一个过滤特殊字符的功能package principle.opencloeds.erro.

2020-06-02 16:55:35 178

原创 设计原则之单一职责

1. 单一职责原则基本介绍:一个类只负责一项职责,完成一个单一的功能。错误的示范package principle.singleresponsibility.error;/** * 单一职责错误示范 * @author huangfu */public class SingleResponsibilityError { public void mobile (String vehicle){ System.out.println(vehicle + "在公路上跑

2020-06-01 13:15:29 219

原创 CentOS7安装单机环境的es和Kibana

1.单机环境下es配置[root@192 bin]# ./elasticsearchfuture versions of Elasticsearch will require Java 11; your Java version from [/usr/java/jdk1.8.0_251-amd64/jre] does not meet this requirement[2020-05-31T15:26:41,446][WARN ][o.e.b.ElasticsearchUncaughtExceptio

2020-05-31 17:10:07 385

原创 一篇文章带你彻底搞懂NIO阻塞

什么是NIOJava NIO (New IO)是 Java 的另一个 IO API (来自 java1.4) ,意味着可以替代标准的 Java IO API和 Java Networking API。 提供了一种与标准 IO API 不同的 IO 工作方式。注意:Java的NIO只是说IO API,阻塞非阻塞才是IO的模型。也有人称NIO为No-Blocking IO,非阻塞IO,但是这...

2020-01-14 14:12:18 1368

原创 企业是如何从头开发一个商业项目的?

对于还没有参与过项目的同学,大都与企业项目开发的流程都感到特别的好奇!项目对于程序员来说像是自己的孩子,自己看着一步一步成熟,完善!最后到独立的运行!然后大多数程序员都如含泪老母亲一样,看这自己的项目嫁出去,嫁到甲方!从此天各一方!咳咳,跑题了!就我经验而谈,上一家公司是一个传统型企业公司!主要开发的是一些国企的信息管理系统,其实包括你们在内的很多小伙伴,毕业后会有一大部分进入到类似的项目中参...

2020-01-08 13:50:13 398

数据中台之数据资产最佳实践白皮书及解读.zip

数据中台之数据资产最佳实践白皮书及解读

2021-11-24

chromedriver.zip

chromedriver最新版本 包含 win版本 linux版本 和 mac版本三种chromedriver,自动化测试,和python模拟机器人操作浏览器,的利器!

2019-12-15

Spring Cloud 入门 新手入门

SpringCloud入门资源,适合新手,配合CSDN博客观看。

2019-05-04

MyBatis使用手册PDF

最简单粗暴的MyBatis手册,一学就会,两个小时彻底掌握MyBatis的使用方式,轻松应对企业及开发以及个人学习!内部使用代码全部经过本人测试,童叟无欺!

2019-02-25

遗传算法java版简单实例,及名词解析

遗传算法java版简单实例,及名词解析!附带遗传算法java源码,和学习心得!

2019-02-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除