- 博客(30)
- 资源 (8)
- 收藏
- 关注
转载 Java的三种代理模式
Java的三种代理模式1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接...
2019-02-28 22:02:36 98
转载 Thumbnailator库(高质量缩略图)简单总结
1. Thumbnailator是一个用java生成高质量缩略图的第三方库,可以用来1.生成缩率图;2.添加水印;3.图片旋转;4.图片大小缩放;5.图片压缩;2.Thumbnailator的github地址3. 帮助文档4.thumbnailator库只有一个jar,不依赖第三方库,maven依赖<dependency> <groupId>net...
2019-02-27 20:49:50 787
原创 TCP三次握手
一、报文格式:标志位有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)先来看看三次握手时标志位的情况:第一次握手的标志位我们可以看到标志位里...
2019-02-27 11:14:48 825
转载 Redis单线程解读
之前面试时被面试官问了一个问题,Redis是多线程还是单线程的?依稀记得Redis为单线程,其更深层次的技术原理完全懵逼。所以此篇文章旨在解读Redis为什么为单线程。1、基本原理 采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗) (1)为什么不采用多进程或多线程处理?多线程处理可能涉及到锁 多线程处理会涉及到线程...
2019-02-25 20:27:41 164
转载 Java静态工厂方法与工厂模式
静态工厂方法和工厂模式很像,但是在java中还是有很大区别的。(一)静态工厂方法vs工厂模式对于一个类来说,为了让客户端获得一个自身的实例,最常用的方法就是提供一个公有的构造器。除了这种使用构造器的方法之外,对于单个类来说,我们可以定义静态工厂方法来获取自身的类的一个实例。静态工厂方法和工厂模式的不同也体现在此,静态工厂方法是获取这个类自身的一个实例,他的存在是为了更好的描述和处理这个类。...
2019-02-25 14:02:56 1180
转载 .gitignore忽略规则、语法、检查文件详解
Git 忽略规则优先级在 .gitingore 文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):从命令行中读取可用的忽略规则 当前目录定义的规则 父级目录定义的规则,依次递推 $GIT_DIR/info/exclude 文件中定义的规则 core.excludesfile中定义的全局规则Git 忽略规...
2019-02-20 11:12:03 334
原创 自己写一个阻塞队列
接口:public interface SimpleBlockingQueue<E> { void put(E e) throws InterruptedException; E taken() throws InterruptedException;}实现类:import java.util.ArrayList;import java.util.concurrent...
2019-02-19 19:22:34 310
转载 Java线程状态与InterruptedException异常处理
InterruptedException异常在了解InterruptedException异常之前应该了解以下的几个关于线程的一些基础知识。而且得知道什么时候会抛InterruptedException异常当阻塞方法收到中断请求的时候就会抛出InterruptedException异常线程的状态线程在一定的条件下会发生状态的改变,下面是线...
2019-02-19 19:19:13 2628
转载 Java并发控制:ReentrantLock Condition使用详解
生产者-消费者(producer-consumer)问题,也称作有界缓冲区(bounded-buffer)问题,两个进程共享一个公共的固定大小的缓冲区。其中一个是生产者,用于将消息放入缓冲区;另外一个是消费者,用于从缓冲区中取出消息。问题出现在当缓冲区已经满了,而此时生产者还想向其中放入一个新的数据项的情形,其解决方法是让生产者此时进行休眠,等待消费者从缓冲区中取走了一个或者多个数据后再去唤醒它。...
2019-02-19 19:17:09 200
转载 java连接https时禁用证书验证.
import java.io.File;import java.security.cert.CertificateException;import java.util.List;import java.util.Map; import javax.net.ssl.SSLContext; import org.apache.http.c...
2019-02-18 19:31:12 2870
转载 透明代理、匿名代理、混淆代理、高匿代理有什么区别?
这4种代理,主要是在代理服务器端的配置不同,导致其向目标地址发送请求时,REMOTE_ADDR, HTTP_VIA,HTTP_X_FORWARDED_FOR三个变量不同。1、透明代理(Transparent Proxy)REMOTE_ADDR = Proxy IPHTTP_VIA = Proxy IPHTTP_X_F...
2019-02-18 17:12:16 507
原创 SpringBoot的JSR-303数据校验
一、 JSR-303 介绍 JSR 是Java Specification Requests 的缩写,是指向 JCP(Java Community Process) 提出新增一个标准化技术规范的正式请求。 任何人都可以提交 JSR,以向 Java 平台增添新的 API 和服务,已审核通过的规范涉及 Java 各个领域,有兴趣可以了解一下。 Bean Validation 是一个运行时...
2019-02-14 13:04:50 2232
转载 GitHub使用教程for Eclipse
1.下载egit插件打开Eclipse,git需要eclipse授权,通过网页是无法下载egit的安装包的。在菜单栏依次打开eclipse→help→install new software→add,Name栏中输入egit,location栏中输入 http://download.eclipse.org/egit/updates/ ,点击ok进行下载。下载完成后会提示重启eclipse;如果已...
2019-02-14 12:09:22 504
转载 eclipse使用git提交项目
准备工作:目的:eclipse使用git提交本地项目,提交至远程github上eclipse版本:eclipse4.5 64位jdk版本:jdk-1.7 64位项目类型:maven web项目备注:eclipse高版本自带git插件,而低版本则需自己安装git插件,这里使用eclipse高版本,低版本安装git插件这里不进行介绍。eclipse使用git提交项目有2种方式...
2019-02-14 12:06:09 323
转载 Java8的Base64编码和解码工具包
在Java7及7之前,要实代Base64编码,要么借助sun.misc.BASE64Encoder,或者apache commons-codec,再或者Guava、JAXB的DatatypeConverter,到了Java8,官方已经把Base64进行了重新优化,并直接放到了java.util...
2019-02-11 17:12:04 832
转载 RequestMapping中produces属性作用
注解RequestMapping中produces属性可以设置返回数据的类型以及编码,可以是json或者xml:@RequestMapping(value="/xxx",produces = {"application/json;charset=UTF-8"})或@RequestMapping(value="/xxx",produces = {"application/xml;c...
2019-02-11 17:11:15 1387
转载 前端 img标签显示 base64格式的 图片
在做项目的时候,我从后端返回了一个base64格式的图片文件,想把它渲染在前端页面上,找了一下午都没有找到办法,最后终于找到了资料!哈哈!解决办法就是这样后来又找了相关用法,总结如下: data:,文本数据 &...
2019-02-11 17:08:08 13884
转载 RabbitMQ的四种交换机
RabbitMQ作为一个消息队列提供一个通用的消息发送和接收平台,并且保证消息在传输过程中的安全可靠。消息(Message)由Client发送,RabbitMQ接收到消息之后通过交换机转发到对应的队列上面。Worker会从队列中获取未被读取的数据处理。消息处理的过程交换机有4种不同的交换机类型:直连交换机:Direct exchange扇形交换机...
2019-02-08 20:38:23 514
原创 Centos7简单安装RabbitMQ及配置
一、安装依赖环境Erlang使用Erlang Solutions源进行安装最新Erlang:# 下载rpm包wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm # 从erlang-solutions中更新该包,并将erlang_solutions.repo添加到/etc/yum.repo...
2019-02-08 20:25:31 282
转载 Linux 中如何卸载已安装的软件
Linux软件的安装和卸载一直是困扰许多新用户的难题。在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的“添加/删除程序”来实现。与其相类似,在Linux下有一个功能强大的软件安装卸载工具,名为RPM。它可以用来建立、安装、查询、更新、卸载软件。该工具是在命令行下使用的。在Shell的提示符后输入rpm,就可获得该命令的帮助信息。 软件的安装 Linux下软件的安装...
2019-02-06 16:23:18 10923
转载 通过redis-cli批量删除多个指定模式的key
Redis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作。xargs介绍:翻译:从标准输入执行命令记忆:x 是执行的意思;args是参数列表的意思。===>就是把参数传到后面,用这些参数去执行后面的语句。redis-cli keys "*" | xargs redis-cli del ...
2019-02-06 12:51:58 14434
原创 Java特殊的代码注释XXX、TODO、FIXME以及自定义代码注释
TODO: + 说明: 如果代码中有该标识,说明在标识处有功能代码待编写,待实现的功能在说明中会简略说明。FIXME: + 说明: 如果代码中有该标识,说明标识处代码需要修正,甚至代码是错误的,不能工作,需要修复,如何修正会在说明中简略说明。XXX: + 说明: 如果代码中有该标识,说明标识处代码虽然实现了功能,但是实现的方法有待商榷,希望将来能改进,要改进的地方会在说明中简略说明...
2019-02-04 17:19:31 3771 1
转载 高性能网站设计之缓存更新的套路
看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。我不知道为什么这么多人用的都是这...
2019-02-04 13:16:00 178
转载 maven dependency中provided和compile的区别
在本地启动一个新项目时,报错: java.lang.ClassNotFoundException: javax.servlet.Filter环境intellJ idea,我同事的myeclipse就可以直接启动最后搜了下问题问题原因是:spring boot项目中引入使用的是scope=provided ...
2019-02-03 10:57:56 4101
原创 SpringBoot打包成war并在tomcat下运行
一、使Application继承于SpringBootServletInitializer重写configure方法@SpringBootApplicationpublic class Seckill1Application extends SpringBootServletInitializer{ public static void main(String[] args) { Sp...
2019-02-03 10:52:14 401
转载 Maven依赖项Scope属性设置含义
Idea的File->Project Structure->左侧Modules:选择自己的项目如图:每个依赖项的Scope选项进行该jar包的相关操作设置,默认为compile,根据需要调整设置:1、compile设置编译范围内有效,在编译和打包时都会将依赖项加载进去。2、test设置测试范围内有效,只在测试时使用,编译和打包时都不会加载该项。3、provided设置编译和...
2019-02-02 20:38:49 509
原创 QPS/TPS/并发量/系统吞吐量的概念
我们在日常工作中经常会听到QPS/TPS这些名词,也会经常被别人问起说你的系统吞吐量有多大。这个问题从业务上来讲,可以理解为应用系统每秒钟最大能接受的用户访问量。或者每秒钟最大能处理的请求数; QPS: Queries Per Second,每秒钟处理完请求的次数;注意这里是处理完。具体是指发出请求到服务器处理完成功返回结果。可以理解在server中有个counter,每处理一个请求加1,...
2019-02-02 17:42:56 6689
原创 数据库配置导致的时区问题
在代码编写过程中发现用eclipse插入mysql数据库的时间在代码中查到的不一致,代码中查到的时间晚几个小时,而进而用eclipse查询发现时间是正确的,进而觉得应该是时区配置的原因。发生时区问题的配置:spring: datasource: url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/seckill?useUnicode=true&ch...
2019-02-02 13:08:57 4665 1
转载 SpringBoot-@PathVariable
URL变量在上一个博客中,学习了如何在@Controller中创建@RequestMapping(或者响应的简写)来处理不同的URL请求。但是在Web应用中URL通常不是一成不变的,例如微博两个不同用户的个人主页对应两个不同的URL:http://weibo.com/user1,http://weibo.com/user2。我们不能对于每一个用户都编写一个被@RequestMapping注解的方...
2019-02-01 19:29:25 325
转载 彻底解决mysql中文乱码
mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。1、中文乱码1.1、中文乱码 create table user(name varchar(11)); # 创建user表 insert into table user("carl"); # 添加数据 se...
2019-02-01 18:45:55 1203
org.aspectj.lang.annotation.Around所需要的包
2019-04-05
SFTP Net Drive官网版本,绝对没病毒
2019-04-04
一个表格的15个需求的代码修正版
2019-03-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人