摘要: Java语言的一个重要特性是引入了自动的内存管理机制,使得开发人员不用自己来管理应用中的内存。C/C++开发人员需要通过malloc/free和new/delete等函数来显式的分配和释放内存。这对开发人员提出了比较高的要求,容易造成内存访问错误和内存泄露等问题。一个常见的问题是会产生“悬挂引用(dangling references)”,即一个对象引用所指向的内存区块已经被错误的回收并重新分配给新的对象了,程序如果继续使用这个引用的话会造成不可预期的结果。开发人员有可能忘记显式的调用释放内存的函数而造成内存泄露。而自动的内存管理则是把管理内存的任务交给编程语言的运行环境来完成。开发人员并不需阅读全文
posted @ 2013-05-25 20:11 跳刀的兔子 阅读(411) 评论(1)  编辑
摘要: 4.1 Spring IoC容器和bean的介绍 IoC也被称为是依赖注入(DI)。先构造对象,设置属性等,然后容器在bean的时候注入那些依赖,控制反转(IoC)。 Bean本身控制实例化或直接地使用类的构造来定位它的依赖,或者是如服务定位器模式的机制。 org.springframework.beans和org.springframework.context包是Spring Framework的IoC容器的基础。BeanFactory接口提供高级的配置机制,可以管理任意类型的对象。ApplicationContext是BeanFactory的子接口。它添加了和Spring的AOP特性...阅读全文
posted @ 2013-04-19 17:02 跳刀的兔子 阅读(512) 评论(0)  编辑
摘要: 加载文件顺序情形一:使用classpath加载且不含通配符这是最简单的情形,Spring默认会使用当前线程的ClassLoader的getResource方法获取资源的URL,如果无法获得当前线程的ClassLoader,Spring将使用加载类org.springframework.util.ClassUtils的ClassLoader。1.当工程目录结构如图所示: ApplicationContext context =new ClassPathXmlApplicationContext("conf/application-context.xml");加载[conf/a阅读全文
posted @ 2013-04-19 03:51 跳刀的兔子 阅读(15404) 评论(0)  编辑
摘要: 使用场景: 根据配置路径自动加载符合路径规则的xml文件、类文件等等; 查找范围:当前工程,当前工程依赖的jar包;示例:public void testGetResources(){ ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver(); try { Resource[] metaInfResources = resourcePatternResolver .getResources("classpath*:**/*DA...阅读全文
posted @ 2013-04-19 03:18 跳刀的兔子 阅读(10893) 评论(0)  编辑
摘要: 最小哈希法最小哈希原理介绍MinHash是基于Jaccard Index相似度(海量数据不可行)的算法,一种降维的方法A,B 两个集合:A = {s1, s3, s6, s8, s9} B = {s3, s4, s7, s8, s10}MinHash的基本原理:在A∪B这个大的随机域里,选中的元素落在A∩B这个区域的概率,这个概率就等于Jaccard的相似度最小哈希:S1S2S3A100B010C000D101行的随机排列转换(也称置换运算)S1S2S3B010D101A100C000哈希值:排列转换后的行排列次序下第一个列值为1的行的行号,例如h(S1)=D,h(S2)=B两个集合经随机排列阅读全文
posted @ 2012-12-20 12:39 跳刀的兔子 阅读(8551) 评论(0)  编辑
摘要: 因为项目中需要用反射机制加载类,所以做了下性能评测测试结果对比表:(平均执行时间)原生JDK反射JDK动态代理CGLIB反射CGLIB动态代理JAVAASSIST动态代理JAVAASSIST动态代理(字节码生成)ASM动态代理加载类(ms)0(332ns)1(1304383ns)4(FastClass)0(49328ns)2232500(629017ns)方法调用(ms)34289133(FastMethod)25541533936结论:无参数的加载类,响应时间排序:CGLIB Reflect<ASM<JDK Reflect,CGLIB最快;有参数的加载类,响应时间排序:JDK R阅读全文
posted @ 2012-10-12 12:13 跳刀的兔子 阅读(600) 评论(0)  编辑
摘要: 一、http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。还可以测试HTTPS类的网站请求。下载地址:http://soft.vpser.net/test/http_load/http_load-12mar2006.tar.gz安装#tar zxvf http_load-12mar2006.tar.gz#cd http_load-12mar2006#make && make install<!--more-->命令阅读全文
posted @ 2012-10-09 14:44 跳刀的兔子 阅读(30360) 评论(0) 编辑
摘要: 一、需解决的问题部分API有签名参数(signature),Passport首先对签名进行校验,校验通过才会执行实现方法。 第一种实现方式(Origin):在需要签名校验的接口里写校验的代码,例如:boolean isValid = accountService.validSignature(appid, signature, client_signature);if (!isValid) return ErrorUtil.buildError(ErrorUtil.ERR_CODE_COM_SING); 第二种实现方式(Spring Interception):利用spring的拦...阅读全文
posted @ 2012-10-09 00:39 跳刀的兔子 阅读(111954) 评论(3)  编辑
摘要: OR、in和union all 查询效率到底哪个快。网上很多的声音都是说union all 快于 or、in,因为or、in会导致全表扫描,他们给出了很多的实例。但真的union all真的快于or、in?本文就是采用实际的实例来探讨到底是它们之间的效率。1:创建表,插入数据、数据量为1千万【要不效果不明显】。Sql代码droptableifEXISTSBT;createtableBT(IDint(10)NOTNUll,VNamevarchar(20)DEFAULT''NOTNULL,PRIMARYkey(ID))ENGINE=INNODB;该表只有两个字段 ID为主键【索引页阅读全文
posted @ 2012-09-20 19:39 跳刀的兔子 阅读(28376) 评论(8) 编辑
摘要: URI location = new URI(request.getLocationUri()); HttpRequestBase req = null; String responseBody = ""; req = new HttpPost(location); MultipartEntity reqEntity = new MultipartEntity(); for (Map.Entry<String, byte[]> file : uploadFile.entrySet())...阅读全文
posted @ 2012-09-19 20:16 跳刀的兔子 阅读(3216) 评论(0) 编辑