`
文章列表
今天看书的时候突然想到了一个关于虚拟机的问题,jvm到底是如何屏蔽掉底层的操作系统而到达跨平台的。我们知道java的虚拟机一般都是这么解释的“Java虚拟机(JVM)是Java Virtual Machine的缩写,它是一个虚构出来的计算机,是通 ...
其实应该用一个问号结尾,今天同学问了一句java书如何具体的连接一个数据库的,也许你会这么说,用jdbc,然后呢?jdbc是如何连接数据库的呢?比如我向程序注册了一个驱动叫mysqlDriver,那么驱动是如何连接数据库呢?不管怎样,数据库驱动就是用java写的,那么是如何实现与不是用java写的数据库比如mysql进行通信的呢?   源码什么的看了个大概,发现一个叫“socket”的东西,还有“io”,我想了想,当数据库被部署在服务器上面的时候我们可以视它为一种app,提供一个外界访问的接口,比如就像是一个网站提供一个ip,我们通过getConnection方法获取连接的时候其实就是获取一 ...
其实对于耦合这个概念没有太多的实际经验,只是觉得耦合就是代码之间产生了依赖,比如需要对于一个数据库连接,需要对其事务管理,不同的数据库的事务不同,具体的实现也会不同,比如:   MySQLConnection conn = new MySQLConnection(); MySQLTransaction tran = conn.getMySQLTransaction(); tran.commit();    如果这个时候不是用mysql数据库,而是用oracle,代码就全部必须更改,这样,客户端的代码完全依赖于服务器端;   OracleConnection conn = ne ...
java中反射机制用于动态的获取运行时类型识别,也就是所谓的RTTI,当你从网络上获取一段字节码的时候,告知你这是一个对象的实例,比如hibernat中的你需要对以一个对象进行持久化,你如何获取到它的字段,setter,getter,如何将它存入到对应的表中。或者将配置文件中的各种不同属性值加载到运行时对象属性中的,这些将通过反射机制来获取;   比如下例将一个customer对象通过hibernate保存到数据库中; 这是Customer的代码:   public class Customer{ private int id; private String nam ...
111

String..

今天关于String看到一个测试:   String a = "abc"; String b = "abc"; String ab = "ab"; String c = ab+"c"; String d = "ab"+"c"; System.out.println(a == b); System.out ...
public class testThread extends Thread { public testThread() { } /** *//** * 线程的run方法,它将和其他线程同时运行 */ public void run(){ for(int i = 1; i <= 100; i++){ try{ Thread.sleep(100); } catch (Int ...
这是改的一个例子(关于深复制:连同该对象的引用一起复制):   class Professor implements Cloneable { String name; int age; Professor(String name,int age) { this.name=name; this.age=age; } public Object clone() { Professor o=null; try { ...
使用的两种情况: 当你想为某些特定数据创建一份内存空间,并且所有该类的对象共享一个域,而不去管该类的对象是否创建; 当你创建某个方法不想和它包含的类的对象想关联; 代码: public class StaticFun{ static int i = 0;//static关键字声明的变量让该变量和该类的诸多对象无关; public static void main(String ar[]){ StaticFun f1 = new StaticFun(); System.out.println(f1.i++); StaticFun f2 ...
现在来总结一下hadoop从命令输入到map接收指定输入split的整个代码分析,下面是转自http://forfuture1978.iteye.com/blog/811119#comments的一张图片,介绍了hadoop的数据运行流程: 我这里用的hadoop-0.20.2的代码实例,先从命令行输入开始bin/hadoop jar *** ,当hadoop的二进制文件(bin/hadoop)接收并在它的第229行:   elif [ "$COMMAND" = "jar" ] ; then CLASS=org.apache.hadoop.util ...
  好了,大概了解了一下从输入到mapper的数据的处理过程,其实我在刚刚接触hadoop的时候很好奇,当你你在命令行输入hadoop jar ******的时候系统到底如何启动job的,诸如mapper是如何获取输入的K/V对的呢?一般的hadoop程序中的map,reduce方法是被谁而调用的呢?现在就来看看咯: 当一个作业开始被提交,job.waitForCompletion(true),系统开始等待作业的完成,在waitForCompletion方法中,调用了submit方法以提交作业的conf,在job类中,该方法被描述为如下:   public void submit() ...
下面是关于LineRecoedReader的NextKeyValue代码: public boolean nextKeyValue() throws IOException { if (key == null) { key = new LongWritable(); } key.set(pos); if (value == null) { value = new Text(); } int newSize = 0; while (pos < end) { newSi ...
Inputormat:describes the input-specification for a Map-Reduce job   它是一个用于处理指定输入的接口: 1.用于验证输入的有效性; 2.将指定输入切割成许多逻辑上的split供mapper函数处理; 3.提供一个RecodeReader让mapper一点点的处理split中的数据; Inputformat其中有两个方法createRecodeReader(),getplits(),先看看getsplit(),将指定的输入切割成不同的split,有一个split基类叫做FIleInputFormat,所有的InputFo ...
本来是要复习考试的,但是看得那个什么编译原理的书就头大。。最近搜了一下hadoop的源码分析,在javaeye上面有一个blog写的不错:http://caibinbupt.iteye.com/blog/262412,毕竟是别人的,自己原来是看过hadoop源码但是没有自己总结过,现在再重新从头整理一下。 hadoop是apache就google提出来的map/reduce分布式计算框架的开源实现,hadoop包括以下子项目: hdfs:分布式文件系统的具体实现,本来是基于一个名为bigtable的论文而开源实现的; map/reduce:分布式计算框架; hbase:一个支持结 ...
Global site tag (gtag.js) - Google Analytics