`
chenzehe
  • 浏览: 532336 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
一.Join语法概述 join 用于多表中字段之间的联系,语法如下: ... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditiona  table1:左表;table2:右表。 JOIN 按照功能大致分为如下三类: INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。 LEFT JOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录。 RIGHT JOIN(右连接):与 LEFT JOIN 相反,取得右表(table2)完全记录,即是左表(table1)并无 ...
本文介绍多线程在使用时由直接new Thread()到Executors.newCachedThreadPool(),再到直接new ThreadPoolExecutor()的过程。   背景: 项目需要在Servlet前加个Filter做数据的转发,只是数据的简单透传,为了不影响用户的体验,而采用多线程来实现。   最简单的实现 直接在filter中new Thread来实现,如下:  但是访问量一大,这种方法会把系统搞死。   线程池实现 后面采用线程池的方式实现,虽然之前也有研究过线程池,但是对线程池的记忆最深的就是线程池是对线程的缓存,重复利用,避免线程的重复 ...
最近在看dubbo的源代码,发现dubbo类ExtensionLoader中有一段代码: private static final ConcurrentMap<Class<?>, ExtensionLoader<?>> EXTENSION_LOADERS = new ConcurrentHashMap<Class<?>, ExtensionLoader<?>>(); public static <T> ExtensionLoader<T> getExtensionLoader(Class& ...
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容,详见后面描述。   总体架构 Dubbo框架设计一共划分了10个层,而最上面的Service层是留给实际想要使用Dubbo开发分布式服务的开发者实现业务逻辑的接口层。图中左边淡蓝背景的为服务消费方使用的接 ...
    /* * Copyright 2011 Alibaba.com All right reserved. This software is the * confidential and proprietary information of Alibaba.com ("Confidential * Information"). You shall not disclose such Confidential Information and shall * use it only in accordance with the terms of the ...
1、Heap Buffer 堆内存字节缓冲区,可以被JVM自动回收,特点是内存的分配和回收速度快,缺点是如果进行Socket的I/O读写,需要额外的做一次内存复制,将堆内存对应的缓存区复制到内核Channel中,性能会有一定程度的下降。   2、Direct Buffer 直接内存字节缓冲区,非堆内存,在堆外进行内存分配和回收,相比于堆内存,它的分配和回收速度会慢一些,但是将它写入或者从Socket Channel中读取时,由于少了一次内存复制,速度比堆内存快。   JDK1.4中新引入NIO类库,引入了一种基于通道(Channel)和缓冲区(Buffer)的I/O方式,它可以使 ...
consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在cache 系统中应用越来越广泛; 1 基本场景 比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 hash 值,然后均匀的映射到到 N 个 cache ;
支持 http://ifeve.com/tao-code-match-1/ ,用fork-join来实现 读取一个文件中的单词(使用BufferedReader按行读取),排序(使用fork-join框架快速排序),写到另一个文件中(使用BufferedWriter進行寫入) 代码在github上:https://github.com/chenzehe/wordsorter-java SortMain.java package com.chenzehe.wordsorter; import java.io.BufferedReader; import java.io.Buffe ...
      在Java方法设计时返回当前对象的引用(this),可以实现级联调用的设计,如StringBuilder类中的append方法: public StringBuilder append(String str) { super.append(str); return this; }  使用时可以sb.append("a").append("b").append("c");这种方式级联调用。Buffer类中的方法也是级联调用的设计: public fi ...
在配置好Hadoop Eclipse plugin 连接成功后,提交作业时会抛出下面异常: 2013-10-31 9:38:04 org.apache.hadoop.security.UserGroupInformation doAs 严重: PriviledgedActionException as:admin cause:java.io.IOException: Failed to set permissions of path: \home\hadoop\tmp\mapred\stagi ...
1、使用JarFile类读取jar包MANIFEST.MF中的Main-Class,如果没有设置Main-Class则调用方法中指定执行函数 2、解压jar文件 3、设置classPath 4、利用反射取得class和method,并运行该method 如下代码Run.java将被打包到jar文件中,使用Maven构建并打包:   package com.chenzehe.runjar; public class Run { /** * @param args */ public static void main(String[] args) { Sy ...
        Hadoop IPC RPC类中对请求的客户端缓存类ClientCache,是一个用HashMap进行对象缓存的类,但是对缓存操作时都使用synchronized关键字来加锁,如果使用ConcurrentHashMap进行进行缓存,在存取时会有更好的性能。ConcurrentHashMap是基于分段的锁分离技术实现,而且使用JUC中的显示锁来保证同步,多线程方面性能比HashMap有明显的优势。   /* Cache a client using its socket factory as the hash key */ private class Client ...
        在JDK1.4之前,Java OutputStream的write方法、InputStream的Read方法和ServerSocket的accept()方法都是阻塞方法,JDK1.4之前Java引入了新的输入输出系统(New Input/Out,NIO),非阻塞是Java NIO实现的重要功能之一 。  1、Buffer 缓冲区,传输数据使用,本质是一个数组,Channel中读数据和写数据都只能通过Buffer传输。 2、Channel 通道,所有的IO流在NIO中都是从Channel开始的,数据可以从Channel读到Buffer中,也可以从Buffer写到Chan ...
注:本文为转载 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序。 一、Comparator public interface Comparator<T> { /** * @return o1小于、等于或大于o2,分别返回负整数、零或正整数。 */ int compare(T o1, T o2); boolean equals(Object obj); } 强行对某个对象collection进行整体排序的比较函数,可以将Compa ...
Lucene Field类中使用枚举如下: 声明抽象方法,在枚举实例中重写该方法。 public final class Field extends AbstractField implements Fieldable, Serializable { public static enum Store { YES { @Override public boolean isStored() { return true; } }, NO { @Override public boolean isSt ...
Global site tag (gtag.js) - Google Analytics