
Java
文章平均质量分 86
wbj0110
这个作者很懒,什么都没留下…
展开
-
YUI Compressor
According to Yahoo!'s Exceptional Performance Team, 40% to 60% of Yahoo!'s users have an empty cache experience and about 20% of all page views are done with an empty cache (see this article by Tenn...原创 2013-11-13 10:33:53 · 161 阅读 · 0 评论 -
提高网站打开速度的7大秘籍
很多站长使用虚拟主机来做网站,网页内容一旦很多,网站打开速度就会特别慢,如果说服务器、带宽、CDN这类硬指标我们没有经济实力去做,不妨通过网页代码优化的方式来提高速度,卢松松总结了一些可行性的方法。1: 缩小Javascript和CSS文件如果你的网站大约有50-60%的用户是第一次访客,那么这些人会下载Javascript和CSS,如果这些文件很大浏览器会下载很长时间。使用压缩工...原创 2013-11-13 10:34:24 · 104 阅读 · 0 评论 -
RocketMQ WiKi
https://github.com/alibaba/RocketMQ/wiki原创 2013-11-14 09:50:01 · 195 阅读 · 0 评论 -
RabbitMQ和kafka从几个角度简单的对比
业界对于消息的传递有多种方案和产品,本文就比较有代表性的两个MQ(rabbitMQ,kafka)进行阐述和做简单的对比,在应用场景方面,RabbitMQ,遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上。kafka是Linkedin于2010年12月份开源的消息发布订阅系统,它主要用于处理活跃的流式数据,大数据量的数据处理上。1)在...原创 2013-11-15 09:25:12 · 1522 阅读 · 0 评论 -
JSON-RPC-JAVA 的应用
1. 首先下载好JSON-RPC-JAVA压缩包; 里面包含jsonrpc-1.0.jar 和 jsonrpc.js; jsonrpc-1.0.jar放在项目的WEB-INF/LIB下 jsonrpc.js 放到你要使用的页面引用; 2. 创建测试程序TestObject.java: package com.gameframe; ...原创 2013-11-19 09:36:34 · 126 阅读 · 0 评论 -
RocketMQ如何安装,需要git、Java、Maven环境
https://github.com/alibaba/RocketMQ/wiki/Quick-Start原创 2013-11-19 09:37:41 · 418 阅读 · 0 评论 -
NIO学习(转)
1. 引言I/O流或者输入/输出流指的是计算机与外部世界或者一个程序与计算机的其余部分的之间的接口。新的输入/输出(NIO)库是在JDK 1.4中引入的。NIO弥补了原来的I/O的不足,它在标准Java代码中提供了高速的、面向块的I/O。原来的I/O库与NIO最重要的区别是数据打包和传输的方式的不同,原来的 I/O 以流的方式处理数据,而NIO 以块的方式处理数据。面向流的I/O系...原创 2013-11-19 14:51:04 · 109 阅读 · 0 评论 -
Mina2.0 框架源码分析
http://www.open-open.com/doc/view/2ccbeb993e804a32829627da878a9e21原创 2013-11-21 09:43:42 · 118 阅读 · 0 评论 -
Java对象池技术的原理及其实现
摘 要 本文在分析对象池技术基本原理的基础上,给出了对象池技术的两种实现方式。还指出了使用对象池技术时所应注意的问题。 关键词 对象池;对象池技术;Java 对象;性能 Java对象的生命周期分析 Java对象的生命周期大致包括三个阶段:对象的创建,对象的使用,对象的清除。因此,对象的生命周期长度可用如下的表达式表示:T = T1 + T2 +T3.其中T1表示对象的创建时间...原创 2013-11-21 09:44:01 · 107 阅读 · 0 评论 -
Java中Vector和ArrayList的区别
首先看这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList、Vector和LinkedList。List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。3个具体实现类的相关区别如下:ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力...原创 2013-11-21 09:44:21 · 183 阅读 · 0 评论 -
【Java线程】Java线程池ExecutorService
示例 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; public class Ch09_Executor { ...原创 2013-11-21 09:45:09 · 75 阅读 · 0 评论 -
java-thrift运行DEMO
通过阅读~/thrift-0.8.0/tutorial/java/README,知道需要首先安装ant,这是一种java的编译部署工具,类似C里的makesudo apt-get install ant提示警告:warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last;...原创 2013-11-22 09:40:03 · 114 阅读 · 0 评论 -
在集群上支持数据库大数据量导出
80w行的数据导出数据库表(经过程序处理)导出一般使用EXCEL文件,技术一般有POI、JXL、FastExcel。但是当文件过大(几十个字段,行数超过200,000)的时候,往往会出现内存溢出OutOfMemery,这个是应用无非承受的。对于导出这么大量的数据,一般没有实时性的要求,也没有外观的要求。业务部分的需求一般是:导出80W行数据,不管是什么,最后能变化成EXCEL即可。...原创 2013-11-23 18:45:41 · 171 阅读 · 0 评论 -
性能测试工具介绍
简单的工具用java自带的HPROF Agent 介绍参见:http://hg.openjdk.java.net/jdk6/jdk6/jdk/raw-file/tip/src/share/demo/jvmti/hprof/manual.html复杂的工具:Intel VTune Amplifier:http://software.intel.com/en-us/intel-vtu...原创 2013-11-24 19:41:21 · 107 阅读 · 0 评论 -
Jetty 服务器架构分析
以 jetty7 作为分析目标, Jetty 是由一个或多个 connector 核心组件以及一些列 handler 组件和一个线程池组成,看一下结构图: Connector 负责监听接收客户连接请求,而 handler 组件则负责处理请求并给予响应,前面两个组件工作所需要的线程资源都直接从线程池 ThreadPool 中获取。 Jetty Serve...原创 2013-11-24 19:41:46 · 183 阅读 · 0 评论 -
java并发编程不得不知道的几件事
多线程编程从来都是一件比较困难的事情,调试多线程程序也相当困难,这种困难来自于线程对共享资源操作的复杂性 ( 包括对于资源操作的线程间的先后顺序 ) 。对于 Java 来说,它封装了底层硬件和操作系统之间很多的细节,对于线程之间的调度底层细节我们大多数时候不用关心,然而真正编写 java 多线程程序时有一些东西我们却是不得不知道的。在 java 中,1、 多个线程之间数据交换是依靠内...原创 2013-11-24 19:42:09 · 83 阅读 · 0 评论 -
Spring MVC 中 HandlerInterceptorAdapter的使用
一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的,这种方式可以实现Bean预处理、后处理。 Spring MVC的拦截器不仅可实现Filter的所有功能,还可以更精确的控制拦截精度。 Spring为我们提供了org.springframework.web.servlet.handler.HandlerInterceptorAdapter这个适配器,继承此类,可以非常方便的实...原创 2013-11-24 19:42:26 · 139 阅读 · 0 评论 -
Java中的Enum的使用与分析
示例:public enum EnumTest { FRANK("The given name of me"), LIU("The family name of me"); private String context; private String getContext(){ return this.context;...原创 2013-11-25 09:39:52 · 87 阅读 · 0 评论 -
thrift (转)
一、ubuntu下thrift的安装1.下载源代码http://thrift.apache.org/download/下载最新版本thrift-0.8.0.tar.gz2.安装boost库sudo apt-get install libboost-dev libboost-dbg libboost-doc bcp libboost-* 3.安装其他相关...原创 2013-11-27 12:17:06 · 142 阅读 · 0 评论 -
JPA中利用二级缓存优化访问性能(转载)
JPA使用也有好几年了,但是一直都没有对其中的缓存机制使用,我们知道在JPA2.0以后,作为JAVA6的标准,JPA2.0增加了对二级缓存的支持,比如中间件websphere、weblogic、JBOSS等也都相应提供了对OpenJPA2.0以及JPA二级缓存的支持,OpenJPA的缓存机制要比其他的ORM框架自带的缓存要强大的多,其他的ORM框架如hibernate自带的缓存Session级...原创 2013-11-29 09:21:24 · 122 阅读 · 0 评论 -
maven 添加jar到中央/远程仓库
commond:mvn deploy:deploy-file -DgroupId=com.tima.javax.jta -DartifactId=jta -Dversion=1.0.0 -Dpackaging=jar -Dfile=jta.jar -Durl=http://192.168.131.8:8081/nexus/content/repositories/thirdparty/...原创 2013-11-30 11:33:55 · 132 阅读 · 0 评论 -
Kraken:PayPal公司的开源Node.js框架(转)
PayPal 是一项全球流行的网上支付服务,近期它发布了一款 Node.js Web 开发框架:Kraken。Kraken 基于 grunt 和 Express,相比而言,它提供了更加稳健的功能合集,支持本地化、环境配置、更加注重应用程序安全等。这里解释下,Express 是 Node.js 的一个 MVC 开发框架,支持 jade 等多种模板,是目前 Node.js 上最流行的 Web ...原创 2013-12-02 09:32:21 · 248 阅读 · 0 评论 -
PayPal从Java迁移到Node.js(转)
从历史上看,我们的工程团队已经被分割成两个部分:开发基于浏览器(使用HTML,CSS和JavaScript)的代码和那些开发应用层(使用Java)。想象一下一个HTML开发者要求Java程序员将两个页面连接在一起?Node.js通过启用浏览器和服务器统一的JavaScript应用程序解决这个问题。它统一了我们的专业工程师组成一个统一团队,让我们在技术堆栈的任何层次了解和应对用户的需求。nod...原创 2013-12-02 09:33:10 · 190 阅读 · 0 评论 -
使用JSON-RPC for java(AJAX)实例
1、首先配置web.xml加入JSON-RPC的servlet监听: <servlet><servlet-name>JSONRPCServlet</servlet-name><servlet-class>jcore.jsonrpc.servlet.JSONRPCServlet</servlet-class>...原创 2013-12-02 09:33:29 · 149 阅读 · 0 评论 -
Atmosphere 1.0:支持Java/JavaScript的异步通信框架
Atmosphere 1.0是一个新的Java/Scala/Groovy框架,它试图将Web浏览器与应用服务器之间的通信抽象出来。在Web Socket、HTML5服务器端事件和其他特定于应用服务器的解决方案可用时,该框架可以透明地支持,此外还可将长轮询作为一种备选方案。最初,Web应用程序是采用客户端/服务器模型构建的,始终由客户端向服务器发起连接。对于特定类型的应用,如仪表板(Dash...原创 2013-12-02 09:33:49 · 317 阅读 · 0 评论 -
Thrift下Java客户端与服务器端的开发
1创建Thrift文件Thrift文件与编程语言无关,用于定义数据类型和服务接口,然后生成用来构建RPC客户和服务器所需的全部代码。1.1编写testJava.thrift[html] view plaincopyprint? #!/usr/local/bin/thrift --gen java namespace java Test ...原创 2013-12-04 10:11:06 · 160 阅读 · 0 评论 -
淘宝开源其系统监控工具Tsar
宝在开发社区的贡献可谓功不可没,近日又将其系统监控工具Tsar代码上传至GitHub。据@淘叔度介绍,Tsar在淘宝内部已经被大量使用,它不仅可以监控CPU、IO、内存、TCP等系统状态,也可监控Apache、Nginx/Tengine、Squid等服务器状态。Tsar(Taobao System Activity Reporter)可将收集到的数据存储在磁盘上,另外可以支持将数据存储到M...原创 2013-12-04 10:11:49 · 209 阅读 · 0 评论 -
RocketMQ 脚本调优
#!/bin/sh ## Execute Only Once# echo 'vm.overcommit_memory=1' >> /etc/sysctl.confecho 'vm.min_free_kbytes=5000000' >> /etc/sysctl.confecho 'vm.drop_caches=1' >> ...原创 2013-12-05 09:35:58 · 182 阅读 · 0 评论 -
Thrift入门及Java实例演示
目录:概述下载配置基本概念数据类型服务端编码基本步骤客户端编码基本步骤数据传输协议实例演示(java) thrift生成代码 实现接口IfaceTSimpleServer服务模型TThreadPoolServer 服务模型TNonblockingServer 服务模型THsHaServer服务模型异步客户端[一]、...原创 2013-12-12 11:17:14 · 103 阅读 · 0 评论 -
Tokyocabinet/Tokyotyrant文档大合集(转)
1. 前言2. 参考资料链接3. 使用介绍3.1. 基本概念3.2. Tokyo Cabinet 简介3.3. 性能介绍3.4. tokyotyrant和Memcached的优势比较3.4.1. 故障转移3.4.2. 日志文件体积小3.4.3. 超大数据量下表现出色3.5. 安装3.5.1. 编译安装tokyocabinet数据库...原创 2013-12-13 10:45:58 · 298 阅读 · 0 评论 -
Cookie的使用
1 什么是cookie浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接。因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知。为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息,因此人们昵称为“小甜饼”...原创 2013-07-21 00:52:28 · 81 阅读 · 0 评论 -
spring @component的作用
1、@controller 控制器(注入服务)2、@service 服务(注入dao)3、@repository dao(实现dao访问)4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>) @Component,@Service,@Controller,@Repositor...原创 2013-12-18 09:35:19 · 86 阅读 · 0 评论 -
How to Manage Maven Third Party Jars
bin/mvn-install.sh view sourceprint?01.#!/usr/bin/env bash02.#03.# Install local jar files into Maven repository. The artifact name would be same04.# as the filename minus the exte...原创 2013-12-23 12:37:06 · 145 阅读 · 0 评论 -
ThreadLocal工作原理
1.概述 ThreadLocal为我们解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名ThreadLocalVariable更容易让人理解一些。 当使用Thr...原创 2013-12-24 09:41:53 · 97 阅读 · 0 评论 -
基于Java技术的大型网站架构方案
Web层 主体架构可以基于 Struts 1.X/2.X,当然有很多更好的控制层框架供选择,以快速敏捷为准则吧。抽象出核心库封装 控制器和中间层 的操作。在大规模集群环境下,session复制会引起严重的性能问题。考虑用 集群缓存 + cookie验证 代替session实现权限控制吧。Cache层配置 Memcache 组成集群缓存 对 Memcache 客...原创 2013-12-25 10:35:25 · 78 阅读 · 0 评论 -
BTrace用户手册<转>
BTrace(https://btrace.dev.java.net/) 是一个非常不错的java诊断工具, 最近试着用了一下, 文档比较少, 主要是看例子吧. BTrace 中的B表示bytecode, 表明它是在字节码层面上对代码进行trace 用来在运行中的java类中注入trace代码, 并对运行中的目标程序进行热交换(hotswap) 术语 Probe Point 在何处执行trace...原创 2013-12-26 10:52:01 · 117 阅读 · 0 评论 -
java服务,cpu高,内存高,telnet不通排查及分析
一个java服务的异常排查及分析过程,以备将来参考。 java服务的异常主要表现为3点:1.cpu使用率高;2.内存占用较大;3.本机telnet访问服务被拒绝 具体情况:1.cpu高。启动时会打到800%以上,访问量不大的时段,top看到使用率在100-400%之间,基本稳定在100%-200%左右。 2.内存高。启动后java服务占用的内存不断增大,服...原创 2013-12-26 22:21:09 · 281 阅读 · 0 评论 -
Java性能监控的一些记录
本篇所有内容都是基于JDK5,如使用JDK6会有差别。 在前些日子,我们做了一些性能监控的工作,有一些值得记录的地方: JDK自身提供了很多工具,基于命令行和GUI的都有,学会合理应用它们是很有用处的。 首先是jmap,这是一个命令行程序,用来查看JVM中对象数量情况,直接输入jmap会显示用法,下面是两个常用的功能: Java代码 jmap -histo '...原创 2013-12-29 12:40:22 · 112 阅读 · 0 评论 -
Java开源缓存框架
JBossCache/TreeCache JBossCache 是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的改善性能。缓存数据被自动复制,让你轻松进行Jboss服务器之间的集群工作。 JBossCache能够通过Jboss应用服务或其他J2EE容器来运行一个Mbean服务,当然,它也能独立运行。 JBossCache包括两个模块:TreeCache和TreeCa...原创 2013-12-31 14:52:08 · 141 阅读 · 0 评论 -
Install Oracle Java 6 / 7 / 8 on Ubuntu 13.10
Install Oracle Java 6 / 7 / 8 on Ubuntu 13.10July 7, 2013 — 20 Comments This simple tutorial is going to show you how to install Oracle Java (JDK) 8, Oracle Java (JDK + JRE) 7 or Ora...原创 2014-05-08 19:26:53 · 126 阅读 · 0 评论