JAVA
melin1204
这个作者很懒,什么都没留下…
展开
-
《Effective Java》笔记(转)
Creating and Destroying ObjectItem 1:考虑用静态工厂方法替代构造器例如:public static Boolean valueOf(boolean b) { return (b?Boolean.TRUE:Boolean.FALSE); }这样的好处是方法有名字,并且它可以复用对象,不像构造器每次调用都产生...2007-05-17 18:59:14 · 90 阅读 · 0 评论 -
JDK6内存泄露定位方法 - jmap
编写java程序最为方便的地方就是我们不需要管理内存的分配和释放,一切由jvm来进行处理,当java对象不再被应用时,等到堆内存不够用时,jvm会进行垃圾回收,清除这些对象占用的堆内存空间,如果对象一直被应用,jvm无法对其进行回收,创建新的对象时,无法从Heap中获取足够的内存分配给对象,这时候就会导致内存溢出。而出现内存泄露的地方,一般是不断的往容器中存放对象,而容器没有相应的大小限制...2010-07-03 15:03:02 · 155 阅读 · 0 评论 -
MyEclipse Profile 结合visualvm 监控内存泄露
VisualVM是集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。在JDK Update7之后,VisualVM作为JDK的一部分发布,但同时VisualVM也发布独立的版本。VisualVM必须运行在JDK1.6以上的VM环境下,但可以用它...2010-07-06 11:30:27 · 147 阅读 · 0 评论 -
使用zookeeper实现静态数据中心化配置管理
使用zookeeper实现静态数据中心化配置管理 各个项目都会存在静态数据配置,这些数据平台变化很少,为提高性能一般采用缓存的方式缓存数据。如果采用分布式缓存,网络成本比较高不太适合一般采用本地缓存,在单机环境下修改缓存数据方式比较简单,更新数据库的同时,也修改更新本地缓存,但在集群模式下可就没有这么简单,最简单直接的方式就是一台台服务器等去修改,费时费力。或者通过jms消息...2011-01-29 17:40:05 · 192 阅读 · 0 评论 -
Thread.sleep 四种标示方式
线程暂停10秒[code="java"]Thread.sleep(10000)Thread.sleep(TimeUnit.MILLISECONDS.convert(10, TimeUnit.SECONDS)Thread.sleep(TimeUnit.SECONDS.toMillis(10))TimeUnit.SECONDS.sleep(10)[/code]...2010-12-03 22:34:41 · 150 阅读 · 0 评论 -
三种Singleton的实现方式
三种Singleton的实现方式,一种是用大家熟悉的DCL,另外两种使用cas特性来实现。[code="java"]public class LazySingleton { private static volatile LazySingleton instance; public static LazySingleton getInsta...2010-12-10 09:49:08 · 104 阅读 · 0 评论 -
birt 数据源问题
很长时间没有写文章了。今天简单记录一下最近工作中遇到的问题。。。项目中用birt做报表,快上线测试,发现birt连接tomcat中配置的数据源一直增长,无法释放,这可吓坏了。tomcat默认使用的是dbcp。也更换了dbcp到最新版本,依然如此。最后换c3p0,经过测试,连接数比较稳定。[code="java"] [/code]一个比较复杂点的报表图,[i...2011-03-28 14:03:48 · 104 阅读 · 0 评论 -
EOS 中使用freemarker模板生成PDF文件导出
最近做一个项目,需要导出pdf文件,项目中之前有这样的需求,使用itext直接生成一个导出的文件格式,格式复杂点,实现起来很麻烦,也不好控制。想到如果用html生成PDF,会容易的多。搜索以后,发现使用flying saucer和freemarker可以满足我的要求,实现也不复杂。和之前做 导出excel的方案类似。。。附件中提供具体的实现方式,稍后把该方案实现到StarFrame中去...2011-03-31 20:13:25 · 133 阅读 · 0 评论 -
借助Maven为项目划分development,test,production环境
很早学习rails的时候,rails在服务器启动的时候,通过参数可以切换不同运行环境。也许spring从rails吸取了这样的功能,从spring3.1就提供了profile功能,方便我们为不同的profile使用不同的bean。能够想到的应用场景就是数据源的配置,在production profile中,可能通过jndi获取数据源,而在开发环境中配置jndi比较费事,使用durid配置数据源,项...2012-01-09 22:23:02 · 159 阅读 · 0 评论 -
test环境中自动完成从cvs更新代码、构建部署等,简化部署过程!
之前文章中描述了怎么利用maven profile分dev、test、pro三种环境,为了方便test环境中部署最新代码,利用maven和shell,执行脚本完成代码从cvs的更新、构建、undeply、停止tomcat、deploy、启动tomcat过程。主要借助三个插件帮助我完成上面所有动作1:maven scm plugin 从cvs更新代码2:maven cargo plugin ...原创 2012-03-29 11:11:32 · 169 阅读 · 0 评论 -
java项目构建部署包
Java 工程在生产环境运行时,一般需要构建成一个jar,同时在运行时需要把依赖的jar添加到classpath中去,如果直接运行添加classpath很不方便,比较方便的是创建一个shell脚本。在公司项目中看到把工程代码和依赖jar包合并到一块,省去设置classpath的麻烦。但这样把项目jar依赖绑定死,被其它项目引入,容易造成jar依赖冲突,如果用maven管理java项目,...原创 2012-09-29 14:14:56 · 639 阅读 · 0 评论 -
2014
[b]收藏比较好的文章,记录一年学习的知识,持续更新...[/b]1月份[list][*][url=http://www.bitstech.net/2014/01/07/log-best-practice/]最佳日志实践[/url][*][url=http://blog.sae.sina.com.cn/archives/1988]Linux下高并发socket最大连接数所受的各...原创 2014-02-02 19:51:47 · 153 阅读 · 0 评论 -
获取memcached缓存对象数量,统计在线用户数据量
项目需要统计在线用户数量,系统部署在集群环境下,使用会话粘贴的方式解决Session问题。要想得到真实在线用户数,必须是所有节点的总和。这里考虑使用memcached存放用户登录数据,key为userid统计在线用户数据,只需要统计key的总数。memcached因为性能的缘故,没有提供遍历整个缓存当中对象的功能,不过memcached也提供了很多命令来监控memcached的状态,例如s...2010-06-29 14:04:15 · 273 阅读 · 0 评论 -
高可用负载均衡部署方案---适用中小应用
1:使用Nginx做两个负载均衡器。其中一个作为备份2:负载均衡器绑定一个虚拟IP。用户通过虚拟IP访问应用,由负载均衡器进行代理。如果其中一个应用节点失效,Nginx会从负载均衡器中去掉,等到再次可用时,再加入其中。3:如果负载均衡器1宕机,负载均衡器2接手工作,通过有一个后台作业,不停运行监测,如果载均衡器1不可到达。就给本机添加同一虚拟IP。这样用户访问就被负载均衡器2接手工作,用户...2010-06-24 16:37:37 · 122 阅读 · 0 评论 -
NO Code直接根据Wsdl生成SOAP报文,发送http请求调用web service
作为客户端调用web service通用的做法,通常利用axis或cxf生成客户端代码,如果调用的服少还能应付,如果调用服务比较多,生成的代码很多,很难管理,自己以前就是这样干。 :( 想到过wsdl解析生成soap报文,再通过httpclient发送请求,由于各种服务类型和服务样式,兼容性很难处理,没有去实施。 最近接触soapui和camel时间比较多,从这两个工具中找到我想...2010-12-16 17:38:05 · 1448 阅读 · 0 评论 -
通过filter实现对输出内容的压缩处理
在实际当中大量的js和页面内容使得页面呈现要花很长时间,特别是使用ext。如是找到这种办法去处理一下,还没有测试有多大的优化性能。[color=red]全部实现代码在附件中[/color][code="java"]public class CompressionFilter implements Filter { // 适合在上JBoss, Jetty, JOnAS, OC4J, Or...2008-02-22 10:46:57 · 124 阅读 · 0 评论 -
iBatis3 Dialect 分页
参考以前论坛中关于ibatis2 Dialect 分页思路,实现iBatis3 Dialect 分页,由于ibatis3结构重新设计,提供了interceptor功能,有几个切入点,使得我们可以修改运行sql语句和处理返回结果1:修改sql语句[code="java"]import java.sql.Connection;import java.util.Propertie...2009-10-15 18:19:31 · 120 阅读 · 0 评论 -
线程引入的开销 减少竞争锁
线程引入的开销: 在多线程并的情况,为同步某些状态,需要添加锁,虽然理论上提升了系统处理的性能。但添加锁也会增加了相应的性能开销,主要表现为: 1:切换上线文 2:内存同步 3:阻塞 所以在实际开发中,对于引入线程需要根据实际情况进行考虑,多线程就能带来系统性能质替身。反而提升代码复杂度。 代码中竞争锁会损害伸缩性和性能,一下三个原则可以减少锁的竞...2009-12-07 19:19:31 · 140 阅读 · 0 评论 -
jdk gc简介
常用的GC算法:1)标记非活动对象--何为非活动对象,通俗的讲,就是无引用的对象。追踪root对象算法: 深度追踪root对象,将heap中所有被引用到的root做标志,所有未被标志的对象视为非活动对象,所占用的空间视为非活动内存。2)清理非活动对象Copy算法: 方法:将内存分为两个区域(from space和to space)。所有的对象分配内存都分配...原创 2009-12-10 19:09:54 · 135 阅读 · 0 评论 -
Accelerating Applications with Java 5 Concurrency
无意中找到这篇文章,感觉非常的好,保留做一个记录,主要解决的问题场景为:如果一个请求提交多个任务,为了提高效率多线程并行处理。一旦多个请求的任务数非常多。导致创建的数非常多,消耗太多的资源得不偿失。进一步考虑使用Executors.newFixedThreadPool(50)创建线程池,这样保证了线程的重复利用,并且控制了创建线程的数目。但这样做可能带来另外一个问题,如果一个请求任务数大于...原创 2009-12-11 15:19:31 · 87 阅读 · 0 评论 -
java 虚拟机调优
QZone Editor .dump{}<script type="text/javascript"> //TODO 域名 if (location.hash) { document.domain=location.hash.substr(1); } //parent.qZEdito...2009-12-23 13:45:07 · 77 阅读 · 0 评论 -
单点登录---创建证书注意问题
1、证书的CN=机器域名,loginUrl=机器域名, validateUrl=机器域名;访问时,提示: 不安全的地址转换。2、证书的CN=机器域名,loginUrl=机器域名, validateUrl=IP地址; 访问时,提示: 不安全的地址转换;Unable to validate ProxyTicketValidator验证失败。3、证书的CN=机器域名,loginUrl=IP地址,...原创 2010-05-06 13:14:59 · 198 阅读 · 0 评论 -
【JVM】字节码解读<clinit>
Java代码:[code="java"]public class Test2 { public static int cout = 0; static { for (int i=0; i原创 2010-05-20 15:05:56 · 165 阅读 · 0 评论 -
【JVM】字节码解读 finally 含return语句
java代码:[code="java"] public String sayHello4() { try { System.out.println("sayHello4"); return "li"; } finally { return "binsong"; } }[/code]字节码:[img]http://dl....原创 2010-05-20 17:29:19 · 114 阅读 · 0 评论 -
浏览器缓存
1:Last-Modified If-Modified-Since请求时,在响应头中添加Last-Modified参数,Last-Modified表示为当前请求内容的最后修改时间。HTTP协议中规定使用的是GMTshijian ,既格林威治标准时间。下次同一请求时,在请求头中添加If-Modified-Since参数,如果判断请求没有改变,返回响应代码为[code="java"]HTTP/...2010-05-23 18:30:02 · 98 阅读 · 0 评论 -
学习 Sun JDK类库 API
一直关注《分布式Java应用:基础与实践》这本书,现在已经可以再china-pub预定了。作者提前也放出一些样章。感觉写的是很不错的,不过第一章和第二章只是为了些这本书而写,简单示例,感觉与这本书的内容不符合,不够深入,可能作者后期会修改相关内容,希望如此!! 第四章内容罗列比较系统,是每个CXY必备的API吧,以前学习部够系统。准备借此系统学习这列API。在此记录算是一个开始:4....原创 2010-05-30 21:48:37 · 135 阅读 · 0 评论 -
2015
[b]scala[/b][b]akka[/b][url=http://hongbinzuo.github.io/2014/12/16/Akka-Tutorial-with-Code-Conncurrency-and-Fault-Tolerance/]让并发和容错更容易:Akka示例教程(译文)[/url][url=http://manuel.bernhardt.io/2014/04...原创 2015-02-07 15:15:23 · 111 阅读 · 0 评论