Java
文章平均质量分 60
wayne_ren
这个作者很懒,什么都没留下…
展开
-
JAXB实例入门
[b]JAXB(Java Architecture for XML Binding)[/b],JDK标准规范,Java对象和XML之间的转换,和SAX/DOM不同的是无需关注XML解析细节。[list][*]Marshalling – 把Java对象转换成XML[*]Unmarshalling – 把XML转换成Java对象[/list][b]版本:[/b]* JDK1.6开始...原创 2017-06-09 10:17:08 · 436 阅读 · 0 评论 -
Java 8 之 流(Stream)
与java.io包里的InputStream和OutputStream是完全不同的概念,它是以数据流的形式来处理数据集合。[list][*]不是collection,有点儿像iterator但没有存储[*]仅代表数据流,并没有数据结构[*]只能被遍历一次(返回另外一个Stream)。采用Lazy方式,如果有多个中间操作和最终操作,在调用最终操作的时候才会同时处理所有中间操作。[...原创 2014-03-24 16:31:41 · 134 阅读 · 0 评论 -
Java 8 之 新日期时间API
Joda-Time作者Stephen Colebourne领导完成的JSR-310已经随着Java 8的Release正式发布。JSR-310的API和Joda-Time是兼容的,但经过了重新设计。Google一下网上已经有很多介绍,有人说JSR-310有些过度设计,“不管你喜不喜欢他,他都带着诚意扑面而来了”。Joda-Time的介绍:[url=http://rensanning.ite...原创 2014-03-21 16:49:19 · 195 阅读 · 0 评论 -
Java 8 之 Windows XP下的安装
2014年3月18日、甲骨文的Java开发团队发布Java 8正式版本。 [b]Windows XP下的安装[/b]从官网网站下载jdk-8-windows-i586.exe[url=http://www.oracle.com/technetwork/java/javase/downloads/index.html]http://www.oracle.com/technetwo...原创 2014-03-19 13:16:55 · 919 阅读 · 0 评论 -
Bean、DTO、VO、Entity、Form...?
Java项目中,经常遇到很多具有统一命名规则的类。比如:XXXBean、XXXDTO、XXXEntity、XXXVO、XXXForm等。这些类大多被用于MVC的Model层,有很多共性。比如都具有私有属性、Setter/Getter,但具体什么时候该用什么呢。[b](1)Bean[/b]JavaBeans的简称,对于Java程序员来说是最不陌生的,即使是刚开始学Java,也会应该听说过...原创 2013-09-10 15:04:52 · 926 阅读 · 0 评论 -
GC日志分析
GC:Garbage Collection 垃圾回收[b](1)GC种类:[/b]Scavenge GC 和 Full GC选择合适的GC收集器(串行、并行、并发)、调整JVM heap的大小、调整young generation的比重。[b](2)设置输出GC日志:[/b][quote]CATALINA_OPTS="-server -Xms3072m -Xmx30...原创 2014-07-18 08:54:16 · 109 阅读 · 0 评论 -
Java枚举类型Enum的用法
[b](1)定义[/b][code="java"]/* * 最基本的enum */enum NumericEnums { ONE, TWO, THREE, FOUR, FIVE,}[/code][code="java"]/* * 构造函数和自定义方法 */enum ConstructableEnums { ABC(10, "abc"), DE...原创 2014-02-11 09:54:05 · 509 阅读 · 0 评论 -
Java代码中使用JSP/JSF表达式语言EL
JSP/JSF中的“EL”有很多版本,Tomcat对应的EL版本如下:[img]http://dl2.iteye.com/upload/attachment/0093/6964/89558aa2-7a63-3475-b258-f0ebd8b5a54e.png[/img][list][*]EL2.1:JavaEE5/Tomcat6 (Unified EL:${}和#{}作用相同但不能混用)...原创 2014-02-10 12:34:31 · 261 阅读 · 0 评论 -
Java数组的长度到底能有多大?
在确保内存大小的前提下,使用Oracle的Java VM,以下代码肯定会报错:[code="java"]int[] max = new int[Integer.MAX_VALUE];[/code]错误信息是:[quote]java.lang.OutOfMemoryError: Requested array size exceeds VM limit[/quote]注意这里的错...原创 2014-02-07 14:47:50 · 1640 阅读 · 0 评论 -
Java检测无用代码之UCDetector
如果你的项目代码量很大,或者维护了好多年,就必然会存在很多无用代码,维护这些代码会带来很大的成本开支,有时候需要清理这些无用代码,可以通过代码覆盖率工具来检测,但是这样也会很费事。UCDetector : Unnecessary Code Detector,一个检测无用的public代码(类、方法,属性等)的eclipse插件。[url=http://www.ucdetector.org/...原创 2014-02-07 10:25:33 · 680 阅读 · 0 评论 -
Java数学表达式计算(Expression Evaluator)
常见的表达式计算lib有:[list][*][url=https://github.com/scireum/parsii]parsii[/url] [*][url=http://jeval.sourceforge.net/]JEval[/url][*][url=http://jeplite.sourceforge.net/]JEPLite[/url][*][url=https:...原创 2014-02-06 15:06:29 · 1531 阅读 · 0 评论 -
日文 全角/半角 平假名/片假名 的转换
(1)使用[url=http://icu-project.org/download/]ICU4J[/url][code="java"]String src = "AaAアいろはアイウエイウエ";//全角文字→半角文字に変換Transliterator trF2H = Transliterator.getInstance("Fullwidth-Halfwidth");Syst...原创 2014-01-27 09:56:13 · 13435 阅读 · 1 评论 -
Java简化臃肿代码之Lombok
对于Java语言的一些模板代码(Boilerplate Code),比如我们最常见的访问类的成员变量的getter/setter。如果没有特殊需求,这些方法一般都按照统一的定义规则来书写,而且内容基本不会有什么变化。当然现在流行的Java的IDE开发工具都提供这些模板代码的自动生成,或者一些编辑器也提供Snippet功能,来减少这些重复性的工作。以最常见的Java开发IDE的Eclipse...原创 2013-08-26 10:22:13 · 216 阅读 · 0 评论 -
使用cglib动态为Java类添加方法
CGLib(Code Generation Library)是一个强大的,高性能,高质量的字节码操作类库,它可以在运行期扩展Java类与实现Java接口,Spring、Hibernate等很多著名的框架都使用了它。[url=https://github.com/cglib/cglib/]https://github.com/cglib/cglib/[/url]其他的库还有:[url...原创 2013-08-14 09:36:30 · 1665 阅读 · 0 评论 -
Java日文分词器之Kuromoji
Kuromoji是一个开源的,基于java语言开发的轻量级的日文分词工具包。捐赠给了ASF之后被内置在Lucene 和 Solr中,作为默认的日文分词器(默认的中文分词器是smartcn)。但他也不依赖Lucene 或 Solr,可以单独使用。采用维特比算法(Viterbi algorithm),默认使用IPA字典。其他有名的还有lucene-gosen :[url=http://code...原创 2014-01-23 15:26:46 · 1415 阅读 · 0 评论 -
Java元组类型之javatuples
关于方法的返回值,经常需要返回2个值或多个值的一个序列,比如数据表的一条记录,文件的一行内容等。除了使用数组Array、集合(List、Set、Map)这些容器类型之外,在Java中我们就必须创建一个Class来作为返回类型。在很多语言中都提供元组类型Tuple的支持,比如 .NET Framework 最多支持7个元素的元组,[url=http://technet.microsoft.c...原创 2014-05-20 10:58:02 · 473 阅读 · 0 评论 -
Java 8 之 默认方法、函数式接口、方法引用
[size=medium][b][color=blue]默认方法(Default Methods)[/color][/b][/size]在Java的interface中一直只是包含方法的定义不能有实现,而且Java也不支持多继承。参考[url=http://rensanning.iteye.com/blog/1847732]Why Multiple Inheritance is Not Sup...原创 2014-03-27 09:25:59 · 231 阅读 · 0 评论 -
Java交互模式执行代码 之 Java REPL
REPL(Read-Eval-Print-Loop)即“读取-评价-打印-循环”,是一个基于文本的工具,它以表达式作为输入,在特定程序的上下文中进行评价,然后显示结果。接着,它等待获得另一个表达式作为输入,然后重复这些操作。很多解释型语言都提供一种交互式运行代码的工具,比如:Ruby的irb、Python的ipython。而对于编译型语言的Java,一般来说,在编写/编译/调试过程中编译是必不可少...原创 2014-03-27 14:58:46 · 564 阅读 · 0 评论 -
Java 8 之 Lambda表达式
Java 8历时2年8个月,这次升级是继Java 5之后对Java一次脱胎换骨的变化。在Java 8的新特性中很多都是围绕Lambda表达式而提供的,Lambda表达式也将使热衷于OOP(Object-Oriented Programming)的Java程序员体会到FP(Functional Programming)的强大。Java 8的Lambda表达多少借鉴了Scala的Lambda(Scal...原创 2014-04-01 09:14:43 · 318 阅读 · 0 评论 -
Java Web项目中的Event
[b](1)Servlet的事件和监听器[/b][img]http://dl2.iteye.com/upload/attachment/0125/2759/3676c175-c965-3d13-bb81-b386e72503c3.png[/img]*** Servlet、Filter、Listener 是单例的*** 通过 @WebListener 或者 web.xml 来注册...原创 2017-06-05 09:42:42 · 289 阅读 · 0 评论 -
Java命令行选项解析之Commons-CLI & Args4J & JCommander
熟悉Linux命令的都知道几乎所有程序都会提供一些命令行选项。而命令行选项有两种风格:以“-”开头的单个字符的POSIX风格;以“--”后接选项关键字的GNU风格。假定我们的程序需要以下选项:[quote]Options: -t,--text use given information(String) -b display current time(boolean) ...原创 2014-11-27 12:09:36 · 968 阅读 · 0 评论 -
关于Java SPI
SPI:Service Provider Interface自身只定义接口,通过其他jar来提供实现,从而可以实现jar包替换后即可执行,实现IoC,可用于plugins/modules。[b](1)Java Service Loader[/b][b]JDK 6开始提供java.util.ServiceLoader[/b][url=https://docs.orac...原创 2017-05-04 12:07:53 · 124 阅读 · 0 评论 -
Jackson实例入门
Jackson:Java平台的JSON解析器。[b]版本:[/b]jackson-databind-2.8.8.1.jarjackson-core-2.8.8.jarjackson-annotations-2.8.8.jar[b]1.基本[/b][color=blue]字符串和对象间的转换[/color][code="java"] private ...原创 2017-05-03 12:55:09 · 151 阅读 · 0 评论 -
Java调用Native API之JNA
Java调用C/C++的Native API一般采用JNI(Java Native Interface),但是需要编写特殊的代码,方法、数据的映射也很复杂。JNA(Java Native Access)能够是Java代码很简单的调用到Native API(.dll、.so)。类似于.NET的P/Invoke(Platform Invoke)、Python的ctypes。最初是1999年SUN公司为...原创 2014-11-10 12:09:09 · 823 阅读 · 0 评论 -
为什么https被redirect成了http?
全站HTTPS并不是配置证书CA,改改路径URL那么简单!SSL卸载(SSL Offloading):把SSL配置在负载均衡器上,然后通过其处理握手之后将decode的https数据转发给后台的Web服务器。如下构成: | |(https) | Load Balancer ...原创 2016-11-14 09:35:51 · 2115 阅读 · 0 评论 -
简化Java代码
样板代码Boilerplate Code的定义:[url=https://en.wikipedia.org/wiki/Boilerplate_code]https://en.wikipedia.org/wiki/Boilerplate_code[/url]任何开发语言都存在样板代码的问题,相比之下Java语言的样板化更高。比如可能用10行代码其他语言就能实现的功能,用Java实现需要100...原创 2016-10-09 11:25:42 · 242 阅读 · 0 评论 -
Java Web Project based on Spring
基于Spring开发Web项目的标配Library。[color=blue][b]工具[/b][/color]Spring Tool Suite [url=https://spring.io/tools/sts]https://spring.io/tools/sts[/url]Apache Maven [url=http://maven.apache.org/]http://mav...原创 2016-09-28 11:21:34 · 90 阅读 · 0 评论 -
Eclipse Scrapbook快速测试Java代码
Scrapbook是Eclipse提供的特殊功能,通过它能快速的运行一段代码。不需要写任何的 Class 和 main 方法,直接写任意Java代码即可执行测试。1)创建Scrapbook Page点击File menu > New > Other > Java > Java Run/Debug > Scrapbook Page,输入File name,选择保存位置后,会新建一个扩展名...原创 2016-09-09 15:12:13 · 274 阅读 · 0 评论 -
Java爬取 百度图片&Google图片&Bing图片
先看看抓取的结果。[b]抓关键字“美女”的百度图片:[/b][img]http://dl2.iteye.com/upload/attachment/0119/1205/e97b889b-d098-3e5b-9055-8f9809fc7732.png[/img][b]抓关键字“美女”的Google图片:[/b][img]http://dl2.iteye.com/upload/at...2016-08-04 09:54:00 · 531 阅读 · 0 评论 -
学习Java容易混淆的一概念
[size=medium][b]基础篇[/b][/size][color=blue](1)== vs equals()[/color]==是操作符(可比较primitive),equals()是方法(继承自java.lang.Object,比较对象)==比较对象在heap中的引用或内存中的位置(new一个对象会产生一个新的对象),equals()比较对象的状态和内容==行为不可复写...原创 2016-05-13 11:01:24 · 130 阅读 · 0 评论 -
Java 8 之 反编译Lambda表达式(CFR)
[url=http://www.benf.org/other/cfr/]CFR(Class File Reader)[/url] - another java decompiler,经典的[url=http://jd.benow.ca/]JD-GUI[/url]还不支持到Java 8。版本:cfr_0_78.jar (March 2014)[b]用法:[/b][quote]j...原创 2014-04-14 09:34:35 · 1197 阅读 · 0 评论 -
20年Java发展历程(1995-2015)
Java语言作为现在最流行的编程语言之一,它已经经历了整整20年的发展。虽然它[url=http://rensanning.iteye.com/blog/1843545]有很多不足[/url],虽然现在有很多的开发语言,但对于规模大、生命周期长的项目来说Java仍然是一个很好的选择。[b](0)Java由来[/b][list][*]1991年1月 Green Project启动,致力于...原创 2015-03-25 21:58:15 · 649 阅读 · 0 评论 -
Java 8 之 Optional类
在Java中,null代表一个不存在的对象,如果对它进行操作就会抛出java.lang.NullPointerException异常。[url=http://en.wikipedia.org/wiki/Null_pointer#Null_pointer]NPE(NullPointerException)[/url]是调试程序最常见的异常。google一下有很多关于方法到底应该返回null还是new...原创 2014-04-08 14:38:40 · 66 阅读 · 0 评论 -
Java执行SSH/SCP之JSch
JSch (Java Secure Channel)是纯Java的SSH2实现。可以把它集成到你的Java应用中来连接sshd服务器,执行指令(port forward, file transfer, terminal emulation)。Ant、Eclipse-CVSSSH2、NetBeans等工具都在使用它。如果你的服务部署在linux服务器中,有时你需要执行一些系统命令,这时候需要用到Ru...原创 2014-08-27 17:17:37 · 1384 阅读 · 0 评论 -
Java增强for循环中获取index
[b]前提测试数据:[/b][code="java"]String[] data = new String[]{"rensanning001", "rensanning002", "rensanning003"};List dataList = Arrays.asList(data);[/code][b]普通的For循环:[/b][code="java"]for (...原创 2014-01-13 11:02:30 · 24723 阅读 · 0 评论 -
Java单元测试之代码覆盖率-JaCoCo
代码覆盖率测试的工具,比较常用的如下:(1)开源: JaCoCo [url=http://www.eclemma.org/jacoco/]http://www.eclemma.org/jacoco/ [/url] Cobetura [url=http://cobertura.sourceforge.net/]http://cobertura.sourceforge.net/[/ur...原创 2014-01-10 15:34:00 · 1013 阅读 · 0 评论 -
Java单元测试之邮件测试-GreenMail
比较流行的Java的SMTP开源组件有:[list][*]Apache James Server [url=http://james.apache.org/]http://james.apache.org/[/url][*]JES(Java Email Server) [url=http://www.ericdaugherty.com/java/mailserver/]http://w...原创 2014-01-09 09:40:54 · 784 阅读 · 0 评论 -
使用HttpClient和iText下载slideshare上的文档
1、使用HttpClient获取页面HTML2、解析HTML获取最大页数和第一页的图像地址3、分别抓取各页的图像4、使用iText将所有页面的图像做成PDF[color=red]前提是需FQ(PacketiX VPN)[/color][code="java"] private static final String SD_URL = "http://www.slid...原创 2013-03-01 17:08:44 · 112 阅读 · 0 评论 -
Java Exe maker
[b]1、Exe4J[/b][url=http://www.ej-technologies.com/products/exe4j/overview.html]http://www.ej-technologies.com/products/exe4j/overview.html[/url][img]http://dl.iteye.com/upload/attachment/0069/5445...2012-06-14 15:53:26 · 82 阅读 · 0 评论 -
Java GUI builder
[b]1、Netbeans[/b][url=http://netbeans.org/]http://netbeans.org/[/url][img]http://dl.iteye.com/upload/attachment/0069/5250/6110eb9b-1cfb-37a8-b412-ad98971e7931.png[/img][b]2、JGoodies[/b][url=...2012-06-14 10:19:11 · 73 阅读 · 0 评论