
javaAPI
文章平均质量分 69
kangojian
做游戏太苦逼了
展开
-
新玩具 Protocol Buffer
简介什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍:Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报转载 2011-10-12 09:47:24 · 1662 阅读 · 0 评论 -
ThreadLocal 线程安全 创建线程变量
<br />ThreadLocal是什么<br />早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。<br />ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些。<br />当使用Threa转载 2011-04-16 15:58:00 · 1085 阅读 · 0 评论 -
java 加密算法 (带密匙)
<br />public class DESPlus {<br /> private static String strDefaultKey = "national";<br /> private Cipher encryptCipher = null;<br /> private Cipher decryptCipher = null;<br /> /**<br /> * 将byte数组转换为表示16进制值的字符串, 如:byte[]{8,18}转换为:0813, 和public static byte原创 2011-03-24 12:29:00 · 1595 阅读 · 0 评论 -
动态映射bean 的内部赋值
<br />/** <br /> * 从ResultSet绑定到JavaBean <br /> * <br /> * @param ResultSet <br /> * @param DTO(JavaBean) <br /> * @return DTO <br /> */ <br /> public static DTO bindDataToDTO(ResultSet rs, DTO dto) throws Exception {<br />转载 2011-05-12 18:13:00 · 924 阅读 · 0 评论 -
epoll 与 java nio调优
<br />Epoll是Linux内核为处理大批量句柄而作了改进的poll。要使用epoll只需要这三个系统调用:epoll_create(2), epoll_ctl(2), epoll_wait(2)。它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),在2.6内核中得到广泛应用,例如LightHttpd<br /> <br /> <br />JDK 6.0 以及JDK 5.0 update 9 的 nio支持转载 2011-02-21 12:12:00 · 5888 阅读 · 0 评论 -
java 完全非锁并发容器实现
public class CompareAndSet { public static void main(String [] args) { Threadmin th = new Threadmin(); new Thread(th, "1号窗口").start(); new Thread(th, "2号窗口").start(); new Thread(th, "3号窗口").start(); new Thread(th, "4号窗口").start(); Threadmin2 a = ne原创 2011-02-15 09:52:00 · 802 阅读 · 0 评论 -
测试Java反射效率
<br />测试分为3个方面:1. 实例化效率;2. 方法调用效率;3. 成员变量GET调用效率;4. 成员变量SET调用<br />测试环境:<br />Windows 7<br />Sun Java 1.6<br /> <br />先写好备测试用的类 <br />import java.util.Date;<br /><br />public class DemoClass{<br /> public String firstName;<br /> private String endName;<br原创 2011-02-15 16:34:00 · 2298 阅读 · 0 评论 -
网页快照 java 实现
<br />cping1982 大哥真的很厉害愿意开源写代码给大家 先在的优秀程序员能想他一样的真少见 敬礼<br /><br />import java.awt.BorderLayout;<br />import java.awt.Dimension;<br />import java.awt.FlowLayout;<br />import java.awt.image.BufferedImage;<br />import java.io.File;<br />import java.io.IOExcep转载 2011-02-25 13:38:00 · 6118 阅读 · 7 评论 -
java中对于复杂对象排序的模型及其实现
<br />排序是编程中经常要碰到的问题,如果只是一般的数据库数据那么我们完全可以用数据sql语言来排序,但有的时候情况并不是这样,在一些特殊情况下我们不得不自己在java中写一些排序,而通常排序是一件让程序员非常恼火的事情,特别是那些可以让用户自由选择排序规则的情况,想想就头疼.今天正好公司一个组件就碰到了这样的情况,下面我说一下怎么来完成并且实现排序.<br />首先让我们来看一下用户需求是怎么样(为了更容易理解我将用户需求简化了一下,实际情况可能更复杂), 一个财务人员需要查询公司内所有用户的数据信息转载 2011-01-19 16:40:00 · 1333 阅读 · 1 评论 -
jdk 直观统计图工具 JConsole
原创 2011-01-10 10:54:00 · 1031 阅读 · 0 评论 -
java内存模型详解
<br />好读书求甚解,共享展示,摘自:http://kenwu.me/explain-java-memory-model-in-detail<br />内存模型 (memory model) <br />内存模型描述的是程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存取出变量这样的低层细节.<br />不同平台间的处理器架构将直接影响内存模型的结构.<br />在C或C++中, 可以利用不同操作平台下的内存模型来编写并发程序. 但是, 这带给开发人员的是转载 2010-11-17 18:02:00 · 837 阅读 · 0 评论 -
java 线程原子问题 AtomicInteger
<br />http://topic.youkuaiyun.com/u/20101118/12/5df26f63-6ecf-4447-bfb9-6ec7c3593d70.html?80087676#top 看看怎么回事原创 2010-11-18 13:34:00 · 943 阅读 · 0 评论 -
JAVA高级:多核线程-volatile原理与技巧
<br /> <br />为什么使用volatile比同步代价更低?<br />同步的代价, 主要由其覆盖范围决定, 如果可以降低同步的覆盖范围, 则可以大幅提升程序性能. <br /><br />而volatile的覆盖范围仅仅变量级别的. 因此它的同步代价很低.<br /><br />volatile原理是什么?<br />volatile的语义, 其实是告诉处理器, 不要将我放入工作内存, 请直接在主存操作我.(工作内存详见JAVA内存模型)<br /><br />因此, 当多核或多线程在访问该变转载 2010-11-17 18:06:00 · 702 阅读 · 0 评论 -
servlet监听对session监听器
<br />关键字: servlet监听器使用 Servlet监听器对Session监听的方法如下: <br />1.HttpSessionListener <br />public void sessionCreated(HttpSessionEvent se):创建 <br />public void sessionDestroyed(HttpSessionEvent se):销毁 <br /><br />2.HttpSessionAttributeListener <br />public void原创 2011-01-06 15:50:00 · 3382 阅读 · 0 评论 -
ByteArrayOutputStream 与 ObjectOutputStream 转换
1 实现ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeByte(1); oos.writeDouble(1.0)原创 2011-10-25 22:30:24 · 6536 阅读 · 0 评论 -
ServletContextListener
ServletContextListener的用法这个J2EE小提示阐述了ServletContextListener的用法。这个事件类作为Web应用服务的一部分,处理Web应用的 servlet上下文(context)的变化的通知。这可以解释为,好像有个人在服务器旁不断地通知我们服务器在发生什么事件。那当然需要监听者了。因 此,在通知上下文(context)初始化和销毁的时候,Servl原创 2012-01-04 21:39:17 · 887 阅读 · 0 评论 -
解析Java对象引用与JVM自动内存管理
象引用应用程序设计接口是JDKTM1.2中新定义的。该应用程序设计接口允许应用程序以对象引用的方式与JVM的内存管理器进行交互。当应用程序需管理大量内存对象或者在新的Java对象创建之前需删除原有对象时,Java对象引用应用程序设计接口具有相当大的用途,例如: ● 基于Web的应用程序常常要求显示大量图片,当用户离开某一Web页时,往往不能确定是否能够顺利的返回。在这种程序中,应转载 2013-06-17 22:59:56 · 1141 阅读 · 0 评论 -
java JVM 参数实例详解
http://blog.youkuaiyun.com/kthq/article/details/8618052http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm转载 2013-05-14 23:30:53 · 1113 阅读 · 0 评论 -
ClassLoader介绍
JVM规范定义了两种类型的类装载器:启动内装载器(bootstrap)和用户自定义装载器(user-defined class loader)。户自定义装载器(user-defined class loader) Extension ClassLoader和AppClassLoaderJVM在运行时会产生三个ClassLoader,Bootstrap ClassLoader、Ex转载 2013-04-13 14:19:30 · 977 阅读 · 0 评论 -
Instrumentation 两种方法 premain Agent
由于jvm内部的限制Instrumentation 只能修改方法体 不能动态添加删除方法(安全第一吧!!!!) Premain对于使用命令行接口的实现,可以将以下选项添加到命令行来启动代理: -javaagent:jarpath[=options]jarpath 是代理 JAR 文件的路径。 options 是代理选项。此开关可以在同一代码行使用多次,从而创建多个代理。原创 2013-04-10 14:04:30 · 7346 阅读 · 0 评论 -
修改系统时间制
Calendar cal=Calendar.getInstance(TimeZone.getTimeZone( "GMT+8 ")); int hours =cal.get(Calendar.HOUR); if(hours != 1){ return; }原创 2012-11-07 11:58:22 · 1052 阅读 · 0 评论 -
JVM:生产环境参数实例及分析【生产环境实例增加中】
改进前:-Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=78-XX:ThreadStackSize=128-Xloggc:logs/gc.log-Dsun.rmi.dgc.server.gcInte转载 2012-09-24 14:49:27 · 1336 阅读 · 0 评论 -
java.lang.instrument 中的premain 实现类的个性化加载(附源代码)
背景想调用ASM API (用于字节码处理的开源API)对字节码进行处理,目标是实现对java程序运行时各种对象的动态跟踪,并进一步分析各个对象之间的关系(研究前提是目前的UML锁阐释的whole-part relation 是比较混乱的)。由于ASM相关内容又可以延伸很远,在此文中略过。在完成了能对字节码进行处理的ASM调用以后,需要考虑如何将这些功能与正常的java程序整合到一起。转载 2012-10-10 16:12:36 · 8388 阅读 · 0 评论 -
tomcat热部署的实现原理
类:tomcat查看( 4128 ) /评论( 2 ) / 评分( 5 / 0 ) 一. 概述名词解释:所谓热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。对于Java应用程序来说,热部署就是在运行时更新Java类文件。在基于Java的应用服务器实现热部署的过程中,类装入器扮演着重要的角色。大多数基于Java的应用服务转载 2012-10-10 15:38:41 · 6769 阅读 · 1 评论 -
java.lang.Instrument 动态修改替换类代码
java.lang.Instrument包是在JDK5引入的,程序员通过修改方法的字节码实现动态修改类代码。这通常是在类的main方法调用之前进行预处理的操作,通过java指定该类的代理类来实现。 1. 代理 (agent) 是在你的main方法前的一个拦截器 (interceptor),也就是在main方法执行之前,执行agent的代码。agent的代码与你的main方法在同一个转载 2012-10-10 15:47:21 · 4994 阅读 · 0 评论 -
Thread 实现 方法访问来源跟踪
StackTraceElement[] el = Thread.currentThread().getStackTrace(); Map map = Thread.getAllStackTraces(); System.out.println(map.size()+"^^^^^^^^^^^^^^"); for(StackTraceElement[] el2: ma原创 2012-01-04 20:45:36 · 1089 阅读 · 0 评论 -
什么是HotSpot
没错,Java是解释语言,但并不意味着它一定被解释执行。早期 的虚拟机确实一条一条指令解释执行,但人们发现这样效率太低, 不满足各种要求,因此出现了许多其它虚拟机,如JIT的虚拟机。 HotSpot也是类似一种虚拟机,自从SUN买下后,已经把它放入 JRE 1.3以及后续版本中。 采用HotSpot的Java虚拟机,已经很难说Java是被虚拟机解释执行了, 原因是Ho转载 2012-01-30 14:17:15 · 2043 阅读 · 0 评论 -
Java HotSpot Client VM 和 Java HotSpot Server VM的配置
JDK包括2个JVM的实现Java HotSpot Client VM(-client),为在客户端环境中减少启动时间而优化;Java HotSpot Server VM(-server),为在服务器环境中最大化程序执行速度而设计。比较:Server VM启动比Client VM慢,运行比Client VM快。如何将VM设置成 Server VM:找到 [jre安装目录]/li转载 2012-01-30 14:19:04 · 968 阅读 · 0 评论 -
10 个非常重要的 HotSpot JVM 参数
1) 跟 Java 堆大小相关的 JVM 内存参数下面三个 JVM 参数用来指定堆的初始大小和最大值以及堆栈大小 -Xms 设置 Java 堆的初始化大小 -Xmx 设置最大的 Java 堆大小 -Xss 设置Java线程堆栈大小2) 关于打印垃圾收集器详情的 JVM 参数-verbose:gc 记录 G转载 2012-01-30 14:14:08 · 913 阅读 · 0 评论 -
Servlet2.4新特性
在J2EE1.4最新的Servlet 2.4版中,加入了一些新的功能,下面我们介绍其中主要的常用功能。1、XML Schema定义Web查询部署描述文件Servlet 2.3之前的版本使用DTD作为部署描述文件的定义,其web.xml的格式为如下所示: ....... Servlet 2.4版首次使用XML Schema定义作为部署描述文件,这样Web容器更容易校验web.xml语法。同时XML Schema提供了更好的扩充性,其web.xm转载 2010-12-29 15:13:00 · 2591 阅读 · 0 评论 -
Mina 解决请求后直接关闭连接
<br />javaeye帐号丢了 晕 http://lucene-group.group.javaeye.com/group/blog/699109<br /> <br /> <br />开场白: <br /> Mina 是一个韩国人写的基本java NIO的一个高性能的传输框架,我们的搜索就是基本它作为一个搜索服务开放接口了。对于系统的TIME_WAIT过多,造成服务器的负载过高,这个问题我也不用多说了,这段时间发现搜索服务器上的TIME_WAIT过多,我们每天大约总处理70W左右的搜索请求,虽然不多,转载 2010-07-15 13:48:00 · 15505 阅读 · 1 评论 -
汉字字符判断
汉字的UNICODE范围在19968~171941之间。 //CountChinese.java public class CountChinese { public static boolean isChinese(char a) { int v=(int)a; return (v>=19968原创 2009-09-08 14:44:00 · 622 阅读 · 0 评论 -
Javax sound
JavaSE, via Java Sound API (in packages javax.sound), supports two types of audio:Sampled Audio: Sampled audio is represented as a sequence of time-sampled data of the amplitude of sound wave. It原创 2009-08-15 17:23:00 · 4993 阅读 · 2 评论 -
java 图像IO (三)
最近做的project需要涉及到对扫描图片的文字识别,需要将扫描得到的彩色图片变为1bit的黑白图片。搜索到很多解决方案,基本的归纳为两个步骤,首先要将彩色图片变为8bit灰度图片(grayscale image),然后再进一步变为1bit的单色图片(1bit monochrome)。方案一:使用ColorConvert和Dithering操作1、代码目前JAVA最新的图片处理原创 2009-08-14 12:25:00 · 2232 阅读 · 0 评论 -
java 图像IO (二)
/***************************************************** * 旋转图片 * * @param buffimg * @param radians * @return file ****************************************************/ public static File rotate原创 2009-08-14 12:24:00 · 1680 阅读 · 0 评论 -
java 图像IO
public class testio { public static void main(String [] args){ String file ="D://sp//web//xuepin//city//beijin004.gif"; try { BufferedImage ImageOne = ImageIO.read(new File(file)); int wid原创 2009-08-13 22:44:00 · 1494 阅读 · 0 评论 -
java 进制转换
public static int unicode(String getunicode){ int len = getunicode.length(); String[] s = new String[len]; String jihe = ""; for(int i=0; i原创 2009-06-01 16:49:00 · 777 阅读 · 0 评论 -
memcached理论2
MemCached Cache Java Client封装优化历程Author:文初Email: wenchu.cenwc@alibaba-inc.comBlog: http://blog.youkuaiyun.com/cenwenchu79/Memcached 介绍 Memcached是一种集中式Cache,支持分布式横向扩展。这里需要有点说明,很多开发者觉得Memcache转载 2009-05-25 18:13:00 · 1023 阅读 · 0 评论 -
比较Java中几种数据cache方式
比较Java中几种数据cache方式2008-03-03 13:54现在很多网站一说到cache就想到memcached,memcached确实是非常优秀的系统,但是在某些场合,特别在不是分布式应用的场合,或者某些数据不需要分布式的访问,那它就未必是最佳的选择。下面比较3种cache方式,用测试结果说话Map,严格的说不能算cache,它适合本机访问,没有过原创 2009-05-27 15:36:00 · 1016 阅读 · 0 评论 -
memcached
package main;import java.util.Date;import com.danga.MemCached.MemCachedClient;import com.danga.MemCached.SockIOPool;/*** 使用memcached的缓存实用类.* * @author 铁木箱子**/public class test{ // 创建全局的唯一实例转载 2009-05-25 18:11:00 · 529 阅读 · 0 评论