
Java基础编程
文章平均质量分 75
铁猴
热爱Java,热爱大数据,热爱技术!
展开
-
通过 JMX 获取Hadoop/HBase监控数据
概述说到对Hadoop和 HBase的集群监控,大家知道的和用的最多的可能还是第三方的监控工具,cacti,ganglia,zabbix之类的。玩的深一些的,会用 zenoss之类的。这些工具确实不错,也能发挥很大的作用,但时间长了总感觉监控粒度还是比较粗,不够详细。毕竟是第三方的监控,即便Hadoop自带 了ganglia的接口,也还是觉得不够。其实Hadoop本身是带有监控接口的,原创 2015-04-09 22:05:52 · 12601 阅读 · 1 评论 -
将 Shiro 作为应用的权限基础 三:基于注解实现的授权认证过程
授权即访问控制,它将判断用户在应用程序中对资源是否拥有相应的访问权限。 如,判断一个用户有查看页面的权限,编辑数据的权限,拥有某一按钮的权限等等。 一、用户权限模型为实现一个较为灵活的用户权限数据模型,通常把用户信息单独用一个实体表示,用户权限信息用两个实体表示。用户信息用 LoginAccount 表示,最简单的用户信息可能只包含用户名 loginName 及密码转载 2014-06-03 09:21:20 · 1433 阅读 · 0 评论 -
Java中加载配置文件方式的总结
当需要在Java中加载配置文件的时候,有几个选项提供选择:· File· Class.getResourceAsStream· Class.getClassLoader().getResourceAsStream· Class.getResouce · ResourceBundle本文对上面几种类型做一下简单的比较原创 2013-11-07 23:22:56 · 3457 阅读 · 0 评论 -
JDK 1.6 新特性介绍之:ServiceLoader
今天在看Hadoop源代的时候发现,在FileSystem中用到了java.util.ServiceLoader这个类来从配置文件中加载子类或者接口的实现类。以前从来没有使用过这个类,进去大概看了一下具体的实现。主要是从META-INF/services这个目录下的配置文件加载给定接口或者基类的实现,ServiceLoader会根据给定的类的full name来在META-INF/servic转载 2013-04-08 21:31:53 · 3392 阅读 · 2 评论 -
Java代码混肴器之-Jrock
最近一段时间自己接了个java项目,项目中需要用到代码混肴器,在网上找到了一篇比较好的文章,在此分享一下.-----------------------------------------------------------------------------------------------------------------一、前言1.1 什么是Jocky? 我们转载 2012-11-18 21:52:14 · 2467 阅读 · 1 评论 -
java多线程组件三:ScheduledThreadPoolExecutor
在实际的情况中可能会需要有的线程是定期执行的,有的线程是只执行一次,如果通过Timer去触发,会涉及线程的切换以及线程安全问题,这对这种情况从jdk1.5开始添加了ScheduledThreadPoolExecutor 组件,这种组件主要就是用来解决前面出现的问题,通过这个组件即可以定期的去执行一个任务,也可以只执行一次,也可以把这两种情况一起使用,为了演示这个组件的使用,写了一个非常简单的小例子原创 2012-07-26 22:15:19 · 10859 阅读 · 2 评论 -
java多线程组件二:DelayQueue的使用方法
本篇文章主要用来介绍DeleyQueue的使用方式,根据这个类的名字就可以判断,这是一个Queue,且从它里面去的元素的顺序是按照时间的延迟来的.网上有很多例子,可是都不是很详细,我把书上的例子看了一下,然后用自己的思路写出来,原来发现里面还是有很多的误区,下面的程序是例子,加了一些注释:/** * */package com.eric.concurrency;import原创 2012-07-19 22:10:14 · 6600 阅读 · 0 评论 -
java多线程组件一:CountDownLatch使用方法的总结
根据从资料上以及习题时间的总结CountDownLatch 做的事情就是通过对一个计数器的控制,来保证一批动作的执行,且同步性保证个这个计数器的值在多线程之间共享的有效性.下面有个简单的例子可以说明这点:public class CountDownLatchDemo { public static void main(String[] args) { /* * CountD原创 2012-07-12 22:11:15 · 1668 阅读 · 0 评论 -
方法同步的重要性
如果在多线程的环境下,出现了对共享变量,那么很容易产生不想得到的结果,这个时候对于改变共享变量的方法要适当的使用"同步的机制"来保证方法的正确和完整的执行,下面的程序对上面所述的内容做了简单的演示package com.eric.concurrency;import java.util.HashMap;import java.util.Map;import java.util.concur原创 2012-04-19 21:37:49 · 1352 阅读 · 0 评论 -
从解决 websphere 7.0.0.9 中 Parameter type in setter method does not corresponds to predefined 问题中明白的道理
以前一直没有把版本兼容的事情当回事,最近的一个bug让我彻底的相信了这个问题的重要性.....当时系统中需要添加一个新的功能,这个功能的模型在系统的已有模块中存在,于是按照已经存在的模型做了下来,进展很顺利,很快就开发完毕,本地测试也很顺利,本地的server是jboss 5.0,于是满怀信心的将这个模块进行check in,可是正式环境的运行结果让我的自信荡然无存,一到那个模块就会报[2原创 2012-02-28 22:01:39 · 3228 阅读 · 7 评论 -
用java实现的zip于unzip的功能(转)
最近工作中总是做一件重复的事情,就是对一个zip文件进行解压缩,然后再根据某些配置文件,需要对zip包中的内容进行替换,然后还需要将解压后的文件再压缩,关于压缩和解压缩的方法很多,可以还是选择用java语言来实现这一功能,由于文件的数量比较多,而且又多数都是二进制文件,所以个人觉得不管是复制,还是解压缩,对文件的操作要求都是比较高的,进过再三的比较,最后选用了一位仁兄的推荐的程序,据说这段代码是出转载 2011-12-18 18:37:59 · 4436 阅读 · 1 评论 -
java 多态的特殊特性
最近一个阶段在学习java的多态特性,按照我个人的理解,首先多态的目的是为了更好的实现类型的兼容,其次如果子类覆盖了的方法时,如果把子类的对象赋给父类的应用,且调用父类接口的方法时,会调用子类中的方法,因为一个父类可能会有多个子类,那么在运行的过程中java是怎么知道具体是要调用那个子类中的方法的了?这个特性是由java中所谓的动态绑定的机制来保证的。就其多态本身而言不是很复杂,但是有三个比较容易原创 2011-11-23 22:04:04 · 1009 阅读 · 0 评论 -
java中对于多线程程序的捕获异常的方案
在并发的情况下,try{}catch{Exception ex}不能捕获一般的异常处理,这会导致在异常产生时会直接将异常输出到控制台或者是用户界面,在java5中加入了一些接口来解决这个问题,下面为简单的事例package com.eric.concurrency;import java.lang.Thread.UncaughtExceptionHandler;import java.u原创 2012-04-15 22:57:11 · 6847 阅读 · 1 评论 -
在ubuntu编译openjdk7(转载)
背景:因为之前学习openjdk的虚拟机系统,安装了emacs,导致环境编译出现问题。例如:这个问题,但不仅仅只有这一个。 虽然有安装之前有整个虚拟机完整的备份,但是正好趁此机会,再重新整理一遍编译过程。1. 环境信息 宿主操作系统:win7 professional 32位 vmware版本: vmware7 虚拟系统版本: Ubuntu10.10 32位转载 2012-08-27 23:21:36 · 1994 阅读 · 0 评论 -
JVM学习之:Parents Delegation Model(双亲委派模型)
Class Loading作为java程序执行的第一步,虚拟机对这部分并没有严格的说明,因此这个阶段对于程序员而言就有着非常大的灵活性,这点对于java的技术的发展也有非常大的作用,比如说动态代理,OSGI,JSP等。从JVM的角度出发类加载器主要分两类 一:启动类加载器 主要负责把/jre/lib目录下(或者是-Xbootclasspath指定的路径)的能被虚拟机识别原创 2012-09-11 22:28:06 · 3697 阅读 · 0 评论 -
JAVA判断中文字符
Java判断一个字符串中是否有中文字符有两种方法,但是原理都一样,就是通过Unicode编码来判断,因为中文在Unicode中的编码区间为:0x4e00--0x9fbb第一种:[java] view plaincopyString chineseStr = "中华人民公社"; char[] charArray = chineseStr.toCharArray();转载 2012-12-22 22:24:17 · 1500 阅读 · 0 评论 -
Java中关于泛型的总结(转)
一、Java泛型的实现方法:类型擦除前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉。这个过转载 2013-01-23 00:00:46 · 3718 阅读 · 0 评论 -
java中异常处理的几种方式
package com.eric.exception;public class RethrowException { public static void main(String[] args) { try { // g0(); // g1(); // g2(); // g3(); g6(); } catch (Exception e) {原创 2011-12-28 20:55:22 · 1934 阅读 · 0 评论 -
将浮点数类型的number转换成英语的表达方式
最近在做一个信息管理系统,管理系统有个发票模块,这个模块要求输出Double类型的英文表达方式,程序如下:public class ConvertNumToStr { public static String parse(Object x) { if (x != null) { return parse(x + ""); } else { return ""; }原创 2013-03-24 16:54:37 · 2525 阅读 · 2 评论 -
Java版 数字金额大写转换
需求:读入一个浮点数值,将其转化为中文金额的大写形式。如123.45,转化为:壹佰贰拾叁元肆角伍分。 以下是各种情况要完善:1. 当金额为整数,只表示整数部分,省略小数部分,并添加“整”字。如123表示为:壹佰贰拾叁元整。2.当金额中含有连续的0时,只需写一个“零”即可。如10005表示为:壹万零伍元整。3.10的表示形式。如120表示为:壹佰贰拾元整。而10则表示为:拾元整。转载 2013-04-21 17:44:24 · 4176 阅读 · 2 评论 -
java中常见IO的读写效率对比
java中的IO的类库非常的庞大,选择性非常的多,当面临一个问题时,往往不知道如何下手!更具我现在的理解,在效率不是非常重要的情况下,一般情况下可能只需要考虑两种情况,即想按照字节去读取,还是想按照行去读取,而一般情况无论采取什么方式去读取,最佳的方式都莫过于用Buffered...去包装要是用的类,而如果效率要求比较高则可以考虑是用FileChannel 或者是 file map,其中fil原创 2012-03-30 22:45:58 · 8893 阅读 · 3 评论 -
java中对于混型的方案
所谓的混型就是让多个类的特性集中到一个类的上面,在java中主要有两种方案来针对这个问题,第一个是用接口,第二种使用动态代理的方式,如果使用第一种方式而且构造的对象模型非常复杂的话,那么对象的层次结构也将变的复杂,第二种方式显的更有灵活性,下面是两种方案的代码package com.eric.generic;import java.lang.reflect.InvocationHandle原创 2012-02-27 23:29:39 · 1841 阅读 · 0 评论 -
java对异常泛型的简单实例
因为泛型具有擦除的特性,所以在现在的java中不支持try{}catch{}的catch子句中不支持对泛型的使用,为了使写的代码在异常的处理方面具有更好的泛型特性,需要在声明类的时候让泛型继承自Exception或者是Throwable,这样在对象进行实例化的时候便可以指定具体的异常类型,下面是异常泛型的小例子/** * Because of erasure, the use of原创 2012-02-27 23:25:13 · 2009 阅读 · 0 评论 -
用java实现的文件夹复制与删除的程序
private void deleteFile(File file) { if (file.exists()) { // 判断文件是否存在 if (file.isFile()) { // 判断是否是文件 file.delete(); // delete()方法 你应该知道 是删除的意思; } else if (file.isDirectory()) { // 否则如果它是一原创 2011-12-18 18:42:04 · 1731 阅读 · 0 评论 -
java中字符串压缩的操作
这段时间项目中碰到一个问题,就是在做页面操作的时候,要保存的数据长度大于了表定义的字段长度,我们现在的项目是基于component开发,由于component是属于德国人开发,且德国人不愿意更改他们的设计,所以最后没有办法最后只能想到了一个对字符串进行压缩然后把压缩后的字符串存进数据库中,当需要从数据库中取数据时,需要对取出的数据进行解压缩,以前没有碰到过这种情况,所以花了很久的时间才写好了一个对原创 2011-12-06 22:13:39 · 5549 阅读 · 3 评论 -
用java实现的一个简单的定时报警程序
在看完了Timer类的应用以及actionListener的相关知识后,结合书上的例子,写了个小程序,这个小程序主要可以定时的发出声音,自己觉得蛮有意思的package com.eric.interfaceAndInnerClass;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt原创 2011-12-06 23:04:34 · 4088 阅读 · 0 评论 -
关于java中初始化顺序的总结及其势力代码!希望高手们可以帮助补充
最近一段时间在看java的基础部分的东西,关于java的初始化机制让我觉得比较的混乱,为了解决这种情况,最近花了一些时间对java中的初始化顺序做了一个总结,如果有不完善的地方还希望各位同僚帮助补充,本帖子的目的是以后不再被Java的初始化问题所困扰,谢谢各位:首先是非扩展类,即只是继承Object的类的初始化顺序,当用到该类的某个非静态方法或者是变量时,初始化的顺序如下(1)静态变量的初原创 2011-11-26 23:01:44 · 1582 阅读 · 0 评论 -
initialize Class- consturctors
package com.eric.object;public class ConsturctsFromBaseClass { public static void main(String args[]) { DerivedClass dc=new DerivedClass(); DerivedClass dc2=new DerivedClass("Eric"); Deri原创 2011-11-16 21:18:49 · 1026 阅读 · 0 评论 -
用List实现的Fibonacci 觉得超级简单,请高手指点
import java.util.ArrayList;import java.util.List;public class Fibonacci { public static void main(String[] args) { System.out.println(fibonacci(10)); } static List fibonacci(int count)原创 2011-10-26 23:03:42 · 1184 阅读 · 0 评论 -
关于 transient的总结
最经的项目中有用到序列化和反序列化的东西,可以对于有些字段的反序列化总是得不到想要的值,折磨了好久,后来一个同事提醒了我,是关于transient的问题,所以特别写了个小例子来描述这个关键字在序列化中的应用 package com.eric.transienttest;import java.io.FileInputStream;import java.io.FileOutputS原创 2011-10-25 22:07:45 · 901 阅读 · 0 评论 -
clone的小例子
package com.eric.clone;public class CloneTest { public static void main(String[] args) { SimpleClone sc = new SimpleClone("Eric"); SimpleClone sc2 = (SimpleClone) sc.clone(); System.out.p原创 2011-10-20 23:11:19 · 882 阅读 · 0 评论 -
内部类实现方式的比较(匿名内部类,局部内部类)
内部类的实现方式有很多种,其中内明内部类和局部内部类比较常见,下面的一个例子主要是针对这两种实现方式做一个简单的比较 package com.eric.interfaceAndInnerClass;interface Counter { public void add();}/** * 这个类主要说明通过匿名内部类和局部内部类的方式来实现内部类,以及说明了内部类可以不受原创 2011-12-13 21:45:40 · 1412 阅读 · 0 评论 -
关于LinkedList和ArrayList 插入元素的性能比较疑惑,知道的请指教......
最近在书上看到了说LinkedList和ArrayList 在这两种list中,前者插入和删除的效率要比后者高,于是我就写了个测试性能的小程序,可是结果总是相反的,插入相同的元素,ArrayList的时间消耗总是少的,不知道是不是这个测试小程序存在着缺点,希望高手指教,代码如下package com.eric.collections;import java.util.ArrayList原创 2011-12-15 22:21:28 · 2278 阅读 · 2 评论 -
java中泛型创建数组的总结
在java中,不能通过直接通过T[] tarr=new T[10]的方式来创建数组,最简单的方式便是通过Array.newInstance(Classtype,int size)的方式来创建数组例如下面的程序public class ArrayMaker { private Class type; public ArrayMaker(Class type) {原创 2012-02-15 21:26:04 · 19272 阅读 · 3 评论 -
java中关于泛型擦除的小结
java由于擦除,在使用泛型的时候一些操作成了程序存在异常的可能 ,这个类中展示了一些容易出现的问题,下面的小例子做了一个简单的总结class Erased { public static void f(Object arg) { // if (arg instanceof T) { // } // Error// T var = new T(); // E原创 2012-02-15 21:42:09 · 1635 阅读 · 0 评论 -
java针对泛型创建对象的中存在擦除的弥补方案
在java中不能像才c++那样,直接声明泛型对象即使 T t=new T(); 但是java中针对这种问题也有一些解决方案,在这里提供三种方案/** * * although in c++ could use new T() to creating a instance of type, but java not support this approach, this class *原创 2012-02-15 21:48:12 · 3656 阅读 · 0 评论 -
initialize Class-static 以及final对class初始化的影响
package com.eric.reflect;import java.util.Random;/** * static&&constant not trigger initialization * Class literals not trigger initialization * */public class Initialize { public static f原创 2012-02-07 22:13:52 · 1412 阅读 · 0 评论 -
java中利用动态代理,生成"空"对象的例子
package com.eric.reflect;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.util.Arrays;import java.util.Collections;import ja原创 2012-02-07 22:17:15 · 1661 阅读 · 0 评论 -
java实现的注册工厂模式
package com.eric.reflect;import java.util.ArrayList;import java.util.Random;/* * factory interface * */interface Factory { public T create();}public class RegisterFactory { public static原创 2012-02-07 22:08:24 · 3681 阅读 · 1 评论 -
Java中利用反射对类的hidden成员方法和属性的访问
java中通过访问控制符来控制对类成员的访问,private 成员表示只在类的内部才可以被访问,但是利用java的反射机制却可以再类的外部来访问类的私有成员下面是个简单的例子来说明这一点package com.eric.reflect;import java.lang.reflect.Field;import java.lang.reflect.Method;/** * *原创 2012-02-07 21:43:43 · 1697 阅读 · 0 评论