自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

原创 Netflix的archaius

archaiusintropombasicsconfig.properties overridemore configurations and overridingintroarchaius是Netflix oss(open source software)的配置核心。它有很强大的功能,可以读配置文件的配置,系统的配置,还有zookeeper的配置等等的。archaius原意是一种变色龙,那么含义就是根据环境的不同可以改变配置。我们会讲一下它的基本用法和各个配置的覆盖。pom各种依赖冲突把我折腾

2020-05-30 13:03:45 657

原创 跳跃表的推导和数学证明

skip list引子地铁的例子L1的理想数值让跳跃表更快重新设计地铁线引子能够完成动态数据的增删改查最简便的数据结构是什么?是链表。链表查询的时间复杂度是O(n)。如何修改最简单的链表,能够让它查得快一点呢?我们可以多增加一些连接,让它形成网络的结构。你也可以把它改成一棵树,当然这也可以说是另一种数据结构了。我们今天要讲跳跃表,skip list。再增加一张链表,情况会变得很不同。地铁的例子某城市的地铁有两条线,一条慢线,它包含所有的车站;一条快线,它的车站是慢线的一个真子集。

2020-05-29 23:10:27 481

原创 dubbo初探——从下载源码开始

dubbo的官网会有这么一幅图:可以看到,这很像eureka一样的注册中心。Apache Dubbo |ˈdʌbəʊ| is a high-performance, light weight, java based RPC framework. Dubbo offers three key functionalities, which include interface based remote call, fault tolerance & load balancing, and auto

2020-05-28 20:43:09 188

原创 spring整合mybatis的简单例子及原理

spring-mybatis介绍代码jdk动态代理注入mapper优雅地注入mapper像mybatis一样工作介绍spring是spring,它是个容器的框架,mybatis是mybatis,它是个封装jdbc的框架。它们两个怎么联系起来呢?当然是spring来收纳mybatis呀。我会给出一个小例子,你必须注意,哪些是spring的东西,哪些是mybatis的东西,以及代码中奇怪的地方。代码先讲mybatis的东西:@Datapublic class Entity implements

2020-05-27 23:02:01 327

原创 网络数据传输简单探索tcpdump

经常有人问:当你在浏览器敲下回车键发生了什么?比如请求百度的网站。dns解析这一块我们就不讲了。拿到百度的ip地址后,浏览器要干什么呢?它会像java一样new一个Socket。这是用户空间的操作,new好一个Socket之后发生了什么呢?接下来的工作就是内核空间的事情了,程序员是接触不到的。并不是说,我浏览器new了一个Socket,你百度服务器就会和我建立连接,然后进行数据传输。因为我们首先要确保连接上了,然后才能开辟资源为传输数据做好准备。那么谁去干这个确保连接的事情呢?这活交给传输

2020-05-26 22:20:13 248

原创 netty简介二

我们上次跟完了官网的一个例子,对于netty的server大概有些印象,这次我们写完server和client,并且加上编解码。Netty example of server and clientserverentityserver encoder and decoderprocessing handlerserverentity我们用实体类来封装网络。@Datapublic class RequestData { private int intValue; private String s

2020-05-25 16:52:20 207

原创 redis的单线程

redis的worker是单线程的,所以redis是一把天然的锁。但是,怎么才能知道worker是单线程的呢?我们用这个命令来启动一个前台的redis: strace -ff -o ../../test_redis_process/out ./redis-server 我们将追踪所有fork系指令,并且把结果放在../../test_redis_process这个文件夹里,以out作为后缀。...

2020-05-22 19:25:20 584

原创 linux的epoll

epollAPIepoll_createepoll_ctlselect和poll差不多,原理一样,后来又出现了epoll,为什么呢?肯定做了优化。API首先,我们来看看epoll的api。epoll_create int epoll_create(int size);epoll_create() creates an epoll(7) instance. Since Linux 2.6.8, the size argument is ignored, but must be greater

2020-05-22 13:39:11 281

原创 netty简介——先敲一个标准的server

官网的大字:Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.netty是一个异步的,事件驱动的网络应用框架,用来开发高性能的server和client。我们跟着官网走一遍例子,就能了解它了。引入依赖: <dependency&gt

2020-05-21 16:37:23 149

原创 spring用PropertyPlaceholderConfigurer读取配置

我们在BeanFactoryPostProcessor的doc中有这么一句:/** * <p>See PropertyResourceConfigurer and * its concrete implementations * for out-of-the-box solutions * that address such configuration needs. */我们点进PropertyResourceConfigurer 。查看doc:...

2020-05-20 20:32:46 376

原创 explain的type

type指的是访问类型,可以衡量sql的好坏。The type column of EXPLAIN output describes how tables are joined常见的type有system,const,eq_ref,ref,range,index,all。显示sql是从最好到最坏。systemThe table has only one row (= system table). This is a special case of the const join type.

2020-05-20 12:54:51 904

原创 explain的select_type

分析sql的时候,我们会用explain。explain的字段:第一个字段是id。id越大越先执行,id相同从上至下执行。我们主要讲讲select_type。我们加上一张location表,并且在tbl_dept中添加location_id字段:首先是简单查询:直接select * from的select_type就是SIMPLE。然后是子查询和主要查询:tbl_emp和location都是SUBQUERY。而tbl_dept却是PRIMARY。它的意思是它是主要查询,就是最外

2020-05-20 06:56:13 1580

原创 表与表之间的连接

其实,表A与表B的连接和高中时候学的集合是一样的。要让两个表能够连接,必须有字段是一样的,或者说,是通过这个字段联系这两张表的。比如表A是员工表,员工表里有一个字段为dept_id。表B是部门表,部门表的主键id就可以和dept_id联系起来。用Venn图很容易表示表与表连接的几种情况:(经常有人问:表与表有哪几种连接?)...

2020-05-19 18:52:19 2691

原创 mybatis如何工作

如果自己能够写一个模仿mybatis工作的程序,那么看mybatis的源码就会很容易。how mybatis works?pom配置文件与java类的映射加载配置文件执行sql并为实体类填充值sqlsessionTestpom <dependencies> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> &lt

2020-05-17 19:34:23 186

原创 从一开始迷糊到现在的session和cookie

如果你说你不会session和cookie,学java的人会对你嗤之以鼻,因为那是基础的技术,是面试中简单的问题,在网上有大量资料。但是,这并不是一个简单的问题。因为session这个词在被滥用,我读很多文档时都碰到过session,有时候人们说它是一次会话(会话又是什么?),有时说它是jsp的一个默认作用域,有时又说它是浏览器打开到关闭的一个情况……关键的问题是,当我们在谈session与cookie时,它指的是什么?session与cookie刨根问底RFC2109CookieJSESSIONID

2020-05-14 14:38:49 356

原创 BeanFactoryPostProcessor使用案例——修改bean definition

我们接着啃BeanFactory。Spring的可扩展性,源于它的PostProcessor,这给程序员很大的控制空间。BeanFactory对应着BeanFactoryPostProcessor,就像Bean对应着BeanPostProcessor。不同的是,BeanFactoryPostProcessor处理的是BeanDefinition,那是创建Bean的模板信息,是在Bean实例化之前做的工作。而BeanPostProcessor是在Bean实例化之后对Bean的增强。我们看一张图:可

2020-05-12 13:48:21 1312

原创 springboot自动配置魔法

Springboot Auto Configurationdemo@SpringBootApplication注解将demo改成自动配置demo我们会用一个小demo来开启springboot自动配置的讲解。父工程的pom:<dependencyManagement> <dependencies> <!-- https://mvnre...

2020-05-07 20:55:50 276

原创 FactoryBean的使用案例以及BeanFactory与FactoryBean的区别

BeanFactory与FactoryBeandocumentation为了进一步深入BeanFactory,我们还要了解另一个和BeanFactory相似的名词FactoryBean。从名字就可以看出,一个的本质是Factory,另一个的本质是Bean。我们会从文档、小例子和实际应用讲清楚FactoryBean。documentation/* * Interface to be im...

2020-05-04 12:25:02 528

原创 BeanFactory与ApplicationContext

BeanFactory与ApplicationContext是否懒加载既然BeanFactory是spring的顶级接口,那么我们常用的ApplicationContext又是什么呢?首先它们都提供了spring容器的api。但前者是简化版,后者有更多的功能。从ApplicationContext的字面意思就可以看到,它适用于不同环境,有xml环境的,有注解环境的,有web环境的。这是s...

2020-05-03 12:49:17 155

原创 BeanFactory简介

BeanFactorydocumentationAPIdocumentationThe root interface for accessing a Spring bean container.This is the basic client view of a bean container;further interfaces such as {@link ListableBeanF...

2020-05-02 19:15:57 186

原创 重新思考spring之依赖注入

依赖注入从一个例子说起控制反转依赖注入构造器注入setter注入依赖注入的本质从一个例子说起我们看看Martin Fowler的一个例子。我们有一个MoiveListerclass:class MovieLister... public Movie[] moviesDirectedBy(String arg) { List allMovies = finder.findAl...

2020-05-01 15:41:38 159

spring-framework-5.1.x.zip

spring5编译后的源码,供大家进行源码学习。基于gradle编译。编译前的源码在github下载。我使用的是gradle4.0.1,groovy2.4.11,jdk1.8.0_131,idea2018.2.2。

2020-05-02

digits.zip

python数字识别数据,训练集1934个txt文件,测试集946个txt文件,都是经过黑白化后得到的二进制数据,每个txt文件代表一个数字,作用是检验KNN算法的。

2019-09-27

空空如也

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

TA关注的人

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