json解析性能比较(gson与jackson)
现在json的第三方解析工作很多,如json-lib,gson,jackson,fastjson等等。在我们完成一般的json-object转换工作时,几乎都没有任何问题。但是当数据的量上来时,他们的性能几何呢?我着手测试了一下gson和jackson,其他的如json-lib性能很差,fastjson虽然性能很好,但是在使用时有些问题,所以这里就没有测试。...
工厂模式
转载,原文见http://zyjustin9.iteye.com/blog/2094960简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性。本文是本人对这三种模式学习后的一个小结以及对他们之间的区别的理解。 简单工厂...
InputStream之available()
InputStream的available()方法返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。下一个调用可能是同一个线程,也可能是另一个线程。一次读取或跳过此估计数个字节不会受阻塞,但读取或跳过的字节数可能小于该数。注意,有些 InputStream 的实现将返回流中的字节总数,但也有很多实现不会...
MySQL中in(常量列表)的执行计划
我们在写sql的时候,经常用到in,in后面跟一堆常量列表,如id。有人说in的效率很高,而有人说很低;有人说in能使用索引,还有人说in不能使用索引。。。到底是一个怎样的情况呢?我们分析以下几种情况一,in(主键或者唯一键)...
Hibernate性能优化之前奏
Hibernate能极大地减少DAO层开发的代码量,减轻了程序员的负担。但是,除了save(),delete(),update(),query.list(),要想精通Hibernate也是蛮难滴。如果我们还不是Hibernate高级玩家,那么,由我们写出来的代码极有可能因为大数据量、大并发量而造成内存的溢出以及数据库的崩溃!下面我就自己在项目开发中遇到的问题,浅谈...
HashMap深度历险
一个面试题:往HashMap中存100个元素,问:HashMap的初始化大小是多少最合适?HashMap概述:HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null键和null值。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构:在java编程语言中,最基本的数据结构就只...
MySQL锁机制
1.行级锁定(row-level) 行级锁定的特点就是锁定对象的颗粒度很小,由于锁定颗粒度很小,发生锁定资源争用的概率也最小,能够给予应用程序尽可能大的并发处理能力。从而提高一些需要高并发应用系统的整体性能。 但是行级锁定也有不少弊端,由于锁定资源的颗粒度很小,所以每次获取...
in、exists、not in、not exists
目前所知,mysql优化器会自动将in转化为exists相关子查询(除了in常量列表),所以in与exists具有相同的执行计划,那么,当子查询中出现null值呢?对于exists,不管子查询是什么值,都返回true或者false,同样,not exists也返回true或者false,所以null值对exists没有什么影响那么对于in,除了返回true、false之外,还...
class与classloader的getResourceAsStream区别
我们经常用getResourceAsStream来获取配置文件信息,也有2种方式getResourceAsStream,一种是class.getResourceAsStream,另一种是classloader.getResourceAsStream,这2种方式有什么区别呢?class.getResourceAsStream("path"):从当前class的目录下找资源class.getResourceAsStream("/path");/代表了class的包名,也就是...
maven之deploy
今天用eclipse的maven插件deploy jar包时遇到一个问题:在配置好仓库地址、server用户名、密码的条件下,jar包很容易deploy到maven仓库,但是,在其他工程需要依赖该jar包时,却下载不下来,总是报parent:pom找不到,到中央maven仓库瞄一眼,发现确实没有parent的相关信息,为了对比,我去apache的路径下看了看,他那...
Java乱码解决方案
在做java项目(特别是web项目)的过程中,中文乱码一直是我们开发人员比较头疼的问题,因为涉及到编码,解码,字符集,以及国际化等诸多问题,所以在着手解决的时候也缺乏相关的知识。我花了一些时间自己动手实验了一把,虽然没有洞悉编码,解码这些底层原理,但是解决实际问题应该足够了。这里主要针对java web项目中的...
httpclient的池化
我们经常在应用系统中使用httpclient来发送http请求,我们通常会new httpclient创建对象,这样,当请求并发量很大的时候,频繁的创建、销毁httpclient会导致不必要的性能开销,所以有必要对httpclient这个重量级对象进行池化。在此,我们使用apache提供的common-pool包做相应的事情。重要代码如下:public class HttpC...
关于js中的this调用
js中定义一个function,在该function中使用关键字this时要注意,如果你定义function是为了将来某个事件调用,那么此时this不可用(严格来说,this是一个不指代任何节点的对象,相当于java中的new Object(),不为null),因为它不知道this指代哪个对象,所以这种情况下,我们一般给function定义一个形式参数,然后谁调用...
MySQL之vachar
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节),4.0版本一下最大也不过20字节5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节(所有列加起来大小)当超过长度限制,varchar则会强行转为tex...
MySQL之in与exists
mysql优化器对in语句的优化是“LAZY”的,对于in,如果不是显示的列表定义,如in('a','b','c'),那么in语句都会被转换为exists相关子查询。如下面独立子查询:select ...from t1 where t1.a in (selelct b from t2);优化器会将语句重写为如下相关子查询:select ...from t1 where exists (select 1 from t2 where t2....
网络相关知识
OSI七层模型:OSI七层网络模型 Linux TCP/IP四层概念模型 对应网络协议 应用层(Application) 应用层 TFTP, FTP, NFS, WAIS 表示层...
JDBC使用PreparedStatement的好处
我们为什么在程序中要使用PreparedStatement而不是Statement?有以下几个原因。1,从程序本身的角度来看,PreparedStatement更具效率。我们通过connection.preparedStatement(sql)方法来获得PreparedStatment对象,然后通过preStatement.setXXX来设置查询参数。如果我有2个查询,SQL语句都一样,但是参数不同,使用Pre...
Java敏感词过滤
package test.java.lang;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;/** * @title KeywordFilter * @description TODO * @author * @date 2014-4-17 * @version 1.0 */public class KeywordFilter {...
Java 理论与实践: JDK 5.0 中更灵活、更具可伸缩性的锁定机制
转载:http://www.ibm.com/developerworks/cn/java/j-jtp10264/多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发...
MySQL水平切分
转载:http://zhengdl126.iteye.com/blog/419850第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的 互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层 ...