Java
文章平均质量分 86
Hason_Huang
书中自有黄金屋,书中自有颜如玉
展开
-
Eclipse下导入外部jar包的3种方式
我们在用Eclipse开发程序的时候,经常要用到第三方jar包。引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间。下面配图说明3种Eclipse引入jar包的方式。 1.最常用的普通操作方式:基本步骤式 右击“项目”→选择Properties,在弹出的对话框左侧列表中选择Java Build Path,如下图所示:选择Add External JA转载 2015-05-14 13:17:15 · 529 阅读 · 0 评论 -
Java 驼峰与下划线的属性名互相转换
public class StringUtil { /** * 转换为下划线 * * @param camelCaseName * @return */ public static String underscoreName(String camelCaseName) { StringBuilder result = new StringBuilder(); i原创 2015-09-12 16:58:17 · 7544 阅读 · 1 评论 -
高版本JDBC驱动加载的补充说明
高版本的Oracle、MySql和Postgresql也不用写,因为采用了最新的SPI技术,驱动的类名在jar包的META-INF/services/java.sql.Driver文件里。你在DriverManager的源码中可以看到一个静态块static { loadInitialDrivers(); println("JDBC DriverManager i原创 2015-09-12 14:58:04 · 942 阅读 · 0 评论 -
JAVA:纯真IP地址库的前述
机缘巧合之下,需要研究下IP数据库,这个库提供给的IP定位功能十分之有用。可以想象,他会被用在很多场合,电子商务需要统计网站流量的来源和分布,社交工具可以知道对方所在的位置等等;、 网络上,清华大学的某人,重写了介绍文档,言简意赅,行文清晰,同时提供了Demo,快速上手。 网上提供的查询IP的程序,写的比较混乱,方法笼杂在一起。同时存在数组越界访问的异常,类封转载 2015-08-05 16:07:10 · 588 阅读 · 0 评论 -
JAVA:实现解析纯真IP数据库
具体解析的纯真版IP地址库请详见http://lumaqq.linuxsir.org/article/qqwry_format_detail.html,这里就不多叙述了。 看下JAVA代码中怎么解析IP的吧。(代码参考至lumaQQ.谢谢开源作者luma) 解析的主类 Java代码 package com.showtime.IPparse;转载 2015-08-05 16:10:30 · 8049 阅读 · 4 评论 -
装饰器模式(Decorator)
1.认识装饰器模式 装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能。通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生对应的子类来扩展,抑或是使用对象组合的方式。显然,直接修改对应的类这种方式并不可取。在面向对象的设计中,而我们也应该尽量使用对象组合,而不是对象继承来扩展和复用功能。装饰器模式就是基于对象组合的方式,可以很灵活的给对象添加所需要的功能。装转载 2015-08-18 14:35:40 · 428 阅读 · 0 评论 -
Java路上,必看书籍
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。 一、Java编程入门类 对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞转载 2015-06-04 08:49:05 · 1108 阅读 · 0 评论 -
ArrayList和LinkedList的几种循环遍历方式及性能对比分析
主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论。通过本文你可以了解(1)List的五种遍历方式及各自性能 (2)foreach及Iterator的实现 (3)加深对ArrayList和LinkedList实现的了解。阅读本文前希望你已经了解ArrayLis转载 2015-07-24 09:10:06 · 799 阅读 · 0 评论 -
VO(DTO)模式在分层架构设计中是否需要的扯淡
VO(DTO)模式在分层架构设计中是否需要的扯淡 Peter Wei引子: 前两天,在内部讨论中。公司有一开发人员向我抛出问题:我们Web层和App应用层用DTO(VO)对象,没有直接用PO,你有什么好的建议?我自然知道他说这句话的意思,PO到DTO(VO)的不停转换,太麻烦,增加太多工作量了。因为我是负责做架构的,他是想让我向上面CTO反映取消掉DTO对象转载 2015-09-14 15:11:34 · 1322 阅读 · 0 评论 -
数据库类型与java数据类型的对应关系
以下转自:http://kummy.itpub.net/post/17165/172850 本文在原文基础上有增减。本概述是从《JDBCTM Database Access from JavaTM: A Tutorial and Annotated Reference》这本书中摘引来的。JavaSoft 目前正在准备这本书。这本书是一本教程,同时也是 JDBC 的重要参考手册,它将作为转载 2015-10-23 17:58:03 · 14595 阅读 · 2 评论 -
Java 动态代理机制分析及扩展
引言Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程中,开发人员还可以按需调整委托类对象及其功能,这是一套非常灵活有弹性的代理框架。通过阅读本文,读者将会对 Java 动态代理机制有更加深入的理解。本文首先从 Java 动态代理的运行机制转载 2015-12-07 21:45:39 · 457 阅读 · 0 评论 -
Dozer使用教程
Dozer使用总结 1 概念1.1 什么是dozer?Dozer 是一个对象转换工具。Dozer可以在JavaBean到JavaBean之间进行递归数据复制,并且这些JavaBean可以是不同的复杂的类型。所有的mapping,Dozer将会很直接的将名称相同的fields进行复制,如果field名不同,或者有特别的对应要求,则可以在x转载 2015-09-06 17:43:42 · 3753 阅读 · 0 评论 -
过滤器的介绍
一、过滤器简介过滤器是Java Servlet 2.3规范中定义的,它能对Servlet容器传给Web组件的ServletRequest对象和ServletResponse对象进行检查和修改。过滤器本身并不生成ServletRequest对象和ServletResponse对象,它只为Web组件提供如下过滤功能:1、在Web组件被调用之前,检查ServletRequest对象,修改请求头和原创 2015-11-30 21:52:12 · 610 阅读 · 1 评论 -
Spring 3整合Quartz 2实现定时任务
Spring 3整合Quartz 2实现定时任务一:常规整合Spring 3整合Quartz 2实现定时任务二:动态添加任务Spring 3整合Quartz 2实现定时任务三:动态暂停 恢复 修改和删除任务续篇及demo下载地址:Spring 整合Quartz 2实现定时任务四:细化调整及一些已知的问题Spring 整合Quartz 2实现定时任务五:集群、转载 2015-10-14 10:47:37 · 719 阅读 · 0 评论 -
注解@PostConstruct与@PreDestroy的使用
从Java EE 5规范开始,Servlet中增加了两个影响Servlet生命周期的注解(Annotion);@PostConstruct和@PreDestroy。这两个注解被用来修饰一个非静态的void()方法 。写法有如下两种方式:@PostConstructPublic void someMethod() {}转载 2015-10-27 10:04:23 · 904 阅读 · 0 评论 -
利用Spring MVC搭建REST Service
之前写过一篇 利用JAX-RS快速开发RESTful 服务 今天来看下spring-mvc框架如何实现类似的功能: 一、pom.xml 1 xml version="1.0" encoding="UTF-8"?> 2 project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3转载 2015-10-12 17:35:24 · 1735 阅读 · 0 评论 -
ScheduledExecutorService 定时周期执行指定的任务
一:简单说明ScheduleExecutorService接口中有四个重要的方法,其中scheduleAtFixedRate和scheduleWithFixedDelay在实现定时程序时比较方便。下面是该接口的原型定义java.util.concurrent.ScheduleExecutorService extends ExecutorService extends转载 2015-10-12 15:48:40 · 2172 阅读 · 0 评论 -
java 利用JAX-RS快速开发RESTful 服务
JAX-RS(Java API for RESTful Web Services)同样也是JSR的一部分,详细规范定义见 https://jcp.org/en/jsr/detail?id=311 。从JAVA EE 6开始,已经内置了该技术,跟.NET中的RESTful WCF类似,只要在常规方法上使用一些简单的注解,就可以对外暴露成RESTful 服务.注:本文运行环境为Jboss EA转载 2015-10-12 17:27:02 · 1068 阅读 · 0 评论 -
PostgreSQL JDBC:查询和处理结果
这个例子将执行一个简单的查询,并使用打印出每一行的信息(id, name, age)。 //1.加载驱动 Class.forName("org.postgresql.Driver"); //2.设置连接数据库参数 String url = "jdbc:postgresql://localhost:5432/hason_db1"; Properties props =原创 2015-08-02 12:31:05 · 4197 阅读 · 0 评论 -
JDBC在getConnection之前为什么要调用Class.forName
获取一个数据库连接的通用模板如下:String driver = "oracle.jdbc.OracleDriver";String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";String user = "scott";String password = "ticmy";转载 2015-08-02 11:56:06 · 398 阅读 · 0 评论 -
Ant 风格
我们在看java技术书籍的过程中,当加载文件时总会遇到是否支持ant风格路径加载,这里说的ant风格是什么意思呢,今天我查了一下,明白了什么意思,现在总结一下ANT通配符有三种: 通配符说明?匹配任何单字符*匹配0或者任意数量的字符**匹配0或者更多的目录 下面举个例子:转载 2015-07-13 15:40:01 · 569 阅读 · 0 评论 -
Java的可变参数“...”
Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。注意:可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。可变参数的特点:转载 2015-06-13 21:40:33 · 573 阅读 · 0 评论 -
Eclipse自动生成注释,修改注释模板
用Myeclipse开发项目是,自动生成注释十分方便快捷,但我们希望自动生成自己的名字和一些内容,同时团队开发过程中会出现每个人注释格式不一致等问题。 下面介绍如果通过修改Myeclipse注解模板解决问题。 本人Myeclipse常用的设置,可按需要作相应修改 ----------------------------------------------------- 1.转载 2015-07-10 15:43:30 · 703 阅读 · 0 评论 -
Java MessageFormat.format的用法
MessageFormat用来格式化一个消息,通常是一个字符串,比如:String str = "I'm not a {0}, age is {1,number,short}", height is {2,number,#.#}; 而MessageFormat可以格式化这样的消息,然后将格式化后的字符串插入到模式中的适当位置,比如:将str中的{0}用"pig"替换转载 2015-07-09 14:26:43 · 1705 阅读 · 0 评论 -
Java 并发专题 : Timer的缺陷 用ScheduledExecutorService替代
继续并发,上篇博客对于ScheduledThreadPoolExecutor没有进行介绍,说过会和Timer一直单独写一篇Blog.1、Timer管理延时任务的缺陷a、以前在项目中也经常使用定时器,比如每隔一段时间清理项目中的一些垃圾文件,每个一段时间进行数据清洗;然而Timer是存在一些缺陷的,因为Timer在执行定时任务时只会创建一个线程,所以如果存在多个任务,且任务时间过长,转载 2015-07-09 10:12:37 · 507 阅读 · 0 评论 -
Java / Android 基于Http的多线程下载的实现
有个朋友需要个多线程现在的例子,就帮忙实现了,在此分享下~先说下原理,原理明白了,其实很简单:a、对于网络上的一个资源,首先发送一个请求,从返回的Content-Length中回去需要下载文件的大小,然后根据文件大小创建一个文件。[java] view plaincopythis.fileSize = conn.getCont转载 2015-07-09 10:10:41 · 346 阅读 · 0 评论 -
POI对Excel自定义日期格式的读取
用POI读取Excel数据:(版本号:POI3.7)1、读取ExcelJava代码 private List rosolveFile(InputStream is, String suffix, int startRow) throws IOException, FileNotFoundException {转载 2015-07-01 08:56:28 · 502 阅读 · 0 评论 -
使用POI操作Excel,读取、写入Excel
package com.ucf.boss.utils;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.io.OutputStr转载 2015-06-18 17:44:35 · 1487 阅读 · 1 评论 -
Spring中的线程池ThreadPoolTaskExecutor
一、初始化1,直接调用[java] view plaincopyprint?ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor(); //线程池所使用的缓冲队列 poolTaskExecutor.setQueueCapacity(200)转载 2015-07-06 16:33:09 · 2417 阅读 · 0 评论 -
Spring线程池ThreadPoolExecutor配置并且得到任务执行的结果
用ThreadPoolExecutor的时候,又想知道被执行的任务的执行情况,这时就可以用FutureTask。ThreadPoolTask01package com.zuidaima.threadpool;02 03import java.io.Seri转载 2015-07-06 16:37:17 · 1281 阅读 · 0 评论 -
Java获取客户端IP
在开发工作中,我们常常需要获取客户端的IP。一般获取客户端的IP地址的方法是:request.getRemoteAddr();但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。原因:由于在客户端和服务之间增加了中间代理,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。现在图示代理上网和IP的关系:转载 2015-08-13 09:54:35 · 458 阅读 · 0 评论 -
Java 一行代码初始化ArrayList
我愿意创建列表的选项,以测试的东西。我正在做:ArrayList places = new ArrayList();places.add("Buenos Aires");places.add("Córdoba");places.add("La Plata");我重构代码做:ArrayList places = new ArrayList(Arrays.asList(转载 2015-07-17 12:57:45 · 5858 阅读 · 2 评论 -
正则表达式验证日期合法性(包括闰年)
根据上一篇文章正则表达式 验证日期合法性(包括匹配闰年)做了日期连接符的扩展,令其连接符支持“-”,“/”,“.”与yyyyMMdd的格式。若要更换连接符,搜索并替换掉[-/.]{0,1}/** * * Description: 验证日期是否合法,匹配闰年 * * @author Huanghs * * @param da原创 2015-08-10 15:12:34 · 1612 阅读 · 0 评论 -
正则表达式 验证日期合法性(包括匹配闰年)
验证日期的正则表达式(加入闰年的判断)以及思路分析进入正题之前,我们需要澄清两个概念:一,什么是合法的日期范围?对于不同的应用场景,这个问题有不同的解释。这里采纳MSDN中的约定:DateTime 值类型表示值范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之转载 2015-07-17 17:05:25 · 2072 阅读 · 0 评论 -
Java MessageFormat.format 特殊符号、单引号
在MessageFormat.format方法中组装jason数据字符串:{code:"w1",des:"w2"},起止分别有左大括号和右大括号。方法是将单引号把大括号包含起来。如下: String responseTemplate = "'{'code:\"{0}\",des:\"{1}\"'}'"; System.out.println(转载 2015-07-09 19:33:07 · 7948 阅读 · 1 评论 -
Java 通过反射调用方法
传送么:http://lavasoft.blog.51cto.com/62575/61002/这是个测试用的例子,通过反射调用对象的方法。 TestRef.javaimport java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException;/** * Creat转载 2015-07-29 17:43:31 · 577 阅读 · 0 评论 -
Java编程思想 - 类型信息与反射机制
首先介绍一个本文后面会频繁提到的概念:RTTI(Runtime Type Information,或者,Run-Time Type Identification),运行时类型信息。简单来说,就是指程序能够在运行时发现和使用类型信息。 RTTI能做什么??它解放了程序在编期间执行的面向类型的操作,不管是程序的安全性还是可扩展性和可维护性,都得到了大大的加强转载 2015-07-07 20:40:48 · 883 阅读 · 0 评论 -
Eclipse debug 多线程
以前用到过许多线程开发,对多线程开发也算是小有点心得,但一开始多线程开发的时候,碰到很多壁。但总得来说,有个好的工具总是能事半功倍。我用的工具是eclipse,在开发多线程时,其debug模式是能直接模拟多线程环境的,网上也有许多资料,但大多都不是很全。希望我能够将自己的一些心得记录下来,希望能帮助到还为多线程开发而纠结的朋友。先写个简单的多线程测试用例:package com.w转载 2015-07-07 14:54:43 · 487 阅读 · 0 评论 -
Fastjson生成json时Null属性不显示
举个例子[java] 预览复制Map "http://wuzhuti.cn/tag/json/" title="JSON">JSONMap = new HashMap(); jsonMap.put("a",1); jsonMap.put("b",""); jsonMap.put("c",null); jsonMap.put("d转载 2015-08-07 09:01:15 · 37328 阅读 · 1 评论