jdk7动态语言支持,java是到底是不是动态语言?
最近看objectc,它是动态语言,http://en.wikipedia.org/wiki/Objective-C#Dynamic_typing
又这篇文章看到jdk7中jvm对动态语言的支持http://www.oracle.com/technetwork/issue-archive/2010/10-may/o30java-099612.html
中文翻译
http://developer.51cto.com/art/200907/139414.htm
这篇文章明确指出java是静态语言(编译时类型检查),但是jdk7支持了JSR292,所以jvm支持动态语言。以前的jruby和jpython实现在jvm上都比较吃力,现在由于JSR292就方便多了。
但是动态语言的定义我还比较模糊,像javascript通过eval可以执行代码,类型可以运行时定义,这个无可厚非是动态类型语言。然而object c的动态从文档上看主要是运行时决定对象类型(消息调用机制),并不能运行时定义类型吧。但它就是动态语言(运行时类型检查)。
总之java是静态语言。