- 博客(67)
- 资源 (7)
- 收藏
- 关注
原创 hadoop中datanode无法启动,报Caused by: java.net.NoRouteToHostException: No route to host
今天把hadoop环境给搭起来了,在master上面启动hadoop后,jps查看进程,SecondaryNameNode NameNode Jps DataNode JobTracker TaskTracker都没问题。但是去http://master:50070/dfshealth.jsp查看,live nodes为0。所以我到slave1和slave2上面去执行jps查看进程,结果都没有da
2013-07-19 15:07:38 606
原创 linux中搭建java开发环境
今天试着在Linux下面搭建java开发环境,现总结一下具体步骤。1、JDK的安装执行下面命令安装JDK(首先创建/opt/java目录)tar -xvf jdk-7u9-linux-i586.tar.gz -C /opt/javaln -s /opt/java/jdk1.7.0_09 /opt/java/jdk 创建一个链接vi /etc/frofile 设置环境变量expo
2013-07-19 15:07:36 345
原创 查看系统是64位还是32位
查看系统是64位还是32位:0>$ uname -m 若是i386 或 i686 则是32位kernel x86_64 则是 64位kernel1、getconf LONG_BIT or getconf WORD_BIT例如:2、file /bin/ls例如:查看linux的版本:
2013-07-19 15:07:33 447
原创 Call to master/192.168.137.101:9001 failed on connection exception: java.net.ConnectException: Connection refused
java.net.ConnectException: Call to master/192.168.137.101:9001 failed on connection exception: java.net.ConnectException: Connection refused at org.apache.hadoop.ipc.Client.wrapException(Client.java:1
2013-07-19 15:07:31 1805
原创 Linux中常用命令
一、Linux下常用命令:文件与目录操作basename:从文件名中去掉路径和扩展名cd:切换当前工作目录到指定目录chgrp:改变文件所属组chmod:改变文件的权限chown:改变文件的所有者和组cp:复制文件或目录dd:复制文件并转换文件内容file:确定文件类型find:在指定目录下查找文件并执行指定的操作ln:创建文件链接locate/slocate:快速定位文件的路径ls/dir/vd
2013-07-19 15:07:29 490
原创 virtualbox虚拟机上安装centOS的网络配置
最近接触hadoop,需要在在Linux上面开发,所以我装了一个virtualbox虚拟机,在该虚拟机上面安装了一个centOS系统。linux系统是装好了,但是网络配置却另人头疼。我主要是想让宿主机和虚拟机能够互相访问。 然后我就百度了一下,根据百度的结果一步一步的配置。 安装virtualbox之后它会在宿主机上面安装一个虚拟网卡,如图 双击它,查看详情,信息如图所示
2013-07-19 15:07:27 402
原创 使用 ASM 实现 Java 语言的“多重继承”
问题的提出在大部分情况下,需要多重继承往往意味着糟糕的设计。但在处理一些遗留项目的时候,多重继承可能是我们能做出的选择中代价最小的。由于 Java 语言本身不支持多重继承,这常常会给我们带来麻烦,最后的结果可能就是大量的重复代码。本文试图使用 ASM 框架来解决这一问题。在扩展类的功能的同时,不产生任何重复代码。考虑如下的实际情况:有一组类,名为 SubClass1、SubClass2、S
2013-07-19 15:07:24 446
原创 关于java字节码框架ASM的学习
一、什么是ASM ASM是一个java字节码操纵框架,它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM从类文件中读入信息后,能够
2013-07-19 15:07:22 426
原创 AOP的另一种实现----cglib
大家都知道,动态代理能够实现AOP,但是它有一个缺点,就是所有被代理的对象必须实现一个接口,否则就会报异常。那么如果被代理对象没有实现接口那该如何实现AOP呢?当然是能的,使用CGlib就可以实现。 1、什么是CGlib CGlib是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。 然这些实际的功能是asm所提供的,asm又是什么?Java
2013-07-19 15:07:19 306
原创 动态代理的使用以及其实现机制
一、动态代理的使用 动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实。代理一般会实现它所表示的实际对象的接口。代理可以访问实际对象,但是延迟实现实际对象的部分功能,实际对象实现系统的实际功能,代理对象对客户隐藏了实际对象。客户不知道它是与代理打交道还是与实际对象打交道。 动态代理主要包含以下角色: 动态代理类(以下简称为代理类)是一个实现在创建类时在运行时指定的接口
2013-07-19 15:07:17 318
原创 使用Lock来实现生产者和消费者问题
前面写过:synchronize来实现生产者和消费者问题现在用Lock来实现它 1 package com.thread; 2 3 import java.util.LinkedList; 4 import java.util.concurrent.locks.Condition; 5 import java.util.concurrent.locks.Lo
2013-07-19 15:07:15 362
原创 java笔记十一:动态编译
JDK6.0推出了动态编译的新功能,能够在程序中动态的写一个类,再对之进行编译。编译成class文件后就可以通过类加载方式把动态编译的类加载到内存中。当然也能通过RunTime类调用javac命令来动态编译。 动态编译类的主要步骤: ①、写一个字符串,这个字符串就是要编译的类的全部内容。 ②、通过输出流,把该字符串的内容写到工程下面指定的包中。 ③、对创建的java文件进行
2013-07-19 15:07:12 332
原创 java笔记十:java中的反射
Java中,反射是一种强大的工具。它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代表链接。反射允许我们在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内部信息,而不是源代码中选定的类协作的代码。这使反射成为构建灵活的应用的主要工具。但需注意的是:如果使用不当,反射的成本很高。 Java的类反射所需要的类并不多,它们分别是:Field、Constructo
2013-07-19 15:07:10 287
原创 java笔记九:对象序列化与反序列化
在java程序运行过程中,有许多的对象同时存在,但是程序结束运行或者JVM停止运行时这些对象都会消失。如何将这些对象保存起来以便下一次再将这些对象读入内存呢?或者如何将某些对象通过网络传到另一端的java程序?实施对象的这种操作叫做对象的序列化(或者叫做持久化),重新读入内存叫做反序列化。 基本数据类型的包装类和所有容器类都可以被序列化。用户自定义的类默认是不可以被序列化的。如果想要自己定义
2013-07-19 15:07:08 352
原创 java笔记八:IO流之字符流与字符缓冲流
java中字符流主要都是继承于Reader和Writer两个抽象类。用于对字符文本的读写操作。 一、转换类流 1 package com.iotest; 2 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.FileOutputS
2013-07-19 15:07:06 342
原创 java笔记七:IO流之字节流与字节缓冲流
在I/O类库中,java.io.InputStream和java.io.OutputStream分别表示字节输入流和字节输出流,它们都是抽象类,不能实例化,数据流中的最小单位是字节,所以叫做字节流。 一、InputStream中的读取数据的方法如下: 1 、int read() 功能:读取一个字节的数据,并且返回读到得数据,如果返回-1,则表示读到输入流的末尾。 2、i
2013-07-19 15:07:03 361
原创 Java transient关键字使用小结
1、transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。2、被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。3、一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。也可以认为在将持久化的对象反序列化后,被transient修饰
2013-07-19 15:07:01 315
原创 Integer与int的种种比较你知道多少?
如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null。但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱。所以我对它们进行了总结,希望对大家有帮助。 首先看代码:
2013-07-19 15:06:59 332
原创 类与类之间的几种关系
一、继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。 二、实现关系 实现指的是一个class类实现interface接口(可以是
2013-07-19 15:06:56 424
原创 继承与组合的优缺点
类继承和对象组合是复用的两种最常用的技术。一:继承 继承是Is a 的关系,比如说Student继承Person,则说明Student is a Person。继承的优点是子类可以重写父类的方法来方便地实现对父类的扩展。 继承的缺点有以下几点: ①:父类的内部细节对子类是可见的。 ②:子类从父类继承的方法在编译时就确定下来了,所以无法在运行期间改变从父类继承的方法的行为
2013-07-19 15:06:54 404
原创 利用栈实现迷宫的求解
问题描述:这时实验心理学中的一个典型的问题,心理学家吧一只老鼠从一个无顶的大盒子的入口处赶进迷宫。迷宫设置很多隔壁,对前进方向形成了许多障碍,心理学家在迷宫的唯一出口处放置了一块奶酪,吸引老鼠仔迷宫中寻找通路以到达出口。 求解思想:回溯法是一种不断试探且及时纠正错误的搜索方法,下面的求解过程采用回溯法。从入口出发,按某一方向向前探索,若能走通(未走过的),即某处可以到达,则到达一个新点,否则
2013-07-19 15:06:52 555
原创 多线程之儿子买盐问题
刚刚看到了一关于多线程的面试题目,就试着写了一下。 题目: 模拟妈妈做饭,做饭时发现没有盐了,让儿子去买盐 。只有盐买回来之后,妈妈才能继续做饭的过程。 问题分析:既然是面向对象编程,拿到问题是首先就要分析涉及到哪些对象。显然,该问题涉及的对象有:妈妈、儿子和盐。其中妈妈和儿子都是线程类,共享资源就是盐,所以盐Salt类的方法都要设置为同步方法。具体代码如下: 1 pack
2013-07-19 15:06:47 340
原创 设计模式之观察者模式
今天放假,又有时间继续啃《java设计模式》这本书了。每次学会一种设计模式内心都会有一种小小的成就感,但是懂是懂了,不知道会不会用。主要是现在没有什么项目经验,设计模式学了也派不上用场。不管怎样,学了总比没学好,以后总会派上用场的。 首先,何为观察者模式?观察者模式是关于多个对象想知道一个对象中数据的变化的情况一种模式。比如说现在几乎所有的高校附近都会有大学生兼职中心,也就是兼职中介吧(大一
2013-07-19 15:06:45 340
原创 java笔记六:线程间的协调
昨天重新学习了java多线程的使用,多线程的难点就在线程之间的协调。在《操作系统》一课中,我们学习了进程,其实多线程和多进程一样,都会涉及到多个进程或者线程对某一资源共享访问的问题,当多个线程都需要修改这个资源的时候就会出现线程安全问题。 比如说在银行开个账户会有一个存折和一张卡,如果某一天同一时间丈夫拿着存折去柜台取钱,而妻子拿着银行卡去ATM取钱。当丈夫查询余额里面有3000元,正准备取
2013-07-19 15:06:42 346
原创 java笔记五:多线程的使用
以前学习基础的时候学习了一段时间的多线程,上课的时候老师也讲过一遍,那时候感觉学的似懂非懂。因为到现在很长一段时间没有用到多线程的知识,所以现在基本上忘了差不多了。但是下个星期要面试了,所以今天特意又研究了一下多线程,免得被问到多线程问题时什么都不记得了那就麻烦了。现在对java比较熟悉了,所以再一次学习多线程知识,感觉没有那么难了(记得刚接触多线程的时候,感觉非常吃力)。 首先讲一下进程和
2013-07-19 15:06:40 342
原创 java笔记四:Set接口
Set不保存重复的元素。Set中最常被使用的是测试归属性,你可以很容易的询问某个对象是否在某个Set中。Set具有与Collection完全一样的接口,因此没有任何额外的功能。实际上Set就是Collection,只是行为不同。 实现了Set接口的主要有HashSet、TreeSet、LinkedHashSet这几个共同点就是每个相同的项只保存一份。他们也有不同点,区别如下: 1.Ha
2013-07-19 15:06:38 384
原创 设计模式之命令模式
在许多设计中,经常设计一个对象请求另一个对象执行某一个操作。如果请求者无法或者不希望直接和被请求者打交道,即请求对象无法或者不希望含有被请求者的引用,那么可以使用命令模式。命令模式里称提出请求的对象为请求者,被请求者的对象为接收者。在命令模式中,当一个对象请求另一个对象调用其方法时,不和被请求者直接打交道,而是把这种“请求”封装到一个“命令”对象中,封装的手段将“请求”封装到“命令”对象的一个方法
2013-07-19 15:06:35 402
原创 java笔记三:List接口
List承诺可以将元素维护在特定的序列中。List接口在Collection的基础上添加了大量的方法,使得可以在List的中间插入和删除元素。List与 set 不同,列表通常允许重复的元素。并且存放的顺序与插入的顺序一致。 List接口的常用方法有: add(E o) :将指定对象加入到列表中。 add(int index, E element) :将对象加入到指定位置处
2013-07-19 15:06:33 349
原创 算法的时间复杂度和空间复杂度
常用的算法的时间复杂度和空间复杂度 排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排序O(n2)O(n2)稳定O(1)二叉树排序O(n2
2013-07-19 15:06:31 412
原创 迭代器模式
迭代器模式遍历集合的成熟模式,迭代器模式的关键是将遍历集合的任务交给一个叫做迭代器的对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该集合序列底层的结构。 迭代器模式的结构中包括四种角色。 一、集合:一个接口,规定了具体集合需要实现的操作。 二、具体集合:具体集合石实现了集合接口的一个实例,具体的集合按照一定的结构存储对象。具体集合应该有一个方法,该方法返回一
2013-07-19 15:06:28 439
原创 spring之BeanFactory
spring的IOC容器能够帮我们自动new对象,对象交给spring管之后我们不用自己手动去new对象了。那么它的原理是什么呢?是怎么实现的呢?下面我来简单的模拟一下spring的机制,相信看完之后就会对spring的原理有一定的了解。 spring使用BeanFactory来实例化、配置和管理对象,但是它只是一个接口,里面有一个getBean()方法。我们一般都不直接用BeanFacto
2013-07-19 15:06:26 312
原创 适配器模式之单接口适配器
在java中,除了对象适配器外,还有一种更常见的适配器,即单接口适配器,单接口适配器可以让用户更加方便的使用该接口。 例如,java.awt.event包中的MouseListener接口一共定义了五个方法:1 void mouseClicked(MouseEvent arg0) {}2 void mouseEntered(MouseEvent arg0) {}3 void
2013-07-19 15:06:24 318
原创 适配器模式之对象适配器
问题导入:比如有A型螺母和B型螺母,那么用户可以再A型螺母上直接使用按着A型螺母生产的A型螺丝,同样也可以在B型螺母上直接使用按着B型螺母标准生产的B型螺丝。但是由于A型螺母和B型螺母的标准不一样,用户在A型螺母上不能直接使用B型的螺丝,反之也一样。该如何达到这个目的呢? 使用适配器就可以解决这个问题:生产一种“A型螺母适配器”,这种A型螺母适配器的前端符合A型螺母标准要求,可以拧在A型螺母
2013-07-19 15:06:21 441
原创 在网页中插入百度地图
如果想在自己的网页上面加入百度地图的话,可以用百度地图的api.具体使用方法如下: 第一步:进入百度创建地图的网站http://api.map.baidu.com/lbsapi/creatmap/,搜索出自己要展示的位置,如下图所示。 第二步:设置地图,大家可以对网站显示地图的宽高进行设置,其余选项不动。第三步:添加标注。点击第一个图标后,在右侧找到自己的位置,单击鼠标左
2013-07-19 15:06:19 344
原创 java打开本地应用程序
首先需要创建一个进程,然后用该进程去打开本地应用程序,当然也可以调用cmd命令。 1 package com.test; 2 3 public class callExe { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) {
2013-07-19 15:06:17 367
原创 java笔记二:final关键字用法总结
在java中,可能使用到final关键字修饰的有数据、方法和类。 一、final 修饰数据 有final修饰的数据是用来告诉编译器一块数据是恒定不变的,有时数据恒定不变是很有用的,比如: 1.一个永不改变的编译时常量。 2.一个在运行时被初始化的值,但是又不希望它被改变。 编译时常量必须是基本数据类型,并且以关键字final修饰,在对这个常量进行定义的时候必须
2013-07-19 15:06:15 291
原创 java笔记一:类成员的初始化顺序
最近一直在看《thinking in java》一书,感觉里面东西讲的很细,很多东西都没有接触过,是值得各位java程序员仔细品味的一本好书。 今天看了关于类成员初始化那节,以前对于成员初始化顺序没有考虑那么多,没有在意初始化的顺序。今天特意仔细研究了一番。 一个类中,最首先被初始化的是静态成员,也就是有关键字static修饰的成员。只要一个类被使用也就是创建对象或者调用了该类的某个静
2013-07-19 15:06:12 398
原创 JAVA WEB开发中处理乱码汇总
在开发中难免会遇到中文显示乱码的问题,乱码问题是一个很棘手的问题,常常令程序员抓狂。现在把我使用的几种解决乱码的方案和大家共享! 一、表单提交的乱码处理 表单提交分为GET和POST两种提交方式。两种方式的乱码解决又不一样,用POST提交只需要在接受的时候加上request.setCharacterEncoding("utf-8");而GET方法处理应该将接收过来的值打碎成ISO-88
2013-07-19 15:06:10 342
原创 JAVA操作Excel表格
一、JExcelApi 可以从文件或者输入流进行读取操作。基本步骤: 1.由文件或者输入流创建一个workbook; 2.由workbook的getSheet()方法创建一个工作表Sheet(两种方法,下标和名字,下标从0开始); 3.由Sheet的getCell(x,y)方法得到某个单元格,cell对象可以读取它的类型(getType)、内容(getContents)等。
2013-07-19 15:06:08 370
原创 javaMail发邮件
使用javaMail发送电子邮件需要两个jar包:activation.jar和mail.jar。具体代码如下:index.jsp: 1 import="java.util.*" pageEncoding="utf-8"%> 2 3 4 5 发送邮箱 6 7 8 9 10 发送文本型邮件11 12 13
2013-07-19 15:06:05 431
Hadoop实战中文版
2013-05-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人