- 浏览: 3056727 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
在读Steve Yegg的blog上Rhinos and Tigers的时候读到这么一页演示稿:
以前一直没这么试过,觉得很兴奋,马上打开Rhino 1.7R1的命令行交互解释器来试了下,果然可以
这种object literal语法是JavaScript里让我兴奋的几种语法结构之一:
让需要某种类型但该类型只会被使用一次,定义一个类太浪费了。用object literal定义一个匿名类型就不错。当然JavaScript里的这个object literal算不上定义了匿名类型——感觉上只是声明了一个hashtable而已。
Steve Yegg的那个演讲还有不少有趣的地方:VM与语言互操作、Scala的类型系统等。得慢慢把其中的信息吸收过来。不过既然是rant,里面的内容就不能全信了……那个帖得连回复一起读。
P.S. 上面代码里我先写了这两行:
声明了两个变量分别代表Thread类与Runnable接口。因为Rhino不会自动引入java.lang包,所以不这么做的话每次使用这些类和接口都要写完整的包名+类名了,我嫌麻烦所以用变量来简化。
当年正好看到了顺便记下来而已…
以前一直没这么试过,觉得很兴奋,马上打开Rhino 1.7R1的命令行交互解释器来试了下,果然可以
Rhino 1.7 release 1 2008 03 06 js> Thread = java.lang.Thread [JavaClass java.lang.Thread] js> Runnable = java.lang.Runnable [JavaClass java.lang.Runnable] js> var thread = new Thread(new Runnable() { > run: function() { print('hello!') } > }) js> thread.start() hello! js> var obj1 = { > run: function() { print('hi') } > } js> new Thread(new Runnable(obj1)).start() hi js> var obj2 = { speak: function() { print('Rhino rocks!') }} js> obj2.run = function() { this.speak() } js> var foo = new JavaAdapter(Thread, obj2) js> foo.start() Rhino rocks!
这种object literal语法是JavaScript里让我兴奋的几种语法结构之一:
var obj1 = { run: function() { print('hi') }}
让需要某种类型但该类型只会被使用一次,定义一个类太浪费了。用object literal定义一个匿名类型就不错。当然JavaScript里的这个object literal算不上定义了匿名类型——感觉上只是声明了一个hashtable而已。
Steve Yegg的那个演讲还有不少有趣的地方:VM与语言互操作、Scala的类型系统等。得慢慢把其中的信息吸收过来。不过既然是rant,里面的内容就不能全信了……那个帖得连回复一起读。
P.S. 上面代码里我先写了这两行:
Thread = java.lang.Thread Runnable = java.lang.Runnable
声明了两个变量分别代表Thread类与Runnable接口。因为Rhino不会自动引入java.lang包,所以不这么做的话每次使用这些类和接口都要写完整的包名+类名了,我嫌麻烦所以用变量来简化。
评论
4 楼
RednaxelaFX
2012-02-13
dlewis 写道
我去,这点代码还值得要别人的,直接看官方文档啊,简单的接口实现。
当年正好看到了顺便记下来而已…
3 楼
dlewis
2012-02-13
我去,这点代码还值得要别人的,直接看官方文档啊,简单的接口实现。
2 楼
poweryoung
2008-06-18
同上无法建立连接的飘过...
1 楼
jhpx
2008-06-17
神啊,你还活着的话快点把代码写完扔我吧……
无论短信、手机、QQ都无反应,只能这里留言了……
无论短信、手机、QQ都无反应,只能这里留言了……
发表评论
-
The Prehistory of Java, HotSpot and Train
2014-06-02 08:18 0http://cs.gmu.edu/cne/itcore/vi ... -
MSJVM and Sun 1.0.x/1.1.x
2014-05-20 18:50 0当年的survey paper: http://www.sym ... -
Sun JDK1.4.2_28有TieredCompilation
2014-05-12 08:48 0原来以前Sun的JDK 1.4.2 update 28就已经有 ... -
IBM JVM notes (2014 ver)
2014-05-11 07:16 0Sovereign JIT http://publib.bou ... -
class data sharing by Apple
2014-03-28 05:17 0class data sharing is implement ... -
Java 8与静态工具类
2014-03-19 08:43 16316以前要在Java里实现所谓“静态工具类”(static uti ... -
Java 8的default method与method resolution
2014-03-19 02:23 10483先看看下面这个代码例子, interface IFoo { ... -
HotSpot Server VM与Server Class Machine
2014-02-18 13:21 0HotSpot VM历来有Client VM与Server V ... -
Java 8的lambda表达式在OpenJDK8中的实现
2014-02-04 12:08 0三月份JDK8就要发布首发了,现在JDK8 release c ... -
GC stack map与deopt stack map的异同
2014-01-08 09:56 0两者之间不并存在包含关系。它们有交集,但也各自有特别的地方。 ... -
HotSpot Server Compiler与data-flow analysis
2014-01-07 17:41 0http://en.wikipedia.org/wiki/Da ... -
字符串的一般封装方式的内存布局 (1): 元数据与字符串内容,整体还是分离?
2013-11-07 17:44 22420(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局
2013-11-01 12:55 0(Disclaimer:未经许可请 ... -
关于string,内存布局,C++ std::string,CoW
2013-10-30 20:45 0(Disclaimer:未经许可请 ... -
对C语义的for循环的基本代码生成模式
2013-10-19 23:12 21891之前有同学在做龙书(第二版)题目,做到8.4的练习,跟我对答案 ... -
Function.prototype.bind
2013-09-24 18:07 0polyfill http://stackoverflow. ... -
Java的instanceof是如何实现的
2013-09-22 16:57 0Java语言规范,Java SE 7版 http://docs ... -
oop、klass、handle的关系
2013-07-30 17:34 0oopDesc及其子类的实例 oop : oopDesc* ... -
Nashorn各种笔记
2013-07-15 17:03 0http://bits.netbeans.org/netbea ... -
《深入理解Java虚拟机(第二版)》书评
2013-07-08 19:19 0值得推荐的中文Java虚拟机入门书 感谢作者赠与的样书,以下 ...
相关推荐
rhino-1.7.7.2是较新的版本,是一种用Java编写的Javascript解释器
Rhino的jar包。 Rhino 是开源的 JavaScript 引擎,是完全基于 Java 实现,几乎可以使用 JavaScript 完成 Java 所有的工作。
java运行依赖jar包
Rhino 是一种使用 Java 语言编写的 JavaScript 的开源实现,原先由Mozilla开发,现在被集成进入JDK 6.0。与其他很多语言一样,Rhino 是一种动态类型的、基于对象的脚本语言,它可以简单地访问各种 Java 类库。Rhino ...
Android 中不在用webview的情况下 执行js代码并得到返回值
Rhino 是开源的 JavaScript 引擎,是完全基于 Java 实现,几乎可以使用 JavaScript 完成 Java 所有的工作。 官网网址:https://developer.mozilla.org/zh-CN/docs/Mozilla/Projects/Rhino/Download_Rhino
1. **Rhino引擎介绍**:Rhino是JavaScript在Java平台上的实现,它的设计目标是提供一个快速、灵活且易于集成的JavaScript解析器。Rhino不仅支持ECMAScript标准,还提供了一些Java特有的功能,如访问Java对象和类库。...
Rhino是Mozilla基金会开发的一个开源项目,它完全用Java编写,因此可以无缝集成到Java环境中。 Rhino的核心是ECMAScript的实现,这是一种标准化的脚本语言,JavaScript就是基于此标准的一种方言。ECMAScript提供了...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
Rhino 1.7R4还支持插件扩展,如Grasshopper,这是一个图形化编程工具,允许用户通过拖拽节点来创建算法,实现复杂的几何形态生成,这对于参数化设计尤其有用。此外,Rhino与其他软件的兼容性也是其亮点,它可以导入...
1. **设计目标**:Rhino的主要设计目标是提供一个高效的JavaScript解释器,能够在Java平台上运行JavaScript代码,并且与Java环境无缝集成,实现跨平台的脚本编程。 2. **JS引擎结构**:Rhino引擎主要包括以下几个...
rhino1_7R2.zip Mozilla Scripting Java Rhino classes (js.jar) not found - Javascript disabled java.lang.NoClassDefFoundError: org/mozilla/javascript/Scriptable
离线安装包,亲测可用
通过java执行JavaScript代码,并将结果转换成java数据类型。
Rhino脚本引擎是JavaScript的一个开源实现,它能够运行JavaScript风格的脚本代码,并且可以通过这个引擎调用Java语言编写的方法。Rhino脚本引擎可以嵌入Java应用程序中执行,其最大的特点是脚本的修改不需要重启Java...
然而,在这个特定的情况下,我们可以看到一个非传统但非常实用的应用场景:将Java的jar包集成到集成开发环境(IDE)中,用于JavaScript的测试。这主要涉及到Java与JavaScript的交互以及IDE的扩展能力。 首先,我们...
Rhino就是JavaScript引擎,它的目的就是实现Java与JavaScript的互操作性。rhino-1.7R1.jar Envjs一个纯js方式在无浏览器环境下模拟浏览器的行为。envjs-1.2.js 一般网站js中都会用到jauery,所以还用了jauery.js
而Mozilla Rhino则是一个JavaScript解释器,它是用Java实现的,完全符合Ecma-262标准,使得JavaScript可以直接在Java环境中运行。Rhino的主要用途包括: 1. **应用程序扩展和定制**:Rhino可以用来扩展Java应用的...
这个例子展示了Java和JavaScript之间的双向通信,使得Java应用程序能够充分利用JavaScript的灵活性和丰富的库资源,同时保持Java的稳定性和性能。 总的来说,Rhino提供了在Java中执行JavaScript的强大功能,这对于...