自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

写好代码

代码才是体现自己能力的结果。

  • 博客(22)
  • 收藏
  • 关注

原创 Maven的版本定义

<主版本>.<次版本>.<增量版本>-<里程碑版本>例如:1.3.4-beta-2该产品的第一个中大版本的第三个次要版本的第四次增量版本的beta-2里程碑。主版本:表示项目的中大架构变更;次版本:表示交大范围的功能增加和变化,及bug修复;增量版本:一般只中大bug的修复;里程碑版本:表示一个版本的里程碑,往往表示不是非常稳...

2019-06-22 18:05:35 1287

转载 跨域请求

前言前后端数据交互经常会碰到请求跨域,什么是跨域,以及有哪几种跨域方式,这是本文要探讨的内容。一、什么是跨域?1.什么是同源策略及其限制内容?同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。同源策略限制内容有: ...

2019-04-01 18:25:32 461

转载 mongodb与mysql区别

MySQL是关系型数据库。优势:在不同的引擎上有不同 的存储方式。查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。开源数据库的份额在不断增加,mysql的份额页在持续增长。缺点:在海量数据处理的时候效率会显著变慢。Mongodb是非关系型数据库(nosql ),属于文档型数据库。文档是mongoDB中数据的基本单元,类似关系数据库的行,多个键...

2019-03-18 10:54:49 4791

原创 守护线程与用户线程理解

守护线程与用户线程用户线程:我们平常创建的普通线程。守护线程:用来服务于用户线程;不需要上层逻辑介入。我们分析结果,可以得出结论:当线程只剩下守护线程的时候,JVM就会退出;补充一点如果还有其他的任意一个用户线程还在,JVM就不会退出。 使用它需要注意些什么?thread.setDaemon(true)必须在thread.start()之前设置,否则会跑出一个Illegal...

2019-02-21 15:21:25 257

原创 Zstd-数据压缩组件

Zstandard 简称Zstd,是一款快速实时的开源数据压缩程序,由Facebook开发,源码是用C语言编写的。相比业内其他压缩算法(如Gzip、Snappy、Zlib)它的特点是:当需要时,它可以将压缩速度交换为更高的压缩比率(压缩速度与压缩比率的权衡可以通过小增量来配置),反之亦Zstd-jniZstd拥有丰富的API,几乎支持所有流行的编程语言,Zstd-jni 是Java中提供的...

2019-01-03 17:38:27 8856

原创 Resilience4j的使用

 Resilience4j的CircuitBreaker使用此方法有点复杂,看如下图: failureRateThreshold,默认为50,即失败率阈值为50% ringBufferSizeInHalfOpenState,设置当断路器处于HALF_OPEN状态下的ring buffer的大小,它存储了最近一段时间请求的成功失败状态,默认为10 ringBufferSize...

2018-12-20 13:36:37 4567

原创 mysql innodb和myisam 区别

InnoDB:支持事务处理等不加锁读取支持外键支持行锁不支持FULLTEXT类型的索引不保存表的具体行数,扫描表来计算有多少行DELETE 表时,是一行一行的删除InnoDB 把数据和索引存放在表空间里面跨平台可直接拷贝使用InnoDB中必须包含AUTO_INCREMENT类型字段的索引表格很难被压缩MyISAM:不支持事务,回滚将造成不完全回滚,不具有原子性不支持外...

2018-08-08 21:49:38 98

转载 Idea 常用快捷键 列表

Idea 常用快捷键 列表(实战终极总结!!!!) 1. -----------自动代码-------- 常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码 例如要输入for(User user : users)只需输入user.for+Tab 再比如,要输入Date birthday = user.getBirt...

2018-07-29 14:25:13 143

转载 Java8常用的内置函数式接口

JDK 1.8 API中包含了很多内置的函数式接口。有些是在以前版本的Java中大家耳熟能详的,例如Comparator接口,或者Runnable接口。对这些现成的接口进行实现,可以通过@FunctionalInterface 标注来启用Lambda功能支持。此外,Java 8 API 还提供了很多新的函数式接口,来降低程序员的工作负担。有些新的接口已经在Google Guava库中很有名了。...

2018-07-29 11:02:12 3268 1

转载 Java代码优化

代码优化的目标是:1、减小代码的体积2、提高代码运行的效率本文的内容有些来自网络,有些来自平时工作和学习,当然这不重要,重要的是这些代码优化的细节是否真真正正地有用。那本文会保持长期更新,只要有遇到值得分享的代码优化细节,就会不定时地更新此文。代码优化细节1、尽量指定类、方法的final修饰符带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final...

2018-07-23 21:08:30 192

原创 最短路径算法

最短路径Floyd算法一支部队急行军,要经过A,B,C,D据点,这四个据点之间有些之间有路到达,有些没有。为了最大的节约时间,部队指挥部需要知道任意两个据点之间的最短时间。以下是两两之间所花的时间(如下图所示):  那么如何才能让两个据点之间花的时间变短?加入第三个据点即可。因此判断条件就出来了: 两个据点之间花费的时间如果比加入第三个据点的时间长,那么两个据点之间的最短时间即是加入第三个...

2018-07-23 13:30:49 385

原创 Linux搭建Tomcat

目录 准备工作JDK配置Tomcat配置准备工作Linux(CentOS7)下载好JDK和tomcat安装文件。如果Linux能上网,可以通过wget命令下载JDK8.#wget \http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-...

2018-07-22 17:08:51 600

原创 配置virtualbox虚拟机Linux系统桥接模式上网

简介VirtualBox中有4中网络连接方式:1.NAT 2.Bridged Adapter 3.Internal 4.Host-only Adapter1、NATNAT:Network Address Translation,网络地址转换NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:Guest访问网络的所有数据都是由主机提供的,Guest并不真实存在于网络中,...

2018-07-21 18:40:16 20397

原创 Java为什么使用补码进行计算

我们主要要解决的问题就是负数的表示,而众所周知,绝对值相等的两个正负数之和为0。    假设我们有正数 0000 0000 0000 1111,我们如何表示其相反数呢?一般我们的思路是,找一个数,跟它相加的结果等于0,但是我们发现,要找出一个与它相加后结果等于0的数还是要略加思考一下的(因为要计算进位),所以,为何不找出一个与它相加后结果是1111 1111 1111 1111的数,然后该数+1即...

2018-07-08 19:37:39 952

原创 Java里的AES/CBC/PKCS7Padding加密解密

Java 里的AES/CBC/PKCS7Padding加解密,由于Java对PKCS7Padding支持不是很好,所以在网上找了许多类似资料,各有各的实现,最后总结下来是很简单的。也不费话了,直接上代码。public final class AesUtils { private static final String CHARSET_NAME = "UTF-8"; private ...

2018-07-04 17:13:41 15173 2

转载 浅谈IO模型

服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(Blocking IO):即传统的IO模型。(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。(3)IO多路复用(IO Multiplexing):即经典的Reac...

2018-07-04 16:56:56 125

原创 Jackson 序列化和反序列化自定义日期格式

在Java里的Json序列化自定义日期格式。尤其是多语言环境里日期格式是不一样,导致无法兼容。肥话少说,直接上代码。源码如下:public final class JacksonUtils {    private JacksonUtils() {    }    /**     * 单例注册Jackson     */    private static class Singleton {   ...

2018-07-04 16:49:54 8258

转载 java 8 集合操作之Stream

Stream的基本概念Stream和集合的区别:1.Stream不会自己存储元素。元素储存在底层集合或者根据需要产生。2.Stream操作符不会改变源对象。相反,它会返回一个持有结果的新的Stream。3.Stream操作可能是延迟执行的,这意味着它们会等到需要结果的时候才执行。 Stream操作的基本过程,可以归结为3个部分:创建一个Stream。在一个或者多个操作中,将...

2018-07-03 20:12:07 469

原创 Guava 本地缓存(Caches)

1.    本地缓存采用的是Guava Cache的expireAfterWrite刷新机制。 Guava Cache本地缓存基于expireAfterWrite刷新缓存机制。1)expireAfterWrite缓存刷新是在指定的时间段内没有更新就会被回收。所以对缓存数据时效性高,可以考虑使用expireAfterWrite,使每次更新缓存后在指定时间让缓存失效,然后重新加载缓存。而Guaua C...

2018-07-03 13:53:45 1168

原创 Java8 异步线程

1.   采用ThreadLocal(本地线程变量)将服务的请求参数信息维护在每一个线程的独享变量。² 减少对共享资源同步机制处理,² 减少代码结构复杂化,做到松耦合。(原因是:因为业务代码每层中处理都是针对接口请求参数而来的,所以是一种强依赖)² 可以将一些重复计算逻辑的结果保存,减少二次计算。 2.   采用CompletableFuture做异步流程处理,在对接Soa2.0接口实现转换成Li...

2018-07-03 13:49:25 11790

原创 代理(Proxy)模式

代理(Proxy)模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式所涉及的角色有:抽象主题角色(Subject):声明了真实主题和代理主题的共同接口,这样一来在任何使用真实主题的地方都可以使用代理主题。代理主题(Proxy)角色:代理主题角色内部含有对真是主题的引用,从而可以在任何时候操作真实主题对象;代理主题角色提供一个与真实主题角色相同的接口,以便可以在任何时候都可以替代...

2018-07-01 11:31:13 129

转载 Java线程转储分析

一、线程状态 在具体分析线程转储数据之前,我们首先要明确线程的状态。java.lang.Thread.State枚举类中定义了如下几种类型:NEW:线程创建尚未启动。RUNNABLE:包括操作系统线程状态中的Ready和Running,可能在等待时间片或者正在执行。BLOCKED:线程被阻塞。WAITING:不会分配CPU执行时间,直到别的线程显式的唤醒,否则无限期等待。LockS

2017-06-27 16:32:11 763

空空如也

空空如也

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

TA关注的人

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