自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (3)
  • 收藏
  • 关注

原创 springboot配置多数据源dataSourceInitializer报错问题

springboot配置多数据源dataSourceInitializer报错问题报错信息:No qualifying bean of type 'javax.sql.DataSource' available: expected single matching bean but found 产生原因:springboot 数据源初始化类注入数据源时发现多个匹配项,该类是springbo...

2019-01-30 09:43:42 7322

原创 阿里读写分离数据源SELECT LAST_INSERT_ID()获取不到id

异常现象insert 通过 mybatis 以下语法给领域类 赋予的 id 值为0. 后续根据主键的update操作失效。且无异常抛出<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long"> SELECT LAST_INSERT_ID() &amp

2018-07-02 17:57:21 1911

原创 贝叶斯推断

贝叶斯推断简述:一种统计学算法,用来估计统计量的某种性质。 它建立在转关判断的基础上,不需要客观证据,先估计一个值,然后根据实际结果不断修正。贝叶斯定理公式:p(A|B) = P(B|A)P(A)P(B)\frac{P(B|A)P(A)}{P(B)}解释:p(A|B) 是事件B发生的情况下,事件A发生的概率推导:P(A|B)P(B) = P(A⋂B)P(A \bigcap B)p(A|B)P(B)

2018-05-07 16:18:29 1556

原创 InetAddress.getLocalHost().getHostAddress() 获取ip异常

异常信息:java.net.UnknownHostException: 【hostName】: 【hostName】: Name or service not known原因:在系统的 /etc/Hostname中配置了“【hostName】” 作为主机名, 而在/etc/hosts文件中没有 相应的“【hostName】”。解决方案:修正对应关系 删除Hostname 或...

2018-04-09 09:52:50 7039

原创 深入理解java虚拟机 摘要(八)--JDK的可视化工具

深入理解java虚拟机 摘要二、虚拟机性能监控与故障处理工具1. JDK的可视化工具(一)JConsole:Java监视与管理控制台JConsole(Java Monitoring and Management Console)是一种基于JMX的可视化监视、管理工具。它管理部分的功能是针对JMX MBean进行管理,由于MBean可以使用代码、中间件服务器的管理控制台或者所有符合JMX规范的软件进行

2018-03-02 15:36:21 283

原创 深入理解java虚拟机 摘要(七)-- JDK的命令行工具

深入理解java虚拟机 摘要二、虚拟机性能监控与故障处理工具1. JDK的命令行工具 名称 主要作用 jps JVM Process Status Tool,显示制定系统内错有的Hotspot虚拟机进程 jstat JVM Statictics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据 j...

2018-02-26 11:41:44 303

原创 深入理解java虚拟机 摘要(六)--内存分配与回收策略

深入理解java虚拟机 摘要一、自动内存管理机制6. 内存分配与回收策略 对象的内存分配,往大方向讲,就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地栈上分配 ),对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节取决于当前使用的是哪一...

2018-02-02 14:51:14 211

原创 深入理解java虚拟机 摘要(五)--理解GC日志

深入理解java虚拟机 摘要一、自动内存管理机制5.理解GC日志每一种收集器的日志形式都是由它们自身的实现所决定的,换而言之,每个收集器的日志格式都可以不一样。33.125:[GC[DefNew:3324K->152K(3712K),0.0025925 secs]3324K->152K(11904K),0.0031680 secs]1 0 0.6 6 7:[F...

2018-02-01 11:33:52 206

转载 mysql规范

一、基础规范1、使用InnoDB存储引擎支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高2、推荐使用utf8mb4字符集无需转码,无乱码风险, 支持emoji表情以及部分不常见汉字3、表、字段必须加注释方便他人理解字段意思。4、不在数据库做计算禁止使用存储过程、视图、触发器、Event。 在并发量大的情况下,这些功能很可能将数据库拖跨

2018-01-30 09:41:07 561

原创 深入理解java虚拟机 摘要(四)--垃圾收集器与内存分配策略

深入理解java虚拟机 摘要一、自动内存管理机制4.垃圾收集器与内存分配策略主要考虑 Java堆和方法区 内存对象死亡判断 在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。 引用计数算法 给对象中添

2018-01-30 09:40:23 493

原创 深入理解java虚拟机 摘要(三)--实战:OutOfMemoryError异常

深入理解java虚拟机 摘要一、自动内存管理机制3. 实战:OutOfMemoryError异常Java堆溢出: 测试代码: public class Tests { static class Obj{ } public static void main(String[] args) throws >Exception ...

2018-01-30 09:39:37 162

原创 深入理解java虚拟机 摘要(二)--HotSpot虚拟机对象探秘

深入理解java虚拟机 摘要一、自动内存管理机制2. HotSpot虚拟机对象探秘对象的创建: 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程. 在类加载检查通过后,接下来虚拟机将为新生对象分配内存。 内存分配完成后,虚

2018-01-30 09:38:31 193

原创 深入理解java虚拟机 摘要(一)--运行时数据区域

深入理解java虚拟机 摘要(一)–运行时数据区域)一、自动内存管理机制1. 运行时数据区域程序计数器(线程私有): 一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。JAVA虚拟机栈(线程私有): Java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。 S

2017-12-21 10:24:34 266 1

原创 阿里云服务优惠分享

阿里云幸运券是有由阿里云官方推出的一项针对小型用户的优惠活动;使用幸运券可以在官方优惠的基础上随机减免一定金额的费用;非常适合中小型客户使用。 领取地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=7aiv8use&utm_source=7aiv8use   使用阿里云幸运券购买后还可以获得抽

2017-08-04 14:16:28 724

转载 服务端指南 | 良好的 API 设计指南

服务端指南 | 良好的 API 设计指南 版本号在 RESTful API 中,API 接口应该尽量兼容之前的版本。但是,在实际业务开发场景中,可能随着业务需求的不断迭代,现

2017-08-03 10:36:32 545

转载 lombok @EqualsAndHashCode 注解的影响

官方文档:@EqualsAndHashCode原文中提到的大致有以下几点: 1. 此注解会生成equals(Object other) 和 hashCode()方法。 2. 它默认使用非静态,非瞬态的属性 3. 可通过参数exclude排除一些属性 4. 可通过参数of指定仅使用哪些属性 5. 它默认仅使用该类中定义的属性且不调用父类的方法 6. 可通过callSuper=true解决上

2017-07-21 10:30:19 1857

原创 @Autowired的使用:推荐对构造函数进行注释

在编写代码的时候,使用@Autowired注解是,发现IDE报的一个警告,如下:  Spring Team recommends “Always use constructor based dependency injection in your beans. Always use assertions for mandatory dependencies”

2017-07-20 17:53:01 11625 1

转载 多研究些架构,少谈些框架(4)-- 架构师是技术的使用者而不是信徒

我承认我是标题党, 为什么要写这篇充满争议的文章?目前架构师这个职位特别火热,程序员的目标都是成为一个令人尊敬的架构师。但是我们真的理解架构师应该做些什么?很多人把架构师和框架师等同起来,认为研究框架多的才是架构师下面说的情况请勿对号入座。盲目的追新:技术人员的喜好往往是什么技术流行就追什么技术。现在的技术发展快,前后端不断涌现各种框架,我们恨不得把这些框架都用在自己的项目里才行,要不然怎么好意思和

2017-07-20 09:36:03 727

转载 多研究些架构,少谈些框架(3)-- 微服务和事件驱动

接上篇,我们采用了领域驱动的开发方式,使用了充血模型,享受了他的好处,但是也不得不面对他带来的弊端。这个弊端在分布式的微服务架构下面又被放大。事务一致性事务一致性的问题在Monolithic下面不是大问题,在微服务下面却是很致命,我们回顾一下所谓的ACID原则Atomicity - 原子性,改变数据状态要么是一起完成,要么一起失败Consistency - 一致性,数据的状态是完整一致的Iso

2017-07-20 09:34:33 1919

转载 多研究些架构,少谈些框架(2)-- 微服务和充血模型

上篇我们聊了微服务的DDD之间的关系,很多人还是觉得很虚幻,DDD那么复杂的理论,聚合根、值对象、事件溯源,到底我们该怎么入手呢?实际上DDD和面向对象设计、设计模式等等理论有千丝万缕的联系,如果不熟悉OOA、OOD,DDD也是使用不好的。不过学习这些OO理论的时候,大家往往感觉到无用武之地,因为大部分的Java程序员开发生涯是从学习J2EE经典的分层理论开始的(Action、Service、Dao

2017-07-20 09:32:59 1030

转载 多研究些架构,少谈些框架(1) -- 论微服务架构的核心概念

微服务架构和SOA区别微服务现在辣么火,业界流行的对比的却都是所谓的Monolithic单体应用,而大量的系统在十几年前都是已经是分布式系统了,那么微服务作为新的理念和原来的分布式系统,或者说SOA(面向服务架构)是什么区别呢?我们先看相同点:需要Registry,实现动态的服务注册发现机制;需要考虑分布式下面的事务一致性,CAP原则下,两段式提交不能保证性能,事务补偿机制需要考虑;同步调用还

2017-07-20 09:30:26 1471

原创 Java开发中的23种设计模式--外观模式

外观模式(Facade)    外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口

2017-07-11 17:36:14 321

原创 设计模式的六大原则

1、开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。

2017-07-11 10:06:40 222

原创 Java开发中的23种设计模式--工厂

Java开发中的23种设计模式--工厂

2017-07-10 11:55:08 381

原创 Java开发中的23种设计模式--单例

在GoF的23种设计模式中,单例模式是比较简单的一种。然而,有时候越是简单的东西越容易出现问题。下面就单例设计模式详细的探讨一下。所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在。就像是Java Web中的application,也就是提供了一个全局变量,用处相当广泛,比如保存全局数据,实现全局性的操作等。

2017-07-06 17:07:23 323

原创 给Java新手的一些建议——Java知识点归纳(Java基础部分)

给Java新手的一些建议——Java知识点归纳(Java基础部分)

2017-06-23 17:15:46 290

原创 spring boot Websocket

spring boot Websocket

2017-06-22 16:38:56 905

转载 Java学习心得

java学习心得

2017-06-22 10:33:36 548

转载 2. Java中的垃圾收集 - GC参考手册

Java中的垃圾收集 - GC参考手册

2017-06-15 09:27:33 308

转载 1. 垃圾收集简介 - GC参考手册

垃圾收集简介 - GC参考手册

2017-06-15 09:22:13 318

原创 JAVA SE中你可能不知道的知识点

一、你可以给数字添加下划线 例如1_000_000(或者0b1111_0100_0010_0100_0000)表示100万。下划线阅读起来更容易,JAVA编译器会直接删除他们二、带标签的break声明break声明只是跳出直接封闭循环或者switch。如果你想跳到另外一个封闭声明的结束,则使用带标签的break声明。在应该退出的声明加上标签,像这样,给break提供标签:public st

2017-04-24 17:13:18 981

原创 IntelliJ IDEA多级文件夹显示的坑

IntelliJ IDEA多级文件夹显示的坑使用IntelliJ IDEA创建多级文件夹时,文件夹名为com.immer.monitor.persistence 和 com/immer/monitor/persistence 均会显示为如下图所示但实际结构确实截然不同 com.immer.monitor.persistence 是单个文件夹 而 com/immer/monitor/persi

2017-04-01 14:33:21 21785 7

原创 使用springBoot实现 web后端(二)

基于springBoot的Web后端 (二)

2017-03-20 14:16:55 5885 6

原创 使用springBoot实现 web后端(一)

项目概述项目使用IntrlliJ IDEA 开发工具。springBoot Project,相对于spring框架有大量的默认配置,能省下大量配置文件编辑时间。maven仓库管理工具。

2017-03-16 11:02:50 6040 2

转载 查看java堆栈信息

通过查看Java堆栈的信息,我们可以看到系统日志中没有打印的日志,找到问题的根源。    要查看java堆栈信息,首先得找到程序的进程号,可以运用如下命令    jps -lvm 这个命令可以显示出程序,对应的进程号等,有关参数这里不讲述,如下:12989 jws.server.Server -javaagent:/home/jws/jws-1.4.1.1/framework/

2017-02-08 13:48:42 11242

转载 mybatis的缓存机制(一级缓存二级缓存和刷新缓存)和mybatis整合ehcache

mybatis的缓存机制(一级缓存二级缓存和刷新缓存)和mybatis整合ehcache

2017-02-08 09:51:45 1058

转载 Redis实现Mybatis的二级缓存

一、Mybatis的缓存 通大多数ORM层框架一样,Mybatis自然也提供了对一级缓存和二级缓存的支持。一下是一级缓存和二级缓存的作用于和定义。    1、一级缓存是SqlSession级别的缓存。在操作数据库时需要构造 sqlSession对象,在对象中有一个(内存区域)数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。

2017-02-07 16:58:23 792

转载 数据库SQL优化大总结之 百万级数据库优化方案

网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。

2017-01-09 21:50:33 329

原创 java mybatis XML文件中大于号小于号转义

java mybatis XML文件中大于号小于号转义

2017-01-06 15:57:37 27324

原创 Spring 定时任务之 @Scheduled cron表达式

Spring 定时任务之 @Scheduled cron表达式

2017-01-06 14:28:51 1144

JAVA并发编程实践 带书签

本书深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册。书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。

2019-07-12

How Tomcat Works 英文版 带书签

Welcome to How Tomcat Works. This book dissects Tomcat 4.1.12 and 5.0.18 and explains the internal workings of its free, open source, and most popular servlet container code-named Catalina. Tomcat is a complex system, consisting of many different components. Those who want to learn how Tomcat works often do know where to start. What this book does is provide the big picture and then build a simpler version of each component to make understanding that component easier. Only after that will the real component be explained

2019-06-11

EditPlus.rar

EditPlus(文字编辑器)汉化版是一套功能强大,可取代记事本的文字编辑器,拥有无限制的撤消与重做、英文拼字检查、自动换行、列数标记、搜寻取代、同时编辑多文件、全屏幕浏览功能。而它还有一个好用的功能,就是它有监视剪贴板的功能,同步于剪贴板可自动粘贴进 EditPlus 的窗口中省去粘贴的步骤。另外它也是一个非常好用的HTML编辑器,它除了支持颜色标记、HTML 标记,同时支持C、C++、Perl、Java,另外,它还内建完整的HTML & CSS1 指令功能,对于习惯用记事本编辑网页的朋友,它可帮你节省一半以上的网页制作时间,若你有安装IE3.0 以上版本,它还会结合IE浏览器于 EditPlus 窗口中,让你可以直接预览编辑好的网页(若没安装IE,也可指定浏览器路径)。因此,它是一个相当棒又多用途多状态的编辑软件。

2015-06-07

空空如也

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

TA关注的人

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