JAVA
文章平均质量分 71
lizeyang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Stackoverflow JAVA TOP 100问题翻译征集令
去年,我在github上发起了这个项目《StackOverflow Java Top100问题(翻译)》https://github.com/giantray/stackoverflow-java-top-qa对阅读本项目的人来说,有两个益处:1.巩固基础。top100问题都是比较重要、基础的问题;而且也都是so上很多人优化和投票的,很靠谱。2.快速学习原创 2016-02-25 17:31:12 · 1922 阅读 · 0 评论 -
【Stackoverflow好问题】Java += 操作符实质
问题直到今天,我都一直以为:i += j 等同于 i = i + j;但假设有:int i = 5;long j = 8;那么 i = i + j不能编译,但i += j却可以。这是否意味着,i += j,实际是等同于 i= (type of i) (i + j)呢?精华回答:这个问题,其实官方文档中已经解答了。 请看这里。§15翻译 2014-10-14 16:56:54 · 1222 阅读 · 0 评论 -
【Stackoverflow好问题】将InputStream转换为String
不重复造轮子。最靠谱的方法,还是用Apache commons IOUtils 这样简单几行代码就搞定了StringWriter writer = new StringWriter();IOUtils.copy(inputStream, writer, encoding);String theString = writer.toString();或者String theSt翻译 2014-10-13 11:48:28 · 1579 阅读 · 3 评论 -
【Stackoverflow好问题】获取完整的堆栈信息
问题捕获了异常后,如何获取完整的堆栈轨迹(stack trace)精华回答String fullStackTrace = org.apache.commons.lang.exception.ExceptionUtils.getFullStackTrace(e)stackoverflow原址:http://stackoverflow.com/quest翻译 2014-10-13 11:35:12 · 1937 阅读 · 0 评论 -
【Stackoverflow好问题】去掉烦人的“!=null"(判空语句)
问题为了避免空指针调用,我们经常会看到这样的语句...if (someobject != null) { someobject.doCalc();}...最终,项目中会存在大量判空代码,多么丑陋繁冗!如何避免这种情况?我们是否滥用了判空呢?精华回答:这是初、中级程序猿经常会遇到的问题。他们总喜欢在方法中返回null,因此,在调用这些方法时,也翻译 2014-10-13 10:29:42 · 12095 阅读 · 21 评论 -
【Stackoverflow好问题】将数组转换为List
问题假设有数组Element[] array = {new Element(1),new Element(2),new Element(3)};如何将其转换为ArrayList arraylist呢?精华回答Arrays.asList(array)或者Arrays.asList(new Element(1),new Element(2),翻译 2014-10-13 11:27:21 · 2050 阅读 · 4 评论 -
多参数之间,建议用逗号做分隔符
问题:参数如果是List,应该用什么分隔符来连接呢?例如:1、GET方法,拥有参数key1,它的对应值是一个list,值为value1,value2,用什么分隔符连接这两个value值2、配置文件中,value值也是一个list,又该怎么拼接?3、将list保存为db的一个字段,用什么分隔符总结:采用逗号做分隔符。也就是配置文件中,是key=value,value2;G原创 2014-09-23 12:07:08 · 11051 阅读 · 0 评论 -
mybatis使用小贴士
分享了以下tips:一、事务管理二、xml配置sql代码段三、#和$的区别四、注意对做转义五、依据字符串是否为空,动态组织sql语句六、使用自定义的类型转换器七、resultMap的复用一、事务管理用户执行一个动作,后台需依次更新多个表,如果其中有一个更新失败,则要回滚之前的更新。这种情况,就是事务回滚。要支持事务操作,需要:原创 2014-05-17 16:51:52 · 1896 阅读 · 0 评论 -
导出excel功能,较通用的一种实现
作用:通过jxl包生成excel文件。示例请看main方法 特点: 1、通过java的反射特性,将jxl生成excel的逻辑,和业务数据解耦。在LinkedHashMap参数中定义每一列的标题以及对应的javabean属性,生成excel时,就会根据map插入的先后顺序,依次在excel中添加列,每列的标题为map的value值,内容为对应的javabean属性。 2、通过一个原创 2014-03-25 21:07:14 · 2630 阅读 · 0 评论 -
freemarker数字默认不加逗号
* 在模板中直接加.toString()转化数字为字符串,如 ${num.toString()} * 使用?c控制,如 ${num?c}* 在freemarker配置文件freemarker.properties(在class目录下即可)加number_format=# * 在模板中直接加;* 通过freemarker.template.Configuration的config.转载 2014-02-11 16:44:22 · 5338 阅读 · 0 评论 -
【Stackoverflow好问题】Java修饰符:public,protected,private,不加修饰符。有什么区别呢?
问题Java修饰符:public,protected,private,不加修饰符。有什么区别呢?精华回答如下表所示,Y表示能访问(可见性),N表示不能访问,例如第一行的第3个Y,表示类的变量/方法如果是用public修饰,它的子类能访问这个变量/方法修饰符类内部同个包(package)子类其他范围public翻译 2014-10-14 18:29:21 · 5138 阅读 · 0 评论 -
【Stackoverflow好问题】LinkedList、ArrayList各自的使用场景,如何确认应该用哪一个呢?
问题LinkedList、ArrayList各自的使用场景,如何确认应该用哪一个呢?精华回答一言以蔽之,在大部分情况下,使用ArrayList会好一些。一、耗时上各有优缺点。ArrayList稍有优势。List只是一个接口,而LinkedList、ArrayList是List的不同实现。LinkedList的模型是双向链表,而ArrayLis翻译 2014-10-17 09:55:03 · 2636 阅读 · 0 评论 -
【Stackoverflow好问题】StringBuilder和StringBuffer对比
问题StringBuilder和StringBuffer有哪些区别呢?精华回答最主要的区别,StringBuffer的实现使用了synchronized(锁),而StringBuilder没有。因此,StringBuilder会比StringBuffer快。如果你 非常非常追求性能(其实这两个都不慢,比直接操作String,要快非常多了翻译 2014-10-13 11:41:00 · 1840 阅读 · 0 评论 -
【Stackoverflow好问题】如何遍历map对象(如HashMap)
问题如何遍历map对象(如HashMap)精华回答jdk1.5以上版本for (Entry entry : map.entrySet()){ System.out.println(entry.getKey() + "/" + entry.getValue());}需要 import java.util.Map.Entry;jdk1翻译 2014-10-20 09:45:51 · 1443 阅读 · 0 评论 -
【Stackoverflow好问题】重写(Override)equlas和hashCode方法时应考虑的问题
问题重写(Override)equlas和hashCode方法时应考虑哪些问题?精华回答理论上讲(偏程序语言和数学层面)equals() 定义了对象的相等关系(自反性、对称性、传递性)(有点抽象,更详细说明,请参考javadoc) 。另外,它还具有一致性(也就是说,如果一个对象没有修改,那么这个方法应总是返回相同的值),此外,o.equals(nul翻译 2014-12-01 10:13:35 · 1814 阅读 · 0 评论 -
【Stackoverflow好问题】Java是按值传递还是按引用传递
明确地说,java是按值传递的!java的世界里,都是按值传递。其实按值、按引用都只是个概念,关键是我们如何去理解java传参的本质。下面就结合一个例子来说有些情况下,传递的值,其内容是个引用,这一点容易让人产生困惑。请看下面的例子首先有如下代码Dog myDog = new Dog("Rover");foo(myDog);这时,你传给了foo函数一个值,这个值的内容翻译 2014-10-14 16:58:50 · 1653 阅读 · 0 评论 -
Java程序员的好工具:通过json生成javabean(pojo)
向大家介绍我开发的一款工具,json-to-java.它可以帮助java程序员,通过json生成对应的javabean。当你需要调用json返回格式的api时,该工具特别有用。功能介绍我们开发的java系统,经常需要调用其他系统的API。这些API的返回格式,往往都是json格式。这个小工具,可以帮助你把json格式的数据,转换成对应的javabean。以简化你手动拷贝粘贴json属性的工作。哪些人原创 2015-06-18 11:34:55 · 8115 阅读 · 9 评论 -
【Stackoverflow好问题】从一个多层嵌套循环中直接退出
问题Java中如何从一个多层嵌套循环中退出,例如下面,有两个循环,break只能退出一个for循环,不能直接跳过第二个for循环for (Type type : types) { for (Type t : types2) { if (some condition) { // Do something and break...翻译 2014-12-01 10:16:08 · 2431 阅读 · 1 评论 -
【Stackoverflow好问题】Map<Key,Value>基于Value值排序
问题Map如何基于Value值排序精华回答方法1:使用TreeMap,可以参考下面的代码public class Testing { public static void main(String[] args) { HashMap map = new HashMap(); ValueComparator b翻译 2014-12-01 10:06:14 · 1463 阅读 · 0 评论 -
【Stackoverflow好问题】如何使用java.net.URLConnection收发HTTP请求
问题如何使用java.net.URLConnection收发HTTP请求呢?处理Http请求,有哪些最佳实践?讨论:精华回答首先声明,下面的代码,都是基本的例子。更严谨的话,还应加入处理各种异常的代码(如IOExceptions、NullPointerException、ArrayIndexOutOfBoundsException)翻译 2014-11-27 21:16:16 · 2779 阅读 · 0 评论 -
【Stackoverflow好问题】java中,如何判断数组Array是否包含指定的值
问题java中,如何判断数组Array是否包含指定的值精华回答1.Arrays.asList(...).contains(...)2.使用 Apache Commons Lang包中的ArrayUtils.containsString[] fieldsToInclude = { "id", "name", "locatio翻译 2014-10-20 10:03:39 · 1773 阅读 · 1 评论 -
java在访问https资源时,忽略证书信任问题
java程序在访问https资源时,出现报错sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to r原创 2014-02-08 13:19:09 · 41771 阅读 · 14 评论 -
GWT的默认窗体控件,在右上角增加关闭按钮
笔者使用的GWT2.3,它的弹窗控件(DiagBox)默认是不提供关闭按钮的,因此对其进行改造。要进行改造,首先应认识到,GWT的每一个控件,对应的其实都是HTML的实现,GWT也支持我们拿到html元素,然后对其做修改,例如,对于窗体控件,可以通过geCaption()方法,拿到窗体头部对象,然后将其转为HTML对象,也就是HTML caption = (HTML) getCaption原创 2014-01-17 22:28:10 · 2291 阅读 · 0 评论 -
单元测试(2)--Junit简明指南
一、常用断言1. assertEquals([String message],Object target,Object result) target与result不相等,中断测试方法,输出messageassertEquals(a, b) 测试a是否等于b(a和b是原始类型数值(primitive value)或者必须为实现比较而具有equal方法)assertEquals原创 2013-05-03 20:29:22 · 1473 阅读 · 0 评论 -
java排序总结(Comparator、apache-common工具包两种方法)
在进行java开发时,经常需要对list进行排序,本文对此进行小结。总结了两种方法,第一种是通过原生支持的Comparator做排序,第二种是通过apache-common的工具包进行排序。相比而言,第二种代码可读性、易用性更强,推荐使用第二种。一、排序目标我们要对User类组成的list进行排序,先按年龄age倒序排,再按等级grade正序排,如果grade为null,视为最大值,要原创 2013-05-02 21:55:34 · 9172 阅读 · 0 评论 -
Exchange java api的使用
因项目原因,需要通过程序监控到自己公司邮箱的收邮件情况。而公司邮箱支持exchange协议,微软也提供了官方的API,因此决定采用微软exchange的api,做一个邮件收取监控器。我已经通过outlook,给我关注的邮件建立了一个收件夹,所有满足我关注条件的邮件,都会进入到这个收件夹,因此这个程序也只收取这个收件夹下的内容即可,不用收取所有邮件。一、获取API包URL原创 2013-03-03 15:04:43 · 12860 阅读 · 7 评论 -
读取pbxproj格式的文件
ios项目,都会有一个名为project.pbxproj的文件,这里面保存了项目的基本配置,例如你的项目有几个target,用什么证书之类。笔者之前因项目需要,需要从这个文件中读取target、configuration等信息,本来想自己写程序实现。后来发现在github上面,已经有人实现了。用起来比较方便,不敢独享,在此分享。一、用途(示例代码)/* * #%L * xcode-原创 2013-05-02 23:45:39 · 4796 阅读 · 0 评论 -
HashMap的遍历
Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = entry原创 2013-04-15 07:37:25 · 1097 阅读 · 0 评论 -
javaWeb(struts+freemarker)项目,捕获404、异常并做优化处理
最近开发的java web项目(struts+freemarker),页面各种报404,500,抛各种异常,而且这些错误直接显示在页面上,对用户很不友好。最后通过以下三个步骤优化项目的容错一、修改web.xml,重定向404页面web.xml的功能很强大,如果页面返回错误码,如404,500,可以将页面重定向新的页面,如下配置,将所有404页面重定向到自定义的404.html原创 2013-04-12 12:06:59 · 2683 阅读 · 0 评论 -
从页面向后台(struts)post数据,中文乱码问题解决
java web开发时,从页面向后台post 中文时,发现会乱码,这个问题,主要是编码格式导致的,试了以下几种解决办法,都是可行的1.在action中重编码,在指定参数的set方法中,将编码设会“UTF-8",例如: public void setCopyRight(String copyRight) { try原创 2013-03-11 09:47:03 · 1646 阅读 · 0 评论 -
手把手教你配置Spring+hibernate
项目一般都需要查询数据库,hibernate是一套比较好的解决方案。本文将手把手教你如何配置Spring+hibernate,为项目搭建好“数据库操作”的主要框架。一、引入包本例子使用Spring+Hibernate,连接mysql数据库,故需要下载hibernate、spring、apache common、mysql相关的包下载地址:1.Spring(3.2.0.M2)原创 2013-03-09 15:17:23 · 2491 阅读 · 0 评论 -
单元测试(3)--参数化测试方法
作用:我们在测试登录框的时候,可能会输入帐号密码,根据不同的帐号密码,返回值也不一样。设计用例时,不同的仅仅是输入数据及预期的结果,而用例执行的中间过程是一样的。这时,我们可以通过参数化测试方法,来达到简化用例的目的,你可以创建一个通用的用例,然后通过数组的方式,给出输入的的变量值及对应的期望值。数组里面有几组参数,那么最终执行的用例数量也是相应的。代码示例:如何实原创 2013-05-03 20:37:20 · 2478 阅读 · 0 评论 -
log4j配置按模块输出log
我们一般都使用log4j来输出log。如果项目中有多个模块,希望不同模块的日志,能输出到不同的log文件中,该怎么配置呢?首先,需要有一个LogUtils类,其他类需要输出log时,通过这个类,获取logger实例。下面假设我有一个模块,名为emailCheck,则代码如下public final class LogUtils{ private static原创 2013-05-25 17:40:16 · 2349 阅读 · 0 评论 -
struts validator例子
本文假设你已经:1、工程中引入了struts的主要包2、希望使用“注解”来配置页面跳转、validator,而不是xml文件本文的例子:productId是Action中的一个属性,需要检验:它是非空的。如果校验失败,跳转至一个页面开始了哈~一、Action中的配置1、配置validator校验器action中的productId需要有set、g原创 2014-01-17 21:56:28 · 1511 阅读 · 0 评论 -
编译java web工程的ant脚本模板
流程、自动化工具的好处,就是能让我们在保证效率的同时,也不容易犯一些低级错误。用ant来编译java web工程就是这样,能让我们在发布环节,更加规范、高效。这里分享一套,我所使用的ant脚步一、使用的前提你的代码目录结构应该是这样:srcresources-----common 不管测试环境,还是正式环境,都是一样的配置文件,如web.xml,strtus.xml原创 2014-01-17 19:52:23 · 2558 阅读 · 0 评论 -
遇过的坑-用ant编译java项目,如果static变量有修改,使用了该static变量的java文件, 不会重编译
java项目,修改了static变量后,你必须知道的潜规则原创 2014-01-13 12:37:42 · 4202 阅读 · 5 评论 -
通过java.util.concurrent写多线程程序
在JDK 1.5之前,要实现多线程的功能,得用到Thread这个类,通过这个类设计多线程程序,需要考虑性能,死锁,资源等很多因素,一句话,就是相当麻烦,而且很容易出问题。所幸的是,在JDK1.5之后,java.util.concurrent包出现了,这是一个设计良好的多线程工具类,本文就将介绍该类的基本使用方法。按照本博的风格,依然是先扔上一段示例代码,然后我们再慢慢讲解package原创 2013-08-05 01:19:42 · 2997 阅读 · 0 评论 -
自定义类组成的List,去重的方法
现有,自定义类public class MyBean{ private String id ; private String username ; private String time ; private String version ;}首先,你需要重写这个类的equals和hashCode方法,如果两个对象的四个属性都原创 2013-06-12 23:00:19 · 2396 阅读 · 0 评论 -
log4j根据参数动态确定log文件路径
log4j.appender.myLogFile.File=E:/logs/test/main.log上面这一行,是典型的log4j的log文件路径配置。那么,能否根据程序的不同参数,将log输出到不同的路径呢。答案是有的,实例代码如下java代码:public static Logger getLoggerByAccout1(String accout){if (null原创 2013-06-01 17:15:25 · 3913 阅读 · 1 评论 -
mac safari对application/x-msdownload的支持不佳
做了一个下载文件的servlet,其中将content-type设为application/x-msdownload,在windows下,表现很正常。在mac下,使用chrome调用该servlet下载文件,也很正常。但是,但使用mac的safari时,问题来了,文件的后缀都被自动带上了.exe。怎么解决呢?不要设为application/x-msdownload,改设为app原创 2013-05-27 22:17:17 · 12819 阅读 · 0 评论
分享