摘要: 注意:所有软件最后不要安装在program files (x86)下PL/SQL Developer显示Not logged on 以管理员的身份打开PL/SQL Developer 2. tns无法解析指定的连接标识符 检查Oracle client软件的安装目录下..\oracle... 阅读全文
posted @ 2015-03-03 09:43 华电岳黎明 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 我们来看下du命令的说明:从其描述我们可以看出,可以查看出个文件以及目录占用磁盘空间的大小,其中s选项表明显示文件夹的总大小,而h选项则以易读的方式显示du -sh * | sort -nr | head -n 10上面的命令为找出当前目录先在占用空间从大到小排前十的文件或目录,其中sort命令的r参数表示逆序,n表示以字面值的大小进行排序 阅读全文
posted @ 2013-12-18 20:11 华电岳黎明 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 栈用于存储局部变量,包括基本类型的变量(方法语句块内部定义的变量、方法中的形参)、引用类型的变量,它们都是存储在各自的方法栈中,随着方法的执行完成而消失; 堆用于存储引用类型变量所指向的对象,包括普通的java对象以及数组。当指向堆中对象的引用变量消失以后,堆中对象所占用的内存在合适的时间会被垃圾回收器回收; 常量池用于存放字符串常量以及基本数据类型的常量; 静态域用于存放类的静态的成员变量,这些变量是属于这个类的,而不是属于某一的对象的,普通的成员变量存放在堆内存中。 阅读全文
posted @ 2013-12-12 16:20 华电岳黎明 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 我们知道return语句用在某一个方法中,一是用于返回函数的执行结果,二是用于返回值为void类型的函数中,仅仅是一个return语句(return ;),此时用于结束方法的执行,也即此return后的语句将不会被执行,当然,这种情况下return语句后不能再有其它的语句了。 public static int print() { int c = 1; try { c++; System.out.println("try执行中..."); return c+100; //--------1 ... 阅读全文
posted @ 2013-12-12 10:50 华电岳黎明 阅读(3868) 评论(0) 推荐(1) 编辑
摘要: 我们通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。public class Singleton { private static final Singleton instance = new Singleton(); private Singleton(){ } public Singleton getSingleton(){ return instance; }} 该类的构造方法被p... 阅读全文
posted @ 2013-11-11 11:07 华电岳黎明 阅读(2220) 评论(0) 推荐(0) 编辑
摘要: 1 引入线程池的原因 由于线程的生命周期中包括创建、就绪、运行、阻塞、销毁阶段,当我们待处理的任务数目较小时,我们可以自己创建几个线程来处理相应的任务,但当有大量的任务时,由于创建、销毁线程需要很大的开销,运用线程池这些问题就大大的缓解了。2 线程池的使用 我们只需要运用Executors类给我们提供的静态方法,就可以创建相应的线程池: public static ExecutorSevicenewSingleThreadExecutor() public static ExecutorSevicenewFixedThreadPool() public static Executor... 阅读全文
posted @ 2013-09-04 11:16 华电岳黎明 阅读(28825) 评论(0) 推荐(2) 编辑
摘要: 上次说到,当MapLauncher或ReduceLancher(用于执行任务的线程,它们扩展自TaskLauncher),从它们所维护的LinkedList也即队列中获取到TaskInProgress,并且TaskTracker有空闲的slot时,该线程就调用了TaskTracker的startNewTask(tip)方法,如下所示: public void run() { while (!Thread.interrupted()) { try { TaskInProgress tip; Task task; s... 阅读全文
posted @ 2013-08-29 10:08 华电岳黎明 阅读(1111) 评论(0) 推荐(0) 编辑
摘要: Hadoop的RPC主要是通过Java的动态代理(Dynamic Proxy)与反射(Reflect)实现,代理类是由java.lang.reflect.Proxy类在运行期时根据接口,采用Java反射功能动态生成的,并且结合java.lang.reflect.InvocationHandler来处理客户端的请求,当用户调用这个动态生成的实现类时,实际上是调用了InvocationHandler实现类的invoke方法。RPC源代码在org.apache.hadoop.ipc下,有以下几个主要类:Client: 客户端,连接服务器、传递函数名和相应的参数、等待结果;Server:服务器端... 阅读全文
posted @ 2013-08-27 07:50 华电岳黎明 阅读(3933) 评论(0) 推荐(0) 编辑
摘要: 我们知道TaskTracker在默认情况下,每个3秒就行JobTracker发送一个心跳包,也就是在这个心跳包中包含对任务的请求。JobTracker返回给TaskTracker的心跳包中包含有各种action(任务),如果有满足在此TaskTracker上执行的任务的话,该任务也就包含在心跳包的响应中。在TaskTracker端有线程专门等待map或reduce任务,并从队列中取出执行。1.TaskTracker发送心跳包 TaskTracker是作为一个单独的JVM运行的,它启动以后一直处于offerService()函数中,每隔3秒就执行一次transmitHeartBeat函数,... 阅读全文
posted @ 2013-08-23 18:54 华电岳黎明 阅读(1978) 评论(0) 推荐(1) 编辑
摘要: 正在运行的程序称作一个进程,一个进程可以包含多个线程,这些线程可以共享进程的资源,它们共用一块存储空间。那么,各个线程在访问同一个数据对象的同时,可能引起冲突,以生产者、消费者为例,就会出现队列中没有产品的情况下,消费者扔到队列中去拿产品,与现实世界中逻辑不相符合。使用synchronized关键字可以确保线程的安全运行。 synchronized(obj){....... obj.wait()/notifyAll();//是数据对象而不是线程调用wait和notifyAll方法 } 当给一个线程(比如A线程)的run方法体内加入上述代码时,说明A线程必须首先获得该数据对象的锁,... 阅读全文
posted @ 2013-08-14 13:49 华电岳黎明 阅读(5729) 评论(1) 推荐(0) 编辑