分类目录:java

以下是分类 java 下的所有文章

【转载】Protobuf和Thrift对比

出处   1. Protobuf – 谷歌 2. Thrift – Apache顶级项目   数据类型   protobuf thrift protobuf thrift protobuf thrift protobuf thrift double double float byte i16 int32 i32 int64 i64 uint32 uint64 sint32 sint64 fixed32 fixed64 sfixed32 sfixed64 bool boo……

如何查看线上的Java进程使用的GC收集器类型

使用下面的命令可以查看是否使用了指定类型GC收集器,结果中有+号则使用这种收集器,否则有-号表示没有使用这个收集器。 并行: jinfo -flag UseParallelGC 13727jinfo -flag UseParallelOldGC 13727(fallback to 串行) 并发: jinfo -flag UseParNewGC 13727(fallback to 串行)jinfo -flag UseConcMarkSweepGC 137……

Java连接池的那些事儿

Apache dbcp 1. Apache Tomcat推荐使用DBCP。 2. 效率高,但是数据库重启或者强制断开连接,不会重现连接数据库,需要重启应用。 3. 由于不稳定,用的较少。 c3p0,proxool 1. Hibertnate推荐使用这两个数据源。 2. 效率低,但是很稳定,数据库重启后可以重新连接。 3. 由于稳定用的较多。 boneCP数据源 – http://ww……

Java Timer项目文件编码有乱码

DEFAULT_JAVA_OPTS=” -server -Xmx1g -Xms1g -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSIn……

Java&Mysql日期时间类型随笔

在不同的语言和不同的数据库中,我们可能都看见过Date, Datetime, Timestamp的封装和实现,然而,每次在对时间进行转换的时候,我们总是很confused,每次不断的尝试直到满足我们的需求为止,很少有人真正的理解他们的区别,从字面上来讲,我们可以理解为,Date只表示日期,Datetime除了表示日期还表示时间,Timestamp则是……

加密提供者BC(BouncyCastle)找不到的问题

在使用BouncyCastle作为J2EE的安全提供者的时候,经常会出现找不到BC提供者的问题,错误消息为:JCE cannot authenticate the provider BC。这是由于,BC提供者是个第三方实现,我们需要把他们放在jre的扩展类路径中,并且在安全配置中进行配置。 1. 我们必须确定我们需要使用的jre,请确定这是jre,而不是一个jdk: ..……

永无休止的关于REST API设计风格的争论

记得几个月前,我们讨论过到底是重用HTTP CODE(400,500), 返回错误码还是仅仅重用HTTP CODE(200)并且使用自定义的业务CODE返回错误码,这个问题并没有唯一标准的答案,各有利弊,不同的大公司也是采用大相径庭的方案,只能说萝卜白菜,各有所爱,喜好不同导致产生了两大阵营,帖子如下:http://cloudate.net/?p=1062。 无……

吐槽JDK自带Math类关于对数API的设计

引言 今天在实现一个算法的时候,需要求对数,于是翻了一下Math类里面的API定义,确实有求对数的API,但是,看来看去总觉得这些API设计有些怪怪的,不符合常人的思维,API也没有自文档化,也就是看了API,不知道应该怎么用。 数学相关知识 为了吐槽吐得有理由据,提前和一个学数学的同事确认了一下对数相关知识: log(x,y……

GC堆最大最小内存随笔

今天公司里面又有人讨论Xms和Xmx设置成一样好呢?还是不一样好呢?这是一个老生常谈的问题,当然,也有很多人知道设置成同样的值会更好些,可是又不知道为什么,还有些人尽管告诉他们设置成一样的好,他们也不太相信,为了能更容易说服一些在技术上比较倔强的人,在网上随便搜索了一下资料,总结如下: Xms和Xmx应该设置……

从类的热替换到Spring环境的热替换

最近,一个同事问我一个问题,同事问Spring是否能发现环境的配置变化并且重新加载并热替换,从我的直觉来讲,答案是: 1. Spring应该没有提供这样的功能,因为这种功能并不是大众需要的,是个很少见但是偶尔会有的。 2. 这种功能可以自己实现,用一个监听器或者定时器,发现配置文件变化,则重新加载环境,并且替换原有的……

Lock之Condition

今天听人讨论Condition,回来就复习了一下,Condition是一个接口,其中,有两类主要的方法,一类是await相关的,另一类是signal/signalAll相关的,看着是不是很熟悉,是的,和Object.wait, Object.notify/Object.notifyAll很相似。 java.util.concurrent.locks.Condition.await() java.util.concurrent.locks.Conditio……

Maven找不到Java7中的javafx

最近为自己开发的Restful服务框架做了一个新项目生成向导,向导需要一个界面填入一些必要的信息,心血来潮,使用了最新的javafx, 本地为jdk8,但是,项目在发布机器Linux上,找不到javafx包,查看发布环境: JDK:7 Maven:3.2.3 开始尝试把找到javafx的jar包加入到mvn类路径下,并且加入到mvn可执行文件的最前头: ex……

【转载】Tomcat7连接数异常导致超时问题的排查

原文出处:http://blog.2baxb.me/archives/1309?from=timeline&isappinstalled=0 1.摘要 前几天线上tomcat出了一次诡异的超时问题,在此记录下来。每次问题的排查都很痛苦,而定位原因之后再回想整个过程又常常有“当时如果看了那个其实早就能知道了”之类的懊恼,看来问题排查流程的标准化还有很长的路要走。 2.现象和……

【未完待续】Java后台线上服务优化小记

最近,一直负责开发公司内部的Restful服务框架,并与公司的代码审核和CI上线流程进行整合,整合的过程中需要开发线上Restful服务的启动脚本,于是,发现一些线上的服务配置没有进行过优化,因此,简单的做了下压测,尝试和对比,对线上服务进行了简单的优化,优化过程记录如下: 1. 原先GC堆的大小设置为-Xms128m -Xmx1g,……

【转载】【经典】经典GC系列文章

本文为转载的系列文章,个人认为非常经典,如果你真的想了解GC,一定读完这五篇文章。 JVM系列一:JVM内存组成及分配 JVM系列二:GC策略&内存申请、对象衰老 JVM系列三:JVM参数设置、分析 JVM系列四:生产环境参数实例及分析【生产环境实例增加中】 JVM系列五:JVM监测&工具 下文为其中的第三篇,包括所有的GC参数以……

你不得不知道的两个搜索引擎Solr和ElasticSearch

lucence, solr, ElasticSearch(es)的区别? lucence是搜索库,轻量级的开发库,如果你需要与你的应用集成,难么你简单的使用luncence即可。 solr, es都是基于lucence的搜索引擎,是个类似企业的产品,功能复杂而强大。 以下文章来自互联网: team之前的search解决方案不同于行业常见架构(solr及其它开源项目),其searc……

【未完待续】后台服务平台建设之单元测试

平台质量委员会的一大目标是制定单元测试规范,提供测试框架,帮助各个业务项目补全单元测试,让单元测试发挥其应有的作用,而不仅仅是个摆设,当前各个项目打包的时候都使用如下命令: mvn deploy -DskipTests -Dmaven.test.skip=true 显然,这是想尽一切办法跳过单元测试,为什么呢?究其原因,就是单元测试违背了其初……