- 博客(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
7637
原创 阿里读写分离数据源SELECT LAST_INSERT_ID()获取不到id
异常现象insert 通过 mybatis 以下语法给领域类 赋予的 id 值为0. 后续根据主键的update操作失效。且无异常抛出<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long"> SELECT LAST_INSERT_ID() &
2018-07-02 17:57:21
2008
原创 贝叶斯推断
贝叶斯推断简述:一种统计学算法,用来估计统计量的某种性质。 它建立在转关判断的基础上,不需要客观证据,先估计一个值,然后根据实际结果不断修正。贝叶斯定理公式: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
1672
原创 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
7531
原创 深入理解java虚拟机 摘要(八)--JDK的可视化工具
深入理解java虚拟机 摘要二、虚拟机性能监控与故障处理工具1. JDK的可视化工具(一)JConsole:Java监视与管理控制台JConsole(Java Monitoring and Management Console)是一种基于JMX的可视化监视、管理工具。它管理部分的功能是针对JMX MBean进行管理,由于MBean可以使用代码、中间件服务器的管理控制台或者所有符合JMX规范的软件进行
2018-03-02 15:36:21
315
原创 深入理解java虚拟机 摘要(七)-- JDK的命令行工具
深入理解java虚拟机 摘要二、虚拟机性能监控与故障处理工具1. JDK的命令行工具 名称 主要作用 jps JVM Process Status Tool,显示制定系统内错有的Hotspot虚拟机进程 jstat JVM Statictics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据 j...
2018-02-26 11:41:44
338
原创 深入理解java虚拟机 摘要(六)--内存分配与回收策略
深入理解java虚拟机 摘要一、自动内存管理机制6. 内存分配与回收策略 对象的内存分配,往大方向讲,就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地栈上分配 ),对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节取决于当前使用的是哪一...
2018-02-02 14:51:14
243
原创 深入理解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
249
转载 mysql规范
一、基础规范1、使用InnoDB存储引擎支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高2、推荐使用utf8mb4字符集无需转码,无乱码风险, 支持emoji表情以及部分不常见汉字3、表、字段必须加注释方便他人理解字段意思。4、不在数据库做计算禁止使用存储过程、视图、触发器、Event。 在并发量大的情况下,这些功能很可能将数据库拖跨
2018-01-30 09:41:07
606
原创 深入理解java虚拟机 摘要(四)--垃圾收集器与内存分配策略
深入理解java虚拟机 摘要一、自动内存管理机制4.垃圾收集器与内存分配策略主要考虑 Java堆和方法区 内存对象死亡判断 在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。 引用计数算法 给对象中添
2018-01-30 09:40:23
541
原创 深入理解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
186
原创 深入理解java虚拟机 摘要(二)--HotSpot虚拟机对象探秘
深入理解java虚拟机 摘要一、自动内存管理机制2. HotSpot虚拟机对象探秘对象的创建: 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程. 在类加载检查通过后,接下来虚拟机将为新生对象分配内存。 内存分配完成后,虚
2018-01-30 09:38:31
216
原创 深入理解java虚拟机 摘要(一)--运行时数据区域
深入理解java虚拟机 摘要(一)–运行时数据区域)一、自动内存管理机制1. 运行时数据区域程序计数器(线程私有): 一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。JAVA虚拟机栈(线程私有): Java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。 S
2017-12-21 10:24:34
316
原创 阿里云服务优惠分享
阿里云幸运券是有由阿里云官方推出的一项针对小型用户的优惠活动;使用幸运券可以在官方优惠的基础上随机减免一定金额的费用;非常适合中小型客户使用。 领取地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=7aiv8use&utm_source=7aiv8use 使用阿里云幸运券购买后还可以获得抽
2017-08-04 14:16:28
814
转载 服务端指南 | 良好的 API 设计指南
服务端指南 | 良好的 API 设计指南 版本号在 RESTful API 中,API 接口应该尽量兼容之前的版本。但是,在实际业务开发场景中,可能随着业务需求的不断迭代,现
2017-08-03 10:36:32
593
转载 lombok @EqualsAndHashCode 注解的影响
官方文档:@EqualsAndHashCode原文中提到的大致有以下几点: 1. 此注解会生成equals(Object other) 和 hashCode()方法。 2. 它默认使用非静态,非瞬态的属性 3. 可通过参数exclude排除一些属性 4. 可通过参数of指定仅使用哪些属性 5. 它默认仅使用该类中定义的属性且不调用父类的方法 6. 可通过callSuper=true解决上
2017-07-21 10:30:19
1925
原创 @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
11691
1
转载 多研究些架构,少谈些框架(4)-- 架构师是技术的使用者而不是信徒
我承认我是标题党, 为什么要写这篇充满争议的文章?目前架构师这个职位特别火热,程序员的目标都是成为一个令人尊敬的架构师。但是我们真的理解架构师应该做些什么?很多人把架构师和框架师等同起来,认为研究框架多的才是架构师下面说的情况请勿对号入座。盲目的追新:技术人员的喜好往往是什么技术流行就追什么技术。现在的技术发展快,前后端不断涌现各种框架,我们恨不得把这些框架都用在自己的项目里才行,要不然怎么好意思和
2017-07-20 09:36:03
782
转载 多研究些架构,少谈些框架(3)-- 微服务和事件驱动
接上篇,我们采用了领域驱动的开发方式,使用了充血模型,享受了他的好处,但是也不得不面对他带来的弊端。这个弊端在分布式的微服务架构下面又被放大。事务一致性事务一致性的问题在Monolithic下面不是大问题,在微服务下面却是很致命,我们回顾一下所谓的ACID原则Atomicity - 原子性,改变数据状态要么是一起完成,要么一起失败Consistency - 一致性,数据的状态是完整一致的Iso
2017-07-20 09:34:33
1986
转载 多研究些架构,少谈些框架(2)-- 微服务和充血模型
上篇我们聊了微服务的DDD之间的关系,很多人还是觉得很虚幻,DDD那么复杂的理论,聚合根、值对象、事件溯源,到底我们该怎么入手呢?实际上DDD和面向对象设计、设计模式等等理论有千丝万缕的联系,如果不熟悉OOA、OOD,DDD也是使用不好的。不过学习这些OO理论的时候,大家往往感觉到无用武之地,因为大部分的Java程序员开发生涯是从学习J2EE经典的分层理论开始的(Action、Service、Dao
2017-07-20 09:32:59
1117
转载 多研究些架构,少谈些框架(1) -- 论微服务架构的核心概念
微服务架构和SOA区别微服务现在辣么火,业界流行的对比的却都是所谓的Monolithic单体应用,而大量的系统在十几年前都是已经是分布式系统了,那么微服务作为新的理念和原来的分布式系统,或者说SOA(面向服务架构)是什么区别呢?我们先看相同点:需要Registry,实现动态的服务注册发现机制;需要考虑分布式下面的事务一致性,CAP原则下,两段式提交不能保证性能,事务补偿机制需要考虑;同步调用还
2017-07-20 09:30:26
1516
原创 Java开发中的23种设计模式--外观模式
外观模式(Facade) 外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口
2017-07-11 17:36:14
366
原创 设计模式的六大原则
1、开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。
2017-07-11 10:06:40
276
原创 Java开发中的23种设计模式--单例
在GoF的23种设计模式中,单例模式是比较简单的一种。然而,有时候越是简单的东西越容易出现问题。下面就单例设计模式详细的探讨一下。所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在。就像是Java Web中的application,也就是提供了一个全局变量,用处相当广泛,比如保存全局数据,实现全局性的操作等。
2017-07-06 17:07:23
349
原创 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
1045
原创 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
21945
4
原创 使用springBoot实现 web后端(一)
项目概述项目使用IntrlliJ IDEA 开发工具。springBoot Project,相对于spring框架有大量的默认配置,能省下大量配置文件编辑时间。maven仓库管理工具。
2017-03-16 11:02:50
6609
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
11312
转载 mybatis的缓存机制(一级缓存二级缓存和刷新缓存)和mybatis整合ehcache
mybatis的缓存机制(一级缓存二级缓存和刷新缓存)和mybatis整合ehcache
2017-02-08 09:51:45
1106
转载 Redis实现Mybatis的二级缓存
一、Mybatis的缓存 通大多数ORM层框架一样,Mybatis自然也提供了对一级缓存和二级缓存的支持。一下是一级缓存和二级缓存的作用于和定义。 1、一级缓存是SqlSession级别的缓存。在操作数据库时需要构造 sqlSession对象,在对象中有一个(内存区域)数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。
2017-02-07 16:58:23
858
转载 数据库SQL优化大总结之 百万级数据库优化方案
网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。
2017-01-09 21:50:33
372
JAVA并发编程实践 带书签
2019-07-12
How Tomcat Works 英文版 带书签
2019-06-11
EditPlus.rar
2015-06-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人