Java
醉面韦陀
努力工作一族!!!!!!!!!
展开
-
Map遍历的两种方式
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Objec...原创 2014-10-20 11:09:41 · 106 阅读 · 0 评论 -
Java枚举类
1.创建一个最简单的枚举类型创建枚举类型要使用enum关键字,隐含了所创建的类型都是java.lang.Enum类的子类,它是抽象类。其中,枚举类型符合通用模式 Class Enum<E extends Enum<E>>,而 E 表示枚举类型的名称。枚举类型的每一个值都将映射到 protected Enum(String name, int ordinal) 构造函...2010-04-13 11:30:27 · 91 阅读 · 0 评论 -
Java堆.栈和常量池 笔记
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(static定义的)5. 常量池:存放字符串常量和基本类型常量(public static final)。6....2010-04-07 09:26:26 · 103 阅读 · 0 评论 -
Missing com.sun.jdmk:jmxtools:jar:1.2.1
错误代码如下:1/10/08 4:42:40 PM CST: Launching M21/10/08 4:47:20 PM CST: Launching M21/10/08 4:51:46 PM CST: Reading /myweb/pom.xml1/10/08 4:51:47 PM CST: [WARN] Unable to get resource from ...原创 2010-01-11 21:11:29 · 204 阅读 · 0 评论 -
一堂如何提高代码质量的培训课(三)
3)职责驱动设计和领域驱动设计前面我提到,当我们尝试写一些复杂功能的时候,我们把功能分解成一个个相对独立的函数。但是,应当将这些函数分配到哪个类中呢?也就是系统中的所有类都应当拥有哪些函数呢?或者说应当表现出哪些行为呢?答案就在这里:以职责为中心,根据职责分配行为。我们在分析系统时,首先是根据客户需求进行用例分析,然后根据用例绘制领域模式和分析模型,整个系统最主要的...原创 2010-01-11 10:19:45 · 115 阅读 · 0 评论 -
Eclipse Code Review(代码审查)工具介绍
最近组内一直在做代码改进,既然是代码级别的改进,我想比较直接有效的办法就是Code Review。虽然以前开发部也做过代码评审,但基本上是程序员手动打包代码,评审人员对照打包和IDE中的代码提交缺陷,缺陷在平台上,代码在IDE中,我想评审效率和评审效果都会大打折扣。既然发现了问题,目标很明确,找到一个即可以提高评审效率(即让评审人和被评审人都可以很方便的来参与评审),又可以保证评审效果的工具。再结...原创 2010-01-08 09:53:31 · 143 阅读 · 0 评论 -
高质量代码的三要素(二)
3.可变更性 前面我提到了,软件的变更性是所有软件理论的核心,那么什么是软件的可变更性呢?按照现在的软件理论,客户对软件的需求时时刻刻在发生着变化。当软件设计好以后,为应对客户需求的变更而进行的代码修改,其所需要付出的代价,就是软件设计的可变更性。由于软件合理地设计,修改所付出的代价越小,则软件的可变更性越好,即代码设计的质量越高。一种非常理想的状态是,无论客户需求怎样变化,软件只需进行适当...原创 2010-01-08 09:52:09 · 151 阅读 · 0 评论 -
高质量代码的三要素(一)
我们评价高质量代码有三要素:可读性、可维护性、可变更性。我们的代码要一个都不能少地达到了这三要素的要求才能算高质量的代码。1.可读性强 一提到可读性似乎有一些老生常谈的味道,但令人沮丧的是,虽然大家一而再,再而三地强调可读性,但我们的代码在可读性方面依然做得非常糟糕。由于工作的需要,我常常需要去阅读他人的代码,维护他人设计的模块。每当我看到大段大段、密密麻麻的代码,而且还没有任何的注释时...原创 2010-01-08 09:51:23 · 278 阅读 · 0 评论 -
探讨代理模式与Java反射机制的应用
代理模式,相信大多数人都非常熟悉,常见的实现方式是通过公共接口的方式,让我们的目标类和代理类实现同一接口,在代理类中调用目标类对象的方法。通过接口的方式,有个不好的地方,就是对每个目标类都要写一对与之相对应的接口和代理类,如果业务类很多,就是非常繁锁的工作了。 而加入反射机制的代理模式,可实现一个公共的代理类,省去我们不少功夫。Java的java.lang.reflect包及其子包中提供...2010-04-01 09:53:33 · 83 阅读 · 0 评论 -
Java的代理模式(通过公共接口实现)
代理模式的一种常见的实现方案是,定义一个接口或抽象类,并派生出目标子类,和代理子类。我们要操作的是目标子类里的方法,而很多时候,我们需要为目录子类中的方法增加额外的处理,如果增加日志功能、条件判断等,这时候,就很有必要用到代理类。<!--<br /><br />Code highlighting produced by Actipro CodeHighli...2010-04-01 09:51:25 · 120 阅读 · 0 评论 -
Java多线程编程要点
1、 认识Thread和Runnable Java中实现多线程有两种途径:继承Thread类或者实现Runnable接口。Runnable是接口,建议用接口的方式生成线程,因为接口可以实现多继承,况且Runnable只有一个run方法,很适合继承。在使用Thread的时候只需继承Thread,并且new一个实例出来,调用 start()方法即可以启动一个线程。 Thread Test = n...2010-03-31 09:30:05 · 81 阅读 · 0 评论 -
《敏捷宣言》12准则
《敏捷宣言》背后的12准则我们遵循以下准则:1.我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。 2.欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。 3.要不断交付可用的软件,周期从几周到几个月不等,且越短越好。 4.项目过程中,业务人员与开发人员必须在一起工作。 5.要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。 6...2008-12-25 11:25:28 · 252 阅读 · 0 评论 -
Creating Dynamic Web Project using Maven in Eclipse
While using Maven as build tool in our project, I found it very difficult to create a Dynamic Web Project which supports Maven dependencies and can execute in Eclipse! I have seen lot of people using ...原创 2010-08-10 13:10:47 · 135 阅读 · 0 评论 -
Java 反射测试
import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;/** * Java 反射测试 * * @author Administrator * */public class ReflectTest { /** * For the t...原创 2010-08-10 16:54:27 · 103 阅读 · 0 评论 -
建立你自己的本地仓库(Maven仓库管理-Nexus)
这一个章节,我分两部分来介绍,首先介绍一下Maven的仓库,然后在说一下如何通过Nexus来建立我们自己的仓库,以及如何使用。 Maven仓库在以前使用Ant的时候,我们会建立一个lib目录在存放我们的jar包,比如项目所依赖的第三方包,每建立一个项目都要建立一个lib,不停的做copy工作,不仅是对于磁盘的浪费,而且也造成了版本管理上的麻烦。而且我们还需要通过提交到svn上来对lib进行...原创 2010-07-02 13:34:08 · 661 阅读 · 1 评论 -
对Map按key和value分别排序
一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。...原创 2014-10-20 11:01:07 · 89 阅读 · 0 评论 -
Java数字、货币值和百分数等的格式化处理
如果我们用下列语句输出一个数System.out.println(123456.789);将会在Console看到输出123456.789那么如何得到123,456.789这种格式化的输出呢?这里就需要用到java.text.Format这个类。不仅是数字,它还提供了货币值和百分数的格式化输出,比如0.58的百分数输出形式是58%。要获得本地的默认格式,可以用下列方法获得 ...原创 2016-09-13 18:36:30 · 199 阅读 · 0 评论 -
jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
公司内部同事分享的一篇文章 周末看到一个用jstack查看死锁的例子。昨天晚上总结了一下jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令。供大家参考 1.Jstack 1.1 jstack能得到运行java程序的java stack和native stack的信息。可以轻松得知当前线程的运行情况。如下图所示 注:这个和thread dump是同样的结果。但是thre...原创 2016-08-17 09:01:42 · 194 阅读 · 0 评论 -
jstat查看jvm的GC情况[转]
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。jps存放在JAVA_HOME/bin/jps,使用时为了方便请将JAVA_HOME/bin/加入到Path. jstat 1. ...原创 2016-08-17 08:58:32 · 128 阅读 · 0 评论 -
【转】程序包com.sun.image.codec.jpeg不存在 问题的完美解决
maven下面编译失败,失败提示信息为:程序包com.sun.image.codec.jpeg不存在 这个类文件的位置在jre/lib/rt.jar 而我们设置的java_home下面的lib/dt.jar中没有这个文件,导致编译失败。通过配置maven-compiler-plugin插件可以解决此问题。 <!-- 编译插件 --><plugin> <g...原创 2014-10-09 13:43:06 · 1153 阅读 · 0 评论 -
关于系统读取properties配置文件的路径问题,包括打成jar包的运行文件
在当前的一个项目中,遇到以下业务需要:1.开发环境是在myeclipse里运行的时候,启动服务后,有一个加载配置文件属性信息的Global.java。用于得到配置文件里的配置信息;2.发布系统的时候,需要把系统打成jar执行,这时候之前的加载配置文件的方法就不起作用了得不到配置文件的路径;3.因在系统刚启动时,需要启动加载一个Listener,在Listener里又加载了一个配置文件...原创 2014-10-08 18:05:12 · 223 阅读 · 0 评论 -
Java 7, Ubuntu 12.10 64bit issues
At first Maven failed with the following message:Caused by: java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-7-oracle/jre/lib/amd64/xawt/libmawt.so: libXrender.so.1: cannot open shared object ...原创 2015-04-13 11:57:01 · 105 阅读 · 0 评论 -
java中的equals和hashCode(转载)
在某些时候,我们需要判断两个对象是否相等。Java的每个类都继承于Object类。它使用equals()及hashCode()这两个方法来判断两个Object是否相等。 1. equals() 需要满足5点: 1 自省:对于任一非null引用x,x.equals(x)应返回true; 2 反射:对于任一非null引用x及y,仅在y.equals(x)返回true时,x.equals(y)才返回t...原创 2014-01-15 14:01:15 · 74 阅读 · 0 评论 -
关于java中BufferedReader的read()及readLine()方法的使用注意
以前学习的时候也没有太在意,在项目中使用到了才发现呵呵1.读取一个txt文件,方法很多种我使用了字符流来读取(为了方便) FileReader fr = new FileReader("f:\\TestJava.java"); BufferedReader bf = new BufferedReader(fr);//这里进行读取int b; while((b=bf...原创 2013-06-05 16:08:58 · 148 阅读 · 0 评论 -
java -cp
java -cp classpathSpecify a list of directories, JAR archives, and ZIP archives to search for class files. Class path entries are separated by colons (:). Specifying -classpath or -cp overri...原创 2013-04-19 12:03:33 · 120 阅读 · 0 评论 -
maven 打包可执行jar的方法
1.修改pom.xml增加如下内容[html] view plaincopy<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> ...原创 2013-04-19 12:02:27 · 73 阅读 · 0 评论 -
jdk小工具jps介绍
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。jps存放在JAVA_HOME/bin/jps,使用时为了方便请将JAVA_HOME/bin/加入到Path.$> jps23991 Jps23789 ...原创 2008-12-24 16:17:10 · 191 阅读 · 0 评论 -
log4j自定义输出多个文件
log4j的强大功能无可置疑,但实际应用中免不了遇到某个功能需要输出独立的日志文件的情况,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢?其实只要在现有的log4j基础上稍加配置即可轻松实现这一功能。 先看一个常见的log4j.properties文件,它是在控制台和myweb.log文件中记录日志:log4j.rootLogger=DEBUG, stdout, logfil...原创 2009-12-07 09:47:53 · 91 阅读 · 0 评论 -
java学习杂谈(四)
不知不觉已经写到第四篇了,论坛里面不断的有朋友鼓励我写下去。坚持自己的作风,把一切迷惑不容易理清楚的知识讲出来,讲到大家都能听懂,那么自己就真的懂了。最近在公司实习的时候Trainer跟我讲了很多经典事迹,对还未毕业的我来说是笔不小的财富,我自己的信念是:人在逆境中成长的速度要远远快过顺境中,这样来看一切都能欣然接受了。 好了,闲话不说了,第三篇讲的是反射机制集合框架之类的,这...2008-01-08 14:02:43 · 83 阅读 · 0 评论 -
java学习杂谈(三)
这已经笔者写的第三篇Java杂记了,庆幸前两篇一直得到论坛朋友们的支持鼓励,还望大家继续指正不足之处。笔者也一直渴望通过这样方式清醒的自审,来寻找自己技术上的不足之处,希望和共同爱好Java的同仁们一起提高。 前两次分别讲述了关于jvm、jdk、jre、collection、classLoader和一些Design Pattern的自我理解。这次仍然不准备开始过渡到j2ee...2008-01-08 13:58:01 · 71 阅读 · 0 评论 -
java学习杂谈(二)
鉴于上回写的一点感想大家不嫌弃,都鼓励小弟继续写下去,好不容易等到国庆黄金周,实习总算有一个休息的阶段,于是这就开始写第二篇了。希望这次写的仍然对志同道合的朋友们有所帮助。上回讲了Java动态加载机制、classLoader原理和关于jdk和jre三个问题。这次延续着讲一些具体的类库—— 1. 关于集合框架类 相信学过Java的各位对这个名词并不陌生,对 java.util.*...2008-01-08 13:56:59 · 76 阅读 · 0 评论 -
java学习杂谈(一)
想来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给软件学院的同仁们,帮助大家在技术的道路上少一点弯路。说得伟大一点是希望大家为软件学院争气,其实最主要的还是大家自身的进步提升—— 1.关于动态加载机制—— 学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分。很多人都能背出来Java语言的特点,所谓的动态加载机制等等。当然概念往往...2008-01-08 13:56:00 · 88 阅读 · 0 评论 -
String和Date类型互相转换
以下是String类型转换成Date类型的代码[code]import java.text.SimpleDateFormat;/* * @功能描述 String类型转换成Date类型的方法 * @author sundful */public class StringToDate { public static void main(String[] arg...2007-12-27 20:52:51 · 108 阅读 · 0 评论 -
论坛E-mail验正的正则表达式升级
这几天自己看了.net,下面是自己修改的Email验证的正则表达式:合法E-mail地址:1. 必须包含一个并且只有一个符号“@” 2. 第一个字符不得是“@”或者“.” 3. 不允许出现“@.”或者.@ 4. 结尾不得是字符“@”或者“.” 5. 允许“@”前的字符中出现“+”6. 不允许“+”在最前面,或者“+@”正则表达式如下:--------...2007-12-02 21:50:11 · 685 阅读 · 0 评论 -
简单的JDBC连接数据库的例子
今天复习一下基础,弄个jdbc连接数据库的小例子。1.建表[code]create table USERS ( USER_NAME VARCHAR2(10) not null, COME_FROM VARCHAR2(10), constraint PK_USERS primary...2007-11-29 22:31:38 · 85 阅读 · 0 评论 -
什么是JNDI
JNDI全称 Java Naming and Directory Interface JNDI是Java平台的一个标准扩展,提供了一组接口、类和关于命名空间的概念。如同其它很多Java技术一样,JDNI是provider-based的技术,暴露了一个API和一个服务供应接口(SPI)。这意味着任何基于名字的技术都能通过JNDI而提供服务,只要JNDI支持这项技术。JNDI目前所支持的技术包括L...2007-11-24 13:54:57 · 93 阅读 · 0 评论 -
tomcat5.5配置
第一步:下载j2sdk和tomcat:到sun官方站点 最新的jdk为1.5,tomcat为5.5,建议jdk1.4以上,tomcat4.0以上第二步:安装和配置你的j2sdk和tomcat:执行j2sdk和tomcat的安装程序,然后设置按照路径进行安装即可。1.安装j2sdk以后,需要配置一下环境变量,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定...2007-11-22 12:36:04 · 391 阅读 · 0 评论 -
java replaceall 用法
[code="java"]public class TryDotRegEx {public static void main(String[] args) {// TODO Auto-generated method stubString str = "111.3.22.11";str=str.replaceAll("(^|\\.)(\\d)(\\.|$)","$100$2$3")...2008-08-05 08:36:07 · 2766 阅读 · 0 评论 -
String和InputStream的转换
1. String --> InputStream[code="java"]InputStream StringToInputStream(String str){ ByteArrayInputStream stream = new ByteArrayInputStream(str.getBytes()); return stream;}[/code]2. In...2008-07-07 11:50:48 · 208 阅读 · 0 评论 -
java学习杂谈(五)
本来预计J2se只讲了第四篇就收尾了,可是版主厚爱把帖子置顶长期让大家浏览让小弟倍感责任重大,务必追求最到更好,所以关于J2se一些没有提到的部分,决定再写几篇把常用的部分经验全部写出来供大家讨论切磋。这一篇准备讲一讲Xml解析包和Java Swing,然后下一篇再讲java.security包关于Java沙箱安全机制和RMI机制,再进入J2ee的部分,暂时就做这样的计划了。如果由于实习繁忙更...2008-01-08 14:03:33 · 134 阅读 · 0 评论