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无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层 ...
生产者与消费者
package test.java.util.concurrent;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;class Meal { private final int orderNum; public Meal(int orderNum) { this.orderNu...
Java实现归并排序
public class MergeSort { //将有二个有序数列a[first...mid]和a[mid...last]合并。 static void mergearray(int a[], int first, int mid, int last, int temp[]) { int i = first, j = mid + 1; int m = mid, n = last;&nb...
Java并发之CopyOnWriteArrayList
CopyOnWriteArrayList
Java并发之ConcurrentHashMap
ConcurrentHashMap,线程安全的HashMap由于HashTable较重量级,他会给整个加锁,而ConcurrentHashMap只是给每个Segment加锁,所以性能快很多。除了initialCapacity、loadFactor之外,还有一个concurrentLevel属性,默认情况下,三个属性分别为16,0.75,16设置以上三个属性后,就得考虑锁加在哪?并怎样初始化加锁的对象...
Java锁的优化
啊啊
Java并发相关概念
对于working memory的操作分为lock、load、use、assign、store、unlockload:将main memory的值复制到working memoryuse:在workingmemory中改变值assign:对值进行其他操作,如从操作数栈弹出,赋给局部变量区store:将变量值从working memory复制到main memory对于main memory的操作分为:lock、read、write、unloc...
深入理解JVM之内存管理
1,方法区:存放类的信息(名称、修饰符等)、类中的静态变量、类中final型常量、类中的Field信息,类中的方法信息。方法区是全局共享的,在一定条件下也会被GC,当方法区要使用的内存超过其允许的大小事,会抛出OutOfMemory。JVM中这块区域对应Permanet Generation,又称为吃就带。默认最小为16MB,最大为64MB,可通过-X...
深入理解JVM之类加载
JVM将类加载过程分为三个步骤:装载、链接、初始化。装载、链接完成后,即可将二进制字节码转换为Class对象,初始化过程不是加载类时必须触发的,只要求在初次使用对象前执行即可,初始化主要给静态变量赋值、调用()等一,装载(load)JVM通过类的全限定名(com.sun.HelloWorld)及类加载器(ClassLoader实例)...
Spring RMI配置
在spring中通过org.springframework.remoting.rmi.RmiProxyFactoryBean来实现RMI连接,里面的一些常用配置://spring的rmi连接会缓存stub,当rmi服务端重启,客户端持有的...
Spring自定义MVC
由于struts等开源MVC框架有漏洞,可以考虑自己实现一套轻量级的MVC框架一,自定义一个Dispatcher,实现spring的ApplicationContextAware接口public class AjaxDispatcher implements ApplicationContextAware { //两个最重要的容器,分别存储请求path对应的method,以及请求path对应的bean。为了以后反射...
MapReduce初探
Map-Reduce处理过程(分析气象数据的map-reduce过程)1,调用标准的input类,将输入数据转化成标准的样式,成为map的输入。2,map过程,提取出需要的数据,这里提取出年份、温度这两个数据,输出成key-value对(标准样式)3,系统自动进行shuffle过程。把key相同的行聚合在一起,输出为key-数据集合(或者数组),成为r...
Hbase建模
一,什么情况下使用Hbase?1,成熟的数据分析主题,查询模式已经确定并且不易轻易改变。(主要还是查询模式要确定,否则,还是选用关系型数据库吧)2,传统关系型数据库已经无法承受负荷,告诉插入,大量读取。3,适合海量的,但同时也是简单的操作(例如key-value)例子1:显示我的浏览历史,关系型数据库的困难:1...
zookeeper初探
统一命名空间在zookeeper里面,所有节点都称为znode,znode作用:1,存放数据,上限是1M2,ACL(access control list)访问控制列表,哪个客户端可以访问该节点权限 允许的操作CREATE create(子节点)READ &nbs...
Hbase初探
鉴于在HDFS中数据是不能修改的,所以,以此为基础的hbase的数据也只能永远insert,就算是删除数据,也是插入一条带有删除标记的新数据一,行健行健是数据行在表里的唯一标示,并作为检索记录的主键访问表里的行只有3种方式1,通过单个行健访问2,给定行健的范围范围3,全表扫描行健可以是最大长度不超过64KB的任意...
一致性哈希算法
转载,原文见:http://blog.csdn.net/sparkliang/article/details/5279393consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器...