有趣的java代码 java优雅代码( 八 )


JSoup:刮取、解析、操作和清理HTML 。
Web框架
用于处理Web应用程序不同层次间通讯的框架 。
Apache Tapestry:基于组件的框架,使用Java创建动态、强健的、高度可扩展的Web应用程序 。
Apache Wicket:基于组件的Web应用框架,与Tapestry类似带有状态显示GUI 。
Google Web Toolkit:一组Web开发工具集,包含在客户端将Java代码转为JavaScript的编译器、XML解析器、RCP API、JUnit集成、国际化支持和GUI控件 。
Grails:Groovy框架,旨在提供一个高效开发环境,使用约定而非配置、没有XML并支持混入(mixin) 。
Ninja:Java全栈Web开发框架 。非常稳固、快速和高效 。
Pippo:小型、高度模块化的类Sinatra框架 。
Play:使用约定而非配置,支持代码热加载并在浏览器中显示错误 。
PrimeFaces:JSF框架,提供免费和带支持的商业版本 。包括若干前端组件 。
Ratpack:一组Java开发函数库,用于构建快速、高效、可扩展且测试完备的HTTP应用程序 。
Spring Boot:微框架,简化了Spring新程序的开发过程 。
Spring:旨在简化Java EE的开发过程,提供依赖注入相关组件并支持面向切面编程 。
Vaadin:基于GWT构建的事件驱动框架 。使用服务端架构,客户端使用Ajax 。
Blade:国人开发的一个轻量级的MVC框架. 它拥有简洁的代码,优雅的设计 。
业务流程管理套件
流程驱动的软件系统构建 。
jBPM:非常灵活的业务流程管理框架 , 致力于构建开发与业务分析人员之间的桥梁 。
Activity:轻量级工作流和业务流程管理框架 。 github
资源
社区
用Java可以做哪些有趣的事情?像Industrial Light and Magic这样的公司,就依赖Java来满足各种编程需求 。事实上,你经常可以在ILM上发现几乎任何有开发需要的工作 。在ILM工作有意思的地方在于 , 你可以把应用程序一起放到在大屏幕上查看结果 。目前,ILM使用Java和Python来处理诸如测序动画场景等任务 。
Java中的虚拟方法virtual method是什么含义Java方法调用的虚分派
JUN 2ND, 2013 | COMMENTS
本文通过介绍 Java 方法调用的虚分派,来加深对 Java 多态实现的理解 。需要预先理解 Java 字节码和 JVM 的基本框架 。
虚分配(Virtual Dispatch)
首先从字节码中对方法的调用说起 。Java 的 bytecode 中方法的调用实现分为四种指令:
1.invokevirtual 为最常见的情况,包含 virtual dispatch 机制;
2.invokespecial 是作为对 private 和构造方法的调用,绕过了 virtual dispatch;
3.invokeinterface 的实现跟 invokevirtual 类似 。
4.invokestatic 是对静态方法的调用 。
其中最复杂的要属 invokevirtual 指令,它涉及到了多态的特性,使用 virtual dispatch 做方法调用 。
virtual dispatch 机制会首先从 receiver(被调用方法的对象)的类的实现中查找对应的方法 , 如果没找到,则去父类查找,直到找到函数并实现调用 , 而不是依赖于引用的类型 。
下面是一段有趣的代码 。反映了 virtual dispatch 机制 和 一般的 field 访问的不同 。
public class Greeting {
String intro = "Hello";
String target(){
return "world";
}
}
public class FrenchGreeting extends Greeting {
String intro = "Bonjour";
String target(){
return "le monde";
}
public static void main(String[] args){
Greeting english = new Greeting();
Greeting french = new FrenchGreeting();
System.out.println(english.intro + "," + english.target());

推荐阅读