
Java
zhglance
代码可以将就,也可以讲究!
展开
-
RocketMQ的长轮询消费方式
1.Push推送方式(即Server端推送消息给client):当Server收到消息发送者发送过来的消息后,Server端主动把消息推送给client,这个方式实时性比较好,但是增加了Server的工作负担,对Server的性能造成影响;另外Client如果不能够及时处理Server推送的消息,也是很大的问题。2.Pull拉取方式(即Client从Server拉取消息):Client...原创 2018-08-15 19:35:54 · 2584 阅读 · 0 评论 -
Spring bean的生命周期
Spring bean的生命周期原创 2017-07-21 16:11:51 · 336 阅读 · 0 评论 -
Web.xml的加载过程
Web.xml的加载过程原创 2017-07-13 17:11:57 · 1614 阅读 · 0 评论 -
Web.xml配置说明
1. web.xml配置详解: <web-app> <!--指定WEB应用的名字--> <display-name>MyWeb</display-name> <!--WEB应用描述信息--> <description>MyWeb demo</description>原创 2017-07-13 11:39:41 · 407 阅读 · 0 评论 -
Idea环境下使用JFinal开发Web项目入门详解(图文版)
最近看到网上有人推荐使用JFinal(官网:http://www.jfinal.com/)开发WEB + ORM项目,自己于是到官网学习JFinal,官方文档提供了使用eclipse开发Jfinal项目的步骤,只是对Idea做了简略说明,没有详细的介绍,对于智商低的小编来说,看完文档还是没有搭建起来,于是根据网上资料,小编自己写一篇入门详解,以便自己和他人学习。原创 2017-06-19 16:03:31 · 15517 阅读 · 10 评论 -
JodaTime时间处理工具使用详解
工作中经常用到java日期类型Date、Calendar或SimpleDateFormat,但是这些日期工具类要么提供了过期的方法(Date),要么就是功能不够强大。最近突然用到了Joda-Time日期工具,发现非常好用,就撰写此文,以便学习和交流。原创 2017-06-09 16:26:40 · 3556 阅读 · 0 评论 -
使用BigDecimal进行科学计算表示方式的转换
使用BigDecimal进行科学计算表示方式的转换原创 2017-06-09 16:42:37 · 1030 阅读 · 0 评论 -
ZooKeeper 常用应用场景原理详解
ZooKeeper 常用应用场景原理详解,zookepper存放数据的目录结构类似于标准的文件系统格式,如果使用过window或linux就能体会到其内部的数据结构原创 2017-02-15 20:29:54 · 1209 阅读 · 0 评论 -
Protostuff序列化和反序列化使用说明
google原生的protobuffer使用起来相当麻烦,首先要写.proto文件,然后编译.proto文件,生成对应的.java文件,鄙人试了一次,发现真的很麻烦。而protostuff的官方网站(http://www.protostuff.io/documentation/runtime-schema/),对于智商比较低的小编来说也略显生涩,于是鄙人就根据项目中用到的protostuff,撰写此文,以方便自己和他人加深印象和学习。原创 2017-02-20 18:53:33 · 21259 阅读 · 6 评论 -
Intellij IDEA 安装lombok及使用详解
项目中经常使用bean,entity等类,绝大部分数据类类中都需要get、set、toString、equals和hashCode方法,虽然eclipse和idea开发环境下都有自动生成的快捷方式,但自动生成这些代码后,如果bean中的属性一旦有修改、删除或增加时,需要重新生成或删除get/set等方法,给代码维护增加负担。而使用了lombok则不一样,使用了lombok的注解(@Setter,@Getter,@ToString,@@RequiredArgsConstructor,@EqualsAndHas原创 2017-02-08 19:15:40 · 298318 阅读 · 46 评论 -
Synchronized和Lock的区别
1、Lock是java的一个interface接口,而synchronized是Java中的关键字,synchronized是由JDK实现的,不需要程序员编写代码去控制加锁和释放;Lock的接口如下:```public interface Lock { void lock(); void lockInterruptibly() throws InterruptedExcep...原创 2018-08-07 17:53:05 · 2267 阅读 · 0 评论 -
Spring AOP入门使用详解
AOP入门详解原创 2016-09-09 09:50:45 · 762 阅读 · 0 评论 -
RocketMQ 入门使用详解
RocketMQ是阿里巴巴在2012年开源的分布式消息中间件,目前已经捐赠给Apache基金会,已经于2016年11月成为 Apache 孵化项目,相信RocketMQ的未来会发挥着越来越大的作用,将有更多的开发者因此受益。 本文仅对RocketMQ的简单实用做入门性介绍,不对RocketMQ的底层原理进行深入介绍,后续文章将对RocketMQ的原理做详细介绍。原创 2017-02-10 09:49:36 · 53587 阅读 · 27 评论 -
Java NIO与IO的区别
Java.nio 俗称 New IO (从1.4开始),全称是Java Non-blocking IO,即非阻塞的IO,为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络IO。原创 2017-09-21 16:10:32 · 871 阅读 · 0 评论 -
RestEasy 调用Rest接口使用详解
RestEasy 调用Rest接口使用详解原创 2017-01-22 18:39:25 · 6007 阅读 · 7 评论 -
Spock单元测试框架使用详解
Spock(Spock官网:http://spockframework.org/)作为java和Groovy测试一种表达的规范语言,其参考了Junit、Groovy、jMock、Scala等众多语言的优点,并采用Groovy作为其语法,目前能够在绝大多数的集成开发环境(如eclipse,Intellij Ieda),构建工具(如Maven,gradle)等场景运行。Spock单元测试相对于传统的junit、JMockito、EsayMock、Mockito、PowerMock,由于使用了Groovy作为语法原创 2016-09-14 10:48:20 · 4288 阅读 · 0 评论 -
JMockit Mock测试入门详解
JMockit Mock测试入门详解,简单介绍了JMockit的使用方法原创 2016-09-02 20:33:06 · 2201 阅读 · 0 评论 -
Java Metric 入门详解
翻译自:http://metrics.dropwizard.io/3.1.0/getting-started/ 待完成......翻译 2017-02-06 17:22:48 · 3306 阅读 · 0 评论 -
JetBrick 入门详解
JetBrick的简单使用方法,仅作为简单的入门,不做内部详细的探讨。原创 2016-09-07 19:01:36 · 4599 阅读 · 2 评论 -
Logback日志工具使用详解
由于Logback比log4j和SLF4J拥有众多优点,如性能(据说有时达到10倍以上),并且支持自动加载配置文件,自动删除旧的日志文件,以及同一个logback配置文件同时适应开发,测试,生产等。因此Logback官方强烈建议开发人员从log4j转到使用Logback。原创 2017-02-08 14:12:21 · 4175 阅读 · 0 评论 -
根据CronSequenceGenerator计算cron表达式的时间
根据CronSequenceGenerator计算cron表达式的时间原创 2017-01-18 19:48:32 · 9264 阅读 · 1 评论 -
The forked VM terminated without saying properly goodbye
[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[INFO] Total time: 36.927 s[INFO] Finished at: 2016-12-14T15:13:37+08:00[INFO] Final Memory: 48M/原创 2016-12-16 17:17:12 · 14484 阅读 · 3 评论 -
Google EventBus 使用详解
EventBus是Google.Guava提供的消息发布-订阅类库,它实现了观察者设计模式,消息通知负责人通过EventBus去注册/注销观察者,最后由消息通知负责人给观察者发布消息。首先使用 maven 依赖:<!-- https://mvnrepository.com/artifact/com.google.guava/guava --> <dependenc...原创 2017-01-10 16:00:52 · 20272 阅读 · 0 评论 -
深入理解 RocketMQ
本文对RocketMQ的仅做理论性阐述,以便更深入的理解RocketMQ的内部机制,遇到棘手的问题更容易入手解决。关于代码实战请参考鄙人的另一篇文章:RocketMQ 入门使用详解原创 2017-02-13 22:42:36 · 5802 阅读 · 2 评论 -
Maven常用指令和配置说明
本文总结日常工作中经常用到的Maven命令,作为总结,以便学习和回顾。原创 2017-02-09 11:11:26 · 6506 阅读 · 0 评论 -
Date与Quartz的cron之间的相互转换
实现Date与Quartz的cron之间的相互转换.原创 2016-08-05 16:07:22 · 17661 阅读 · 4 评论 -
Mongo的morphia读取Map<String>>类型数据的问题
最近一直使用morphia,给mongo数据查询带来很多遍历,但是最近项目遇到了一个严重的问题,在从Mongo数据库中查询Map<String, List<Object>>字段时,针对value值为空list时(即[ ]),竟然读到数据的严重问题,具体描述如下: 1.Entity数据结构: import org.mongodb.morph...原创 2017-06-14 18:21:41 · 2271 阅读 · 0 评论 -
JUnitParams参数化单元测试使用详解
JUnitParams(github地址:https://github.com/Pragmatists/JUnitParams)作为一个开源的单元测试框架,提供了参数化测试,Coder不需要通过构造器来设置参数,JUnitParams可以由测试方法提供参数,减少了代码量。接下来咱们就一探究竟。原创 2017-02-23 12:56:51 · 5500 阅读 · 0 评论 -
分布式开放消息系统(RocketMQ)的原理与实践(转载)
文章转载自:简书:http://www.jianshu.com/p/453c6e7ff81c一年前为了一次内部分享而写的这篇文章,没想到会有这么多人阅读,抽空更新一版,对文中一些晦涩的语句做了修正,删除了一些口水话和附录内容,尽量给大家更好的阅读体验 (第二版更新于2017年春节)。分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消转载 2017-03-23 11:34:46 · 675 阅读 · 0 评论 -
Java回调机制详解
网上关于Java回调的文章一抓一大把,但是看完总是云里雾里,不知所云,特别是看到抓取别人的代码走两步时,总是现眼。于是自己决定写一篇关于Java机制的文章,以方便大家和自己更深入的学习Java回调机制。原创 2017-01-19 14:25:46 · 544 阅读 · 0 评论 -
Elastic Job 入门详解
Elastic job是当当网架构师张亮,曹昊和江树建基于Zookepper、Quartz开发并开源的一个Java分布式定时任务,解决了Quartz不支持分布式的弊端。Elastic job主要的功能有支持弹性扩容,通过Zookepper集中管理和监控job,支持失效转移等,这些都是Quartz等其他定时任务无法比拟的。原创 2017-02-15 18:16:51 · 28036 阅读 · 1 评论