java11新特性

转载JDK11新特性解读 - 知乎

千呼万唤,JDK11于2018-09-25正式发布GA版本(GA即General Availability,也就是官方推荐可以广泛使用的版本),其中发布了包括ZGC、Flight Recorder等17个新特性,让我们一睹为快。

一、JDK11新特性一览

  • 181: Nest-Based Access Control
  • 309: Dynamic Class-File Constants
  • 315: Improve Aarch64 Intrinsics
  • 318: Epsilon: A No-Op Garbage Collector
  • 320: Remove the Java EE and CORBA Modules
  • 321: HTTP Client (Standard)
  • 323: Local-Variable Syntax for Lambda Parameters
  • 324: Key Agreement with Curve25519 and Curve448
  • 327: Unicode 10
  • 328: Flight Recorder
  • 329: ChaCha20 and Poly1305 Cryptographic Algorithms
  • 330: Launch Single-File Source-Code Programs
  • 331: Low-Overhead Heap Profiling
  • 332: Transport Layer Security (TLS) 1.3
  • 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)
  • 335: Deprecate the Nashorn JavaScript Engine
  • 336: Deprecate the Pack200 Tools and API

二、JDK11发布计划

日期阶段说明2018/06/28Rampdown Phase One (fork from main line)对进入Rampdown阶段的变化会应用越来越严格的审查。在阶段1中,只能修复 P1-P3 错误。2018/07/26Rampdown Phase Two在阶段2中,只能修复 showstopper 错误2018/08/16Initial Release Candidate2018/08/30Final Release Candidate在此阶段必须宣布最终候选版的发布日期并提交以进行测试2018/09/25General Availability最终版本,可在生产环境正式使用

三、JDK11特性解读

JEP 181: Nest-Based Access Control(基于嵌套的访问控制)

JEP 309: Dynamic Class-File Constants(动态类文件常量)

Java的类型文件格式将被拓展,支持一种新的常量池格式:CONSTANTDynamic,加载CONSTANTDynamic会将创建委托给bootstrap方法。

目标

其目标是降低开发新形式的可实现类文件约束带来的成本和干扰。

JEP 315: Improve Aarch64 Intrinsics(改进 Aarch64 函数)

JEP 318: Epsilon: A No-Op Garbage Collector(Epsilon — 一个无操作的垃圾收集器)

JDK上对这个特性的描述是:开发一个处理内存分配但不实现任何实际内存回收机制的GC,一旦可用堆内存用完,JVM就会退出。

如果有System.gc()的调用,实际上什么也不会发生(这种场景下和-XX:+DisableExplicitGC效果一样),因为没有内存回收,这个实现可能会警告用户尝试强制GC是徒劳。

用法非常简单:

-XX:+UseEpsilonGC。

动机

提供完全被动的GC实现,具有有限的分配限制和尽可能低的延迟开销,但代价是内存占用和内存吞吐量。

众所周知,Java实现可广泛选择高度可配置的GC实现。 各种可用的收集器最终满足不同的需求,即使它们的可配置性使它们的功能相交。 有时更容易维护单独的实现,而不是在现有GC实现上堆积另一个配置选项。

它的主要用途如下:

  • 性能测试(它可以帮助过滤掉GC引起的性能假象);
  • 内存压力测试(例如,知道测试用例应该分配不超过1 GB的内存,我们可以使用-Xmx1g配置-XX:+UseEpsilonGC,如果违反了该约束,则会heap dump并崩溃);
  • 非常短的JOB任务(对于这种任务,接受GC清理堆那都是浪费空间);
  • VM接口测试;
  • Last-drop 延迟&吞吐改进;

JEP 320: Remove the Java EE and CORBA Modules(删除 Java EE 和 CORBA 模块)

Java EE和CORBA两个模块在JDK9中已经标记"deprecated",在JDK11中正式移除。JDK中deprecated的意思是在不建议使用,在未来的release版本会被删除。

动机

JavaEE由4部分组成:

  • JAX-WS (Java API for XML-Based Web Services),
  • JAXB (Java Architecture for XML Binding)
  • JAF (the JavaBeans Activation Framework)
  • Common Annotations.

但是这个特性和JavaSE关系不大。并且JavaEE被维护在Github(https://github.com/javaee)中,版本同步造成维护困难。最后,JavaEE可以单独引用,maven中心仓库也提供了JavaEE(http://mvnrepository.com/artifact/javax/javaee-api/8.0),所以没必要把JavaEE包含到JavaSE中。

至于CORBA,使用Java中的CORBA开发程序没有太大的兴趣。因此,在JavaEE就把CORBA标记为"Proposed Optional",这就表明将来可能会放弃对这些技术的必要支持。

JEP 321: HTTP Client (Standard)(标准HTTP客户端)

将JDK9引进并孵化的HTTP客户端API作为标准,即HTTP/2 Client。它定义了一个全新的实现了HTTP/2和WebSocket的HTTP客户端API,并且可以取代HttpURLConnection。 动机

已经存在的HttpURLConnection有如下问题:

  • 在设计时考虑了多种协议,但是现在几乎所有协议现已不存在。
  • API早于HTTP/1.1并且太抽象;
  • 使用很不友好;
  • 只能以阻塞模式工作;
  • 非常难维护;

JEP 323: Local-Variable Syntax for Lambda Parameters(用于 Lambda 参数的局部变量语法)

在声明隐式类型的lambda表达式的形参时允许使用var。

动机

lamdba表达式可能是隐式类型的,它形参的所有类型全部靠推到出来的。隐式类型lambda表达式如下:

(x, y) -> x.process(y)

Java SE 10让隐式类型变量可用于本地变量:

var foo = new Foo(); 
for (var foo : foos) { ... } 
try (var foo = ...) { ... } catch ...

为了和本地变量保持一致,我们希望允许var作为隐式类型lambda表达式的形参:

(var x, var y) -> x.process(y)

统一格式的一个好处就是modifiers和notably注解能被加在本地变量和lambda表达式的形参上,并且不会丢失简洁性:

@Nonnull var x = new Foo(); 
(@Nonnull var x, @Nullable var y) -> x.process(y)

JEP 324: Key Agreement with Curve25519 and Curve448(Curve25519 和 Curve448 算法的密钥协议)

用RFC 7748中描述到的 Curve25519 和Curve448 实现秘钥协议。RFC 7748定义的秘钥协商方案更高效,更安全。这个JEP的主要目标就是为这个标准定义API和实现。

动机

密码学要求使用 Curve25519 和Curve448 是因为它们的安全性和性能。JDK会增加两个新的接口XECPublicKey 和 XECPrivateKey,示例代码如下:

KeyPairGenerator kpg = KeyPairGenerator.getInstance("XDH");
NamedParameterSpec paramSpec = new NamedParameterSpec("X25519"); 
kpg.initialize(paramSpec); 
// equivalent to kpg.initialize(255) 
// alternatively: kpg = KeyPairGenerator.getInstance("X25519") 
KeyPair kp = kpg.generateKeyPair();  

KeyFactory kf = KeyFactory.getInstance("XDH"); 
BigInteger u = ... XECPublicKeySpec 
pubSpec = new XECPublicKeySpec(paramSpec, u); 
PublicKey pubKey = kf.generatePublic(pubSpec);  

KeyAgreement ka = KeyAgreement.getInstance("XDH"); 
ka.init(kp.getPrivate()); 
ka.doPhase(pubKey, true); 
byte[] secret = ka.generateSecret();

JEP 327: Unicode 10

更新平台API支持Unicode 10.0版本(Unicode 10.0概述:Unicode 10.0 增加了8518 个字符, 总计达到了136,690个字符. 并且增加了4个脚本, 总结139个脚本, 同时还有56个新的emoji表情符号。参考:http://unicode.org/versions/Unicode10.0.0/)。

动机

Unicode是一个不断进化的工业标准,因此必须不断保持Java和Unicode最新版本同步。

JEP 328: Flight Recorder(飞行记录器)

提供一个低开销的,为了排错Java应用问题,以及JVM问题的数据收集框架,希望达到的目标如下:

  • 提供用于生产和消费数据作为事件的API;
  • 提供缓存机制和二进制数据格式;
  • 允许事件配置和事件过滤;
  • 提供OS,JVM和JDK库的事件;

动机

排错,监控,性能分析是整个开发生命周期必不可少的一部分,但是某些问题只会在大量真实数据压力下才会发生在生产环境。

Flight Recorder记录源自应用程序,JVM和OS的事件。 事件存储在一个文件中,该文件可以附加到错误报告中并由支持工程师进行检查,允许事后分析导致问题的时期内的问题。工具可以使用API从记录文件中提取信息。

JEP 329: ChaCha20 and Poly1305 Cryptographic Algorithms(ChaCha20 和 Poly1305 加密算法)

实现RFC 7539中指定的 ChaCha20 和 ChaCha20-Poly1305 两种加密算法。

动机

唯一一个其他广泛采用的RC4长期以来一直被认为是不安全的,业界一致认为当下ChaCha20-Poly1305是安全的。

JEP 330: Launch Single-File Source-Code Programs(启动单一文件的源代码程序)

增强Java启动器支持运行单个Java源代码文件的程序。

动机

单文件程序是指整个程序只有一个源码文件,通常是早期学习Java阶段,或者写一个小型工具类。以HelloWorld.java为例,运行它之前需要先编译。我们希望Java启动器能直接运行这个源码级的程序:

java HelloWorld.java

等价于:

javac -d <memory> HelloWorld.java 
java -cp <memory> helloWorld 
java Factorial.java 3 4 5

等价于:

javac -d <memory> Factorial.java 
java -cp <memory> Factorial 3 4 5

到JDK10为止,Java启动器能以三种方式运行:

  1. 启动一个class文件;
  2. 启动一个JAR中的main方法类;
  3. 启动一个模块中的main方法类;

JDK11再加一个,即第四种方式:启动一个源文件申明的类。

JEP 331: Low-Overhead Heap Profiling(低开销的 Heap Profiling)

提供一种低开销的Java堆分配采样方法,得到堆分配的Java对象信息,可通过JVMTI访问。希望达到的目标如下:

  • 足够低的开销,可以默认且一直开启;
  • 能通过定义好的程序接口访问;
  • 能采样所有分配;
  • 能给出生存和死亡的Java对象信息; 动机

对用户来说,了解它们堆里的内存是很重要的需求。目前有一些已经开发的工具,允许用户窥探它们的堆,比如:Java Flight Recorder, jmap, YourKit, 以及VisualVM tools.。但是这工具都有一个很大的缺点:无法得到对象的分配位置。headp dump以及heap histo都没有这个信息,但是这个信息对于调试内存问题至关重要。因为它能告诉开发者,他们的代码发生(尤其是坏的)分配的确切位置。

JEP 332: Transport Layer Security (TLS) 1.3(支持 TLS 1.3)

实现TLS协议1.3版本。(TLS允许客户端和服务端通过互联网以一种防止窃听,篡改以及消息伪造的方式进行通信)。

动机

TLS 1.3是TLS协议的重大改进,与以前的版本相比,它提供了显着的安全性和性能改进。其他供应商的几个早期实现已经可用。我们需要支持TLS 1.3以保持竞争力并与最新标准保持同步。这个特性的实现动机和Unicode 10一样,也是紧跟历史潮流。

JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (可伸缩低延迟垃圾收集器)

ZGC:这应该是JDK11最为瞩目的特性,没有之一。但是后面带了Experimental,说明还不建议用到生产环境。看看官方对这个特性的目标描述:

  • GC暂停时间不会超过10ms;
  • 即能处理几百兆小堆,也能处理几个T的大堆(OMG);
  • 和G1相比,应用吞吐能力不会下降超过15%;
  • 为未来的GC功能和利用colord指针以及Load barriers优化奠定基础;
  • 初始只支持64位系统;

动机

GC是Java主要优势之一。然而,当GC停顿太长,就会开始影响应用的响应时间。消除或者减少GC停顿时长,Java将对更广泛的应用场景是一个更有吸引力的平台。此外,现代系统中可用内存不断增长, 用户和程序员希望JVM能够以高效的方式充分利用这些内存,并且无需长时间的GC暂停时间。 ZGC一个并发,基于region,压缩型的垃圾收集器,只有root扫描阶段会STW,因此GC停顿时间不会随着堆的增长和存活对象的增长而变长。 ZGC和G1停顿时间比较:

ZGC                 
                 avg: 1.091ms (+/-0.215ms)     
     95th percentile: 1.380ms     
     99th percentile: 1.512ms   
   99.9th percentile: 1.663ms  
  99.99th percentile: 1.681ms                 
                 max: 1.681ms  

G1                 
                 avg: 156.806ms (+/-71.126ms)
     95th percentile: 316.672ms
     99th percentile: 428.095ms
   99.9th percentile: 543.846ms
  99.99th percentile: 543.846ms
                 max: 543.846ms

用法:

-XX:+UnlockExperimentalVMOptions -XX:+UseZGC

因为ZGC还处于实验阶段,所以需要通过JVM参数UnlockExperimentalVMOptions 来解锁这个特性。

JEP 335: Deprecate the Nashorn JavaScript Engine(弃用 Nashorn JavaScript 引擎)

JEP 336: Deprecate the Pack200 Tools and API(弃用 Pack200 工具和 API)

Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet.Applet 简单实现!~ 网页表格组件 GWT Advanced Table GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的定义 4. 使用redis作缓存时,支持list类型的高级数据结构,更适合论坛帖子列表这种类型的数据 5. 支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端 JOpenID JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用。 Java转C++代码工具 J2C J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java 穿越NAT方案 JSTUN.tar JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权 的标准。 Java的命令行处理类库 JArgs JArgs 是一个 Java 语言用来处理应用程序的命令行参数的类库。 高性能内存消息和事件驱动库 Chronicle Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 SpeechLion.tar SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来控制 Linux 桌面,例如打开google搜索、鼠标点击、下一窗口、打开帮助、静音等操作。 Java发送短信包 LemonSMS LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ( ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码图片。 Java 命令行解析器 JOpt Simple JOpt Simple 是一个简单的、测试驱动的命令行解析器,支持 POSIX getopt() 和 GNU getopt_long() Java的HTTP代理服务器 Smart Cache Smart Cache 是一个采用 Java 开发的 HTTP/1.1代理服务器,也可以用来作为Web的缓存系统。 高性能的JSON处理 Jackson Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC框架 nfs-rpc nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。 其支持的功能主要为: 1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的插件,用来对 HTML 文件内容进行清洗和格式化处理。它采用的是 JTidy 库对HTML进行处理。 INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。 Java的命令行进度条 JCmdLineProgess JCmdLineProgess 是一个 Java 类库,用来提供在命令行中显示进度条的功能。 Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司的开源项目。 SwingSet 增强现实标记跟踪软件库 AccuTag AccuTag是AR(增强现实)标记跟踪软件库。它利用GPGPU的快速和精确跟踪。 条形码扫描和识别程序 LVBarcode LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。 异步HTTP客户端开发包 HttpAsyncClient HttpAsyncClient 是一个异步的 HTTP 客户端开发包,基于 HttpCore NIO 和 HttpClient 组件。HttpAsyncClient 的出现并不是为了替换 HttpClient,而是作为一个补充用于需要大量并发连接,对性能要求非常高的基于HTTP的原生数据通信,而且提供了事件驱动的 API。 NIO网络框架 xSocket xSocket是一个轻量级的基于nio的服务器框架用于开发高性能、可扩展、多线程的服务器。该框架封装了线程处理、异步读/写等方面。 Java多线程程序死锁检查 JCarder JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用javaJava批量作业执行框架 MyBatchFramework MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,无缝集成的IDE(语法着色,代码导航,重构等)的语法和操作代码完全分离。最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信(MMS)的开发包,支持附件发送。 Oracle数据库工具 WARTS WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以让 Java 程序轻松访问 Windows 平台上的 COM 组件。 JARP JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq(JMS消息服务器 ActiveMQ) ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。 Ajax框架 ZK.rar ZK是一个Ajax Java Web框架,利用少量代码就能够开发出拥有Rich UI的Web应用。ZK提供基于XUL的标记语言和事件驱动的组件,可以让你像开发桌面应用程序一样简单。支持EL表达式和脚本语言包括:JavaScript、Ruby和Groovy等。支持Annotation及数据绑定。集成Google Maps、FCKeditor、DOJO以及Timeline。 Atom协议实现 Abdera.rar Apache Abdera是Atom联合协议(Atom Syndication)和Atom发布(Atom Publication)协议的开源实现,目前尚处于“孵化”阶段。最近,Abdera到达了0.40里程碑版,朝着成功孵化迈出了重要一步。 CKEditor for Java.rar 在线网页编辑插件(用浏览器编辑后所见即所得),支持多种平台下的脚本(asp aspx php cfm Dhtml htc),还集成了上传图片组件,含简、繁中文 cloudxy(弹性云计算平台 Cloudxy).rar Cloudxy 立足于实现虚拟子网(以太网)的弹性云计算平台 该项目主要包含有两个子项目: HLFS - 虚拟机分布式镜像存储 (类似于亚马逊EBS,首先发布出来) ECM - 虚拟环境管理系统 (后续发布) Compass UI 工具 Compass.app.rar Compass.app 是一个针对 Sass 和 Compass 的菜单工具,帮助设计师通过 UI 的方式编译样式,而不用去记住命令行。它是用 JRuby 开发的,可以在多个平台上使用,而不用安装 Ruby 环境。 dnsjava(Java的DNS开发包 dnsjava).rar dnsjava是DNS协议的一个Java开源实现。 DNS服务器 Eagle DNS.zip Eagle DNS 是一个用 Java 语言开发的功能强大的多线程的平台无关的DNS服务器,基于 dnsjava 类库,支持 Primary Zones 和 Secondary Zones。 EclipseHTMLEditor.rar Eclipse HTML编辑器插件 Eclipse的语法着色插件 Colorer Take.rar Colorer Take 能为在Eclipse中打开的各种类型源代码文件按语法着色。支持150多种语言。 ehcache(Java缓存框架 EhCache).rar EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 Facebook API 的 Java 封装请求处理组件 RestFB.zip facebook的restAPI和graphAPI封装,供java调用。 Facebook个人资料导出工具 fbpwn.zip fbpwn(Facebook个人资料导出工具).rar Google API for Java.zip grimwepa(无线密码破解工具).rar 一个密码破解WEP和WPA加密的接入点(路由器) gtd-free(个人待办事项管理软件 GTD-Free).rar GUI界面引擎 SwiXml.zip Hibernate搜索框架 Hibernate Search.zip HTML5模板引擎 Thymeleaf.zip HTML文档解析器 HTMLParser.rar HTML解析器 jsoup.rar iqq(开源 QQ 工具 iQQ).rar jacob-liang-platform-uus(系统平台统一用户 ).rar jalarm(个人提醒工具 jAlarm).rar Java 3D图形引擎 Catcake.zip Java HTTP服务器 TJWS.zip Java 插件框架 jspf.zip Java 缓存系统 JBossCache.zip Java 计算机视觉库 BoofCV.zip Java-COM中间件 JACOB.zip Javascript 扩展工具包 j-et.rar Java串口开发包 RXTX.zip Java五线谱处理类库 abc4j.zip Java任务调度 jconch.rar Java加密包 Jasypt.zip Jasypt这个Java类包为开发人员提供一种简单的方式来为项目增加加密功能,包括:密码Digest认证,文本和对象加密,集成hibernate,Spring Security(Acegi)来增强密码管理。 Java加密库 JSDSI.rar Java单点登录系统 JA-SIG CAS.rar Java即时战略游戏 StarCraft Ⅰ.rar Java和DLL(COM)互操作 Jawin.zip Java图像处理类库 Java Image Filters.zip Java图形组件 JGraph.rar Java图形验证码 SimpleCaptcha.rar 一套用于生成各种图形验证码的库(Java) Java图表 JFreeChart.zip Java多播通讯框架 JGroups.zip JGroups是一个可靠的群组通讯Java工具包。它基于IP组播(IP multicast),但在可靠性,组成员管理上对它作了扩展。 JAVA字节码操作库 BCEL.zip Java实现的EverBox库 Everbox4j.zip Java实现的Web服务安全规范 WSS4J.zip Java对象验证框架 OVal.zip Java常用工具包 Jodd.zip Java应用服务器 Tomcat.zip Java应用框架 Nutz.rar Java开发的SHELL CRaSH.gz Java推箱子游戏 JSoko.rar Java搜索引擎 Lucene.zip Java时间工具包 JTimepiece.zip Java本地代码绑定工具 jSegue.zip Java本地调用接口 JNative.zip Java条形码生成库 Barcode4J.zip Barcode4J由Java语言编写而成,可以灵活的生成条形码。它采用Apache License V2.0许可,这使得它很容易在商业中被使用。它可以让您生成各种流行的一维和二维条码,包括DataMatrix 和 PDF417。以各种格式输出,包括SVG, EPS, bitmaps和Java2D,同样也可根据您的需要添加自己的输出格式。它为各种应用提供了插件,包括最重要的Apache FOP(格式对象处理器)。有一些用户将Barcode4J部署为一个servlet。 Java桌面搜索 JDesktopSearch.zip JDesktopSearch是一个基于Apache Lucene实现的桌面搜索引擎。它能够索引HTML、XML、OpenOffice、MS Word和PDF文档。其它类型的文件只索引文件名。 Java桌面程序开发框架 Viewa.zip Java模板引擎 FreeMarker.tar.gz Java源代码检索系统 JCite.zip Java的EPUB类库 Epublib.zip Java的HL7解析器 HAPI.zip Java的OpenID服务器 JOIDS.rar Java的UIMA注解类 uimaFIT.zip Java的UI皮肤 Quaqua.zip Java神经网络框架 Encog for Java.zip Java程序监控API Java Simon.zip Java算术表达式计算类库 ExpressionJ.zip Java线程错误捕获工具 CheckThread.zip Java网页浏览器 Lobo.zip Java网页爬虫 JSpider.zip Java视觉处理库 JavaCV.rar Java论坛系统 JForum.zip Java调用本地库 JNAerator.zip Java远程终端工具 JTA.rar Java邮件服务器 James.rar Java邮件检验库 JEmval.zip Java验证码生成库 JCaptcha.rar JAXP数据验证引擎 Serene.zip JBoss事务处理 JBossTS.zip JDBC连接池、监控组件 Druid.zip JFCSwing用户图形界面 SwingML.rar JNI代码生成器 JNIGen.zip JSCSS压缩工具 YUI Compressor.zip JSON查询语言 Jaql.rar JSON类库 Flexjson.zip JSP标签 Noka Tag.rar JS和CSS压缩混淆 JsCompressor.rar js文件压缩工具 Closure Compiler.rar jviolajones(人脸检测算法).rar lobby(经典board游戏 Domination).rar makagiga(开源个人桌面软件 Makagiga).rar MathML渲染器 JEuclid.rar OData的Java实现 odata4j.rar P2P应用程序协议框架 Java BEEP Core.zip paoding(中文分词库 Paoding).rar PDF 文档字体处理 FontBox.zip QQ农场外挂JAVA版本 qqhack.rar QQ登录的Java接口 open-qq.zip ralasafe(访问控制(权限管理)中间件 ).rar RPG游戏引擎 Arianne.zip SAT算法库 OpenSAT.zip sigar_mirror(系统信息收集API_Sigar).rar SNMP的MIB浏览器 JMIBBrowser.zip SQL解析类库 SQLJEP.zip SSH服务端 Apache SSHD.rar swiftp(Android上的FTP服务器 SwiFTP).rar swing-explorer(Swing开发辅助工具).rar Swing开发框架 Griffon.zip tbschedule(淘宝任务调度分配器).rar Tomcat的管理和监控 PSI Probe.zip WebDAV网关 Davenport.rar WebSocket通讯框架 jWebSocket.rar Web代理服务器 RabbIT.tar.gz Web服务框架 Apache Axis.rar Web相册平台 Apache PhotArk.rar Web集成开发环境 Cloud9 IDE.zip WordNet的Java包 JWordNet.zip XML解析器 Xerces.rar Yahoo的分布式流计算平台 S4.rar YAML解析器 SnakeYAML.zip zaproxy(Web渗透测试 Zed Attack Proxy).rar zxing(条形码处理类库).rar 业务流程管理(BPM)和工作流系统 Activiti.zip 个人博客软件 PersonalBlog.zip 个人知识库 Piggydb.zip 中国移动短信协议CMPP封装 hicmpp.zip 中文分词工具包 smallseg.jar 中文分词库 IKAnalyzer.zip 中文自然语言处理工具包 FudanNLP.zip 人工智能工具包 OpenAI.zip 企业信息系统开发平台 JBob.zip 使用Redis存放Session RedisManager.zip 入门级j2ee开源项目 simplejee.zip 全文搜索服务器 Solr.tgz 分布式缓存框架 SwarmCache.zip 加密库 BeeCrypt.zip 即时消息传输平台 Openfire.rar 国产Ajax框架 Buffalo.rar 国产纯Java多核体系结构模拟器 Archimulator.zip 在Java中运行Perl脚本 JERL.zip 坦克机器人战斗仿真引擎 Robocode.zip 多播事件总线 Avis.zip 多环境应用程序框架 WebOnSwing.rar 多用户在线游戏服务器端框架 Marauroa.tar.gz 大文件上传的Java Applet mupload.rar 天乙社区.rar 密钥管理工具 Keytool-IUI.zip 富客户端开发框架 Spring Richclient.tar.gz 开放实时数据处理平台 Twitter Storm.zip 开源JSF组件库 JQuery4JSF.rar 开源LDAP浏览器 JXplorer.zip 开源事务管理器 JOTM.zip 开源工作流系统 JWFD.rar 开源搜索系统 Red-Piranha.zip 开源日志管理 Logstash.jar 开源机器人技术中间件 OpenRTM-aist.zip 开源的Swing组件 JIDE.zip 开源足球游戏 Slam Soccer.rar 异步IO框架 Cindy.rar 懒惰者代码生成器 IdlerCodeGenerator.zip 拼写检查器 Hunspell.gz 指纹识别开发包 SourceAFIS.zip 数字图书制作工具 EpubCheck.rar 数据库连接池 C3P0.src.zip 数据持久层框架 Hibernate.zip 文件上传控件 GWTUpload.rar 文件压缩解压缩包 Commons Compress.rar 文件系统API EntityFS.zip 文字识别工具 Eye.zip 文本加密解密工具 ImmediateCrypt.zip 无线消息交换服务 HomerMX.zip 日历同步统计 GCALDaemon.zip 日历控件 Click Calendar.rar 最快速的java代码生成器 rapid-generator.zip 服务框架 Dubbo.rar 服务端JavaScript框架 RingoJS.rar 桌面博客工具 Thingamablog.zip 桌面图形计算器 GraphingCalculator.jar 桌面软件开发框架 joyWindow.zip 游戏引擎 JBox2D.zip 源问答系统 OpenEphyra.zip 漏洞检测程序 Yasca.zip 用户界面框架 XUI.rar 短信收发包 SMSLib.zip 磁盘的KV存储 JDBM2.rar 程序代码编辑器 jEdit.tar.bz2 第三代的P2P网络 ANts 简约的微博同步程序.zip 编程脚本引擎 Fantom.zip 网络应用框架 Netty.tar.bz2 网络抓包工具 jpcap.zip 网络数据包捕获函数库 jNetPcap.zip 网页抽取工具 Krabber.rar 联系人导出 ContactList.zip 表达式解释引擎 JSEL.rar 语音合成系统 FreeTTS.rar 调用远程API规范 XINS.zip 豆瓣OAuth认证示例项目.rar 跨平台的文件同步工具 Capivara.rar 远程文件传输工具 MammothCopy.tar.gz 通用数据底层 Jsa4j.zip 遗传算法包 JGAP.zip 重复数据删除 Duke.zip 面向对象的JavaScript框架 Dojo.rar 面向对象的脚本语言 ObjectScript.tar.gz 高性能Java网络框架 MINA.zip 高性能web代理程序 hyk-proxy.rar 高性能的Java 3D引擎 Xith3D.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值