`
h140465
  • 浏览: 20782 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
  public static void main( String[] args ) { ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); }     这是一段最简单的Spring加载bean配置的代码,spring加载bean的大致流程如下  loadBeanDefinitions方法主要作用     1)读取配置文件     2)防止配置文件import自己导致死循环加载   public int loadBeanDe ...
private final ThreadLocal<Set<EncodedResource>> resourcesCurrentlyBeingLoaded = new NamedThreadLocal<>("XML bean definition resources currently being loaded");   昨天看Spring加载配置文件源码时,对于XmlBeanDefinitionReader中resourcesCurrentlyBeingLoade ...
/** * 默认初始容量,默认为2的4次方 = 16,2的n次方是为了加快hash计算速度,;;减少hash冲突,,,h & (length-1),,1111111 */ static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 /** * 最大容量,默认为2的30次方, */ static final int MAXIMUM_CAPACITY = 1 << 30; /** * 负载因子(l ...
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { private static final long serialVersionUID = 8683452581122892189L; /** * 默认容量为10 */ private static final int DEFAULT_CAPACIT ...
转载自:李会军•宁静致远   最近由于工作关系要做一些Java方面的开发,其中最重要的一块就是Java NIO(New I/O),尽管很早以前了解过一些,但并没有认真去看过它的实现原理,也没有机会在工作中使用,这次也好重新研究一下,顺便写点东西,就当是自己学习 Java NIO的笔记了。本文为NIO使用及原理分析的第一篇,将会介绍NIO中几个重要的概念。 在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,系统一次一个字节地处理数据,一个输入流产生一个字节的数据,一个输出流消费一个字节的数据,面向流的I/O速度非常慢,而在Java 1.4中推出了NIO,这是一个面向块的I/ ...
Client的主要包含下面几个内部类:        主要的几个类说明:  1. Call,表示一次rpc的调用请求 2. Connection,表示一个client与server之间的连接,一个连接一个线程启动 3. ConnectionId:连接的标记(包括server地址,协议,其他一些连接的配置项信息) Connection类:          主要属性说明: private InetSocketAddress server; //IPC服务器地址 private final ConnectionId remoteId;//连接标识 private Socke ...
     RMI的实现      1.编写一个远程接口  /** * 远程接口 */ public interface TestInterfactRemote extends Remote{ public String add(String a,String b) throws RemoteException; public String add() throws RemoteException; }     2.编写接口的实现类         public class TestInte ...
    join是线程的一个方法,在API中,它的英文解释是Waits for this thread to die.等待此线程死亡。谁等待此线程死亡呢?不难看出,这过程中至少存在两个线程,一个调用线程的线程,一个被调用的线程。我们通过一个简单的示例来理解这句话。     package com.doufu.thread.t01; class ThreadA extends Thread{ private String name; public ThreadA(String name){ this.name = name; } @Override ...
      WritableFactories是个工厂类,通过它可以创建实例对象。原文中对此对象的注释是Factories for non-public writables,我的理解是处理那些不确定类型的对象进行实例化。例如在ObjectWritable的readObject方法中就调用了WritableFactories      public static Object readObject(DataInput in, ObjectWritable objectWritable, Configuration conf) throws IOException { .... ...
       和ObjectWritable一样,GenericWritable也是一个包装类。一个应用场景就是Reduce段的输入值,如果是key type一样,value type不同的,就可以用GenericWritable来代替。GenericWritable和ObjectWritable区别主要在于:ObjectWritable序列化的时候,会将类类型名称也一起序列化,会造成浪费,特别是大量的网络传输。GenericWritable就是为了解决这样的问题,对于少量类型数量,且事先知道类型,可以用GenericWritable来提供效率       GenericWritable是 ...
        ObjectWritable是一个封装类,适用于字段需要使用多种类型。          ObjectWritable有三个主要的成员变量,被封装的对象实例instance、该对象运行时类的Class 对象和Configuration 对象   private Class declaredClass; private Object instance; private Configuration conf;           ObjectWritable中有个内部类NullInstance,从类名就可以看出,这是用来处理instance为空的。NullInstan ...
最近在看Java特种兵,看到多线程部分,对wait和notify不是很理解,于是写了代码来帮助理解。特此记录下来,以供回顾。             wait方法通过参数可以指定等待的时长。如果没有指定参数,默认一直等待直到被通知。notify方法是通知某个正在等待这个对象的控制权的线程可以继续运行。   调用wait方法时候,必须加上synchronized同步块,不然会抛出java.lang.IllegalMonitorStateException异常 public class WaitAndNotify { private final static Object object ...
Nutch任务通常从InjectorJob开始,它的作用是从种子文件中取出所有种子存入库中,供之后的任务使用。 InjectorJob类中最重要是UrlMapper,这个类实际处理类 public static class UrlMapper extends Mapper<LongWritable, Text, String, WebPage> { private URLNormalizers urlNormalizers; private int interval;//重新抓取同一个页面的时间间隔(默认为30天) private ...
      最近使用Nutch2.2.1+MySql进行爬虫研究,发现经常会遇到建表失败,乱码异常种类的问题。经过这些天的研究,特别解决方法记录一下。      首先,Mysql的安装,数据库的编码必须是utf8格式(GBK也可以)。需要修改my.ini文件 [client] port = 3306 default-character-set = utf8 [mysql] default-character-set = utf8 [mysqld] port = 3306 character-set-client-handshake = FALSE character ...
    今天使用Nutch1.7抓取中文网站的时候,发现抓取后的数据是乱码,网上找了很多资料都没有解决。于是查看源代码发现,Nutch解析文件使用的是HtmlParser类,此类中有获取网页编码的代码:   // NUTCH-1006 Meta equiv with single quotes not accepted private static Pattern metaPattern = Pattern.compile("<meta\\s+([^>]*http-equiv=(\"|')?content-type(\"|')?[ ...
Global site tag (gtag.js) - Google Analytics