生产者与消费者
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 服务器...
Hbase VS Oracle
一,索引不同造成行为的差异Hbase只能建立一个索引,而且之后的数据查询也只能基于该索引进行简单的key-value查询;但是Oracle可以建立任意索引,也可以按照任意列进行数据查询。二,Hbase适合大量插入同时又有读的情况大数据、高并发正合Hbase的胃口三,Hbase的瓶颈是硬盘传输速度,Oracle的瓶颈是硬盘寻道时间Hba...
Spring之autowired
spring提供@autowired注解来对组件进行注入初始化,其底层机制是利用java反射来控制组件的访问,这简化了我们的编程,省掉了一堆毫无业务逻辑的set方法。但是我们需要注意的是,autowired是按照byType的方式进行注入的,一般在spring工厂里面同一种类型,我们只会声明一次,这种情况下没问题。但有时候,同一种类型我们...
hive之Error in metadata
安装hive之后,启动hive没问题,但是执行show tables之类命令式就开始报错了:Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient找了好久的资料,也没解决问题,后来在某个资料上瞟到一眼:hive的某个bug与hadoop home下的build有关,我记...
Hadoop根目录出现hs_err*.log的解决办法
自己有一次在搭建hadoop环境时,发现有些进程就是起不来,而且hadoop、根目录还出现hs_err*.log、core*,文件很大,打开文件一看,里面都是一些虚拟机的错误,找了一些资料,确定是因为机器是64位导致hadoop native库的问题,需要重新编译hadoop的native库,然后把hadoop home下build/native/Linux-amd64-64/lib下的所有文...
Java输出流在txt文件中的换行控制
有时候需要将一段内容输出到txt文件,在程序中将内容字符串拼接好,包括 \t 以及 \n 等符号,然后利用java.io中的writer将字符串写到txt文件中,本以为很简单的一件事,结果打开txt文件一看,格式完全是乱的,tx...