- 博客(49)
- 资源 (3)
- 收藏
- 关注
转载 java根据文件头判断文件类型
package com.mytest;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.HashMap;import java.util.Iterator;import java.util.Map;publ...
2019-02-15 12:33:37
5200
1
转载 Proactor模式 论文
ProactorAn Object Behavioral Pattern for Demultiplexing and Dispatching Handlers for Asynchronous Events论文Irfan Pyarali, Tim Harrison, Douglas C. Schmidt, Thomas D. Jordan 2012-12-10 23:58 T...
2019-01-30 22:23:30
651
转载 Reactor模式 论文
论文Douglas C. Schmidt 2012-12-09 21:25 An earlier version of this paper appeared as a chapter in the book “Pattern Languages of Program Design” ISBN 0-201-6073-4, edited by Jim Coplien and Dougla...
2019-01-30 22:08:05
798
原创 linux IO模型概念详解
1.基本概念剖析(1) 用户空间和内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操心系统将虚拟空间划分为两部分,一部分为内核空间,一部...
2019-01-29 16:10:32
612
原创 NGINX图片防盗链原理与配置
防盗链原理: http标准协议中有专门的字段记录referer1、他可以追溯到请求时从哪个网站链接过来的。2、来对于资源文件,可以跟踪到包含显示他的网页地址是什么。因此所有防盗链方法都是基于这个Referer字段 NGINX 防盗链配置location ~* \.(gif|jpg|png|bmp)$ { valid_referers none blocked *...
2019-01-28 14:47:39
1180
原创 HTTP一次请求/响应工作流程与报文解析
请求响应流程: 1)客户端浏览器与服务器建立连接,即通过三次握手建立连接2)建立连接后,客户端浏览器发送一个请求到服务器 这个过程是组装请求报文的过程3)服务端接受请求,解析报文组装成一定格式的响应报文返回客户端4)客户端浏览器接收响应报文,通过浏览器内核对其进行渲染解析,然后与服务器断开连接报文解析 请求行:请求行由方法字段、URL 字段 和HTTP 协议版本字段 3...
2019-01-28 12:02:30
847
原创 Tomcat 套接字通信相关概念
套接字通信: 套接字通信是应用层与TCP/IP协议族通信的中间抽象层,它是一组接口。应用层通过调用这些接口发送和接收数据。一般这种抽象层由操作系统提供或者由JVM自己实现。TCP/IP协议族中有两种套接字类型。分别是流套接字和数据报套接字,分别对应的是TCP协议和UDP协议1.单播通信 单个网络节点与单个网络节点之间的通信,是一种一对一的模式,发送,接收信息...
2019-01-28 11:12:58
343
原创 HTTPS 通信过程原理
HTTP: 是Hyper Text Transfer Protocol(超文本传输协议)的缩写,HTTP协议是用于从web服务器传输超文本到本地浏览器的协议。HTTPS:简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。对称加密 : 秘钥只有一个,加密 解密都是这个密码,加解密速度快,典型的对称加密算法有DES AES RC4...
2019-01-27 11:45:46
225
原创 PHP自动加载 spl_autoload_register 参数解答
spl_autoload_register 是一个实现自动加载类的函数,自动加载类就是我们在new一个class的时候,不需要手动去写require来导入这个class.php文件,程序自动帮我们加载导入进来 spl_autoload_register 的原理 spl_autoload_register(autoload_function,throw,pre...
2019-01-26 23:44:35
3855
原创 phpStrom常用快捷方式总结
ctr+shift+'+' 折叠所有代码ctr+shift+'-' 展开所有代码ctr+F12 与别的类之间的调用 CTRL+N 查找类CTRL+SHIFT+N 全局搜索文件 ,优先文件名匹配的文件CTRL+SHIFT+ALT+N 查找php类名/变量名 ,js方法名/变量名, css 选择器CIRL+B 找变量的来源,跳到变量申明处 (CTRL+ 鼠标单击 也可以)...
2019-01-26 09:16:01
195
转载 Laravel框架一次请求的生命周期
一 摘要Laravel 生命周期(或者说请求生命周期)概括起来主要分为 3 个主要阶段:加载项目依赖 创建 Laravel 应用实例 接收请求并响应而这 3 个阶段的处理都发生在入口文件 public/index.php 文件内(public/index.php 是一个新安装的 Laravel 项目默认入口文件)。然而 index.php 文件仅包含极少的代码,但却出色的完成了一...
2019-01-25 20:50:48
4118
原创 nginx 负载均衡算法实践
一、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down机,能自动剔除。 二、weight(权重) 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 代码如下: upstream bakend { server 192.168.0.12 weight=10; serv...
2019-01-25 19:53:56
516
原创 关系型数据库范式的理解
范式: 范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式关系模式: 关系的描述称为关系模式(Relation Schema)它可以形式化地表示为:R(U,D,dom,F) 其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合...
2019-01-25 09:40:25
372
4
转载 Redis利用Keyspace Notifications实现定时任务
redis自2.8.0之后版本提供Keyspace Notifications功能,允许客户订阅Pub / Sub频道,以便以某种方式接收影响Redis数据集的事件。可能收到的事件的例子如下: 所有影响给定键的命令。 所有接收LPUSH操作的密钥。 所有密钥在数据库中过期0。因为 Redis 目前的订阅与发布功能采取的是发送即忘(fire and forget)策略, 所...
2019-01-24 18:15:23
798
原创 Spring Bean的生命周期
Spring中Bean的管理是其最基本的功能,根据下面的图来了解Spring中Bean的生命周期:解说:(1)BeanFactoryPostProcessor的postProcessorBeanFactory()方法:若某个IoC容器内添加了实现了BeanFactoryPostProcessor接口的实现类Bean,那么在该容器中实例化任何其他Bean之前...
2019-01-24 12:06:17
139
转载 Spring springmvc 的启动流程
Spring的启动是建筑在servlet容器之上的,所有web工程的初始位置就是web.xml,它配置了servlet的上下文(context)和监听器(Listener),下面就来看看web.xml里面的配置: <web-app> <welcome-file-list> <welcome-file...
2019-01-24 11:37:59
8925
转载 使用RabbitMQ死信实现定时任务
使用RabbitMQ实现延迟任务场景一:物联网系统经常会遇到向终端下发命令,如果命令一段时间没有应答,就需要设置成超时。场景二:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单。上述类似的需求是我们经常会遇见的问题。最常用的方法是定期轮训数据库,设置状态。在数据量小的时候并没有什么大的问题,但是数据量一大轮训数据库的方式就会变得特别耗资源。当面对千万级、上亿级数据量时,本身...
2019-01-21 23:12:35
1956
1
原创 自动生成JavaBean mybatis-generator-maven-plugin 集成与注意事项
1.官方文档 http://www.mybatis.org/generator/index.html2.配置demo 1) maven 添加mybatis-generator-maven-plugin 插件 <!-- 集成tomcat7 --> <build> <!-- Mybatis generator...
2019-01-21 10:48:14
835
1
原创 luke 各个版本与 中文分词器地址
luke 各个版本https://github.com/DmitryKey/luke/releases中文分词器https://code.google.com/archive/p/ik-analyzer/downloads注意:luke需要和lucene 的版本对应
2019-01-21 10:21:55
641
原创 maven lucene7.6 ik-analyzer 分词与demo
1.maven配置lucene<properties> <lucene.version>7.6.0</lucene.version> </properties> <dependencies> <dependency> <groupId>junit</
2019-01-19 18:23:05
1476
转载 余弦计算相似度度量
余弦计算相似度度量相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大。对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字和向量数据的映射关系,通过计算几个或者多个不同的向量的差异的大小,来计算文本的相似度。下面介绍一个详细成熟的向...
2019-01-18 10:55:28
1034
原创 eclipse maven tomcat7 热部署
eclipse maven tomcat7 热部署1.maven 切换 D:\apache-maven-3.5.2\conf\setting.xml 添加 <server> <id>tomcat7-admin</id> <username>admin</userna...
2019-01-14 23:05:42
518
原创 node npm vuejs element-ui安装步骤
1.下载对应本机环境安装 nodejs 默认NPM已经集成 https://nodejs.org/zh-cn/ 打开cmd直接输入测试是否安装成功 node测试 node -v NPM 测试 npm -v2.安装淘宝镜像。 打开cmd直接输入:npm install -g cnpm –registry=https://registry.npm.taobao...
2019-01-13 13:37:13
6922
原创 Java EE开发 十大官方参考书手册
1.Spring API参考 https://docs.spring.io/spring/docs/current/javadoc-api/2.Spring boot 参考手册 https://docs.spring.io/spring-boot/docs/current/reference/3.Mybaitis 中文文档 http://www.mybatis.org/...
2019-01-12 15:49:09
1384
原创 数据结构与算法 (十) 二叉树 前序遍历 中序遍历 后序遍历
名词解释 度数(degree) 一个结点的子树个数 树叶(leaf) 没有子树的结点称为树叶或终端结点 分支结点(branch node) 非终端结点 子女(child)和儿子(son)非终端结点 父母(parent)若结点s是结点p的儿子 则称p是x的父母或者父亲 有序树(ordered tree) 树中各个结点的儿子都是有序的 层数(level) 定义树根的层数为1...
2018-12-30 12:12:34
189
原创 Java基础知识总结 (二) Hashtable ConcurrentHashMap TreeMap HashMap 区别
集合类 Key Value Super 说明 Hashtable 不允许为 null 不允许为 null Dictionary 线程安全 ConcurrentHashMap 不允许为 null 不允许为 null AbstractMap 锁分段技术(JDK8:CAS) TreeMap 不允许为 null ...
2018-12-27 22:27:15
251
原创 nginx Tomcat keepalived 负载均衡 高可用配置
1.什么是负载均衡 负载均衡(Load Balance)就是将服务器的单位时间内的访问量分摊到多台服务器上进行执行的解决方案,从而共同完成工作任务。2.nginx 负载均衡算法1).轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器宕机,能自动剔除。upstream backserver { server 192.168.0.14; ...
2018-12-27 13:19:08
155
原创 数据结构与算法 (九) 希尔排序
算法思想: 希尔排序是基于插入排序的以下两点性质而提出改进方法的先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量 =1( < …<d2<d1),即所有记录放在同一组中进行直接插入排序为止。一般的初次取序列的一半为增量,...
2018-12-27 11:55:48
159
原创 java设计模式(二) 结构模式之代理模式
1.结构模式(主要记录类和对象的静态结构)2.行为模式(描述通过对象间的合作形成的一种关系)3.创建型模式(用于生成对象)1.代理模式是把一个实际存在的对象隐藏在一个与它有相同接口的代理者身后。代理者把这个实际的对象与外界沟通的渠道封装起来,代理者把对方法的调用委托给实际的对象,并且可以插入新的功能(这句话是说,实现代理就需要目标类和代理类同时实现相同的接口)2.代理模式的优点:...
2018-12-26 16:48:34
103
原创 软件架构与模式(依赖注入 控制反转 依赖倒置原则 开闭原则 单一职责原则 接口隔离原则 里氏代换原则)
名词解释: 依赖: 一个独立元素的变化会影响到相关的元素 派生: 一个类是由其他类衍生出的,子类继承了基类的结构(属性的名词和类型)方法 抽象: 去掉每个不重要的细节,专注于重点内容 关联: 描述了连接的规则,用于连接两个或多个对象(对象是同级别的) 组合: 关联的一个特例,它描述的是整体与其局部的关系,局部的存在和整体的存在相关联,一个局部只属于一个唯一的...
2018-12-26 15:58:29
720
原创 java设计模式(二) 结构模式之适配器模式
1.结构模式(主要记录类和对象的静态结构)2.行为模式(描述通过对象间的合作形成的一种关系)3.创建型模式(用于生成对象)
2018-12-26 14:46:12
103
原创 Java基础知识总结 (一) Object 常用方法
java.lang Object:是所有继承类的的根类子类的构造方法默认访问的是父类的无参构造方法类的方法 finalize wait notifyAll notify toString equals hashCode getClassequals hashCode getClass...
2018-12-25 17:30:44
136
原创 Java基础知识总结 (一) String,StringBuilder,StringBuffer的区别
内容可变 线程安全 执行效率 备注 String 内容不可变 线程安全 低 String是值不可变的常量,是线程安全的(can be shared)。 String类使用了final修饰符,String类是不可继承的。 StringBuilder 内容可变 非线程安全 中 主要方法 insert ap...
2018-12-25 15:13:16
84
原创 java设计模式(二) 创建型模式 工厂模式 (简单工厂,工厂方法,抽象工厂)
1.简单工厂 定义:简单工厂模式又 叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 2.工厂方法 定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使得一个类的实例化延迟到了子类 工厂方法在简单工厂的基础上再包了一层工厂,所有的工厂都是此工厂的...
2018-12-24 20:56:48
112
原创 java设计模式(一)创建型模式之 单例模式(饿汉式,懒汉式,线程安全,双重检查)
1.介绍 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。 2.实现思路与步骤 1).将该类的构造方法定义为私有方法,这样其他处的代码就无法通过调用该类的构造方法来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例; 2).在该类内提供一个静态方法,当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就...
2018-12-24 17:54:47
565
1
原创 php常用函数总结
1.变量 (变量的作用域以及生命周期)2.输出型函数void echo ( string $arg1 [, string $... ] ) echo 不是一个函数(它是一个语言结构), 因此你不一定要使用小括号来指明参数,单引号,双引号都可以。 echo (不像其他语言构造)不表现得像一个函数, 所以不能总是使用一个函数的上下文。 另外,如果你想给 echo...
2018-12-24 15:08:19
147
推荐系统实践
2018-12-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人