相同点:
1. 内存管理,两者都采用GC来对内存进行回收。因此Java与javascript的内存泄露情况十分相似。

2. 代码编译为机器码后由中间件执行:Java使用前会编译为字节码后由JVM执行,V8引擎采用JIT将js编译为机器码后由引擎执行。

3. 内存申请,对象(Object)与数组(Array)引用申请自栈(stack),其本身空间申请自堆(heap)。

4. hash处理,对数组与对象来说,数字类型键值的hashCode为其本身,字符串类型键需要计算hashCode来找到对应的值,因此属性名字的长度决定了其类型在hash类容器中的性能,Java中也有这样的问题。

arr = [], obj = {}, num = 1000000;
function arrTest() {
for(var i=0;i<num;i++) {
arr[100] = i;
}
}
function objTest() {
for(var i=0;i<num;i++) {
obj[100] = i;
}
}
function objTest2() {
for(var i=0;i<num;i++) {
obj["def"] = i;
}
}
function objTest3() {
for(var i=0;i<num;i++) {
obj["apqerasmfkvcxcjvirjqwesdaf/j;klsADf"] = i;
}
}
function objTest4() {
for(var i=0;i<num;i++) {
obj["1"] = i;
}
}
function objTest5() {
for(var i=0;i<num;i++) {
obj[1000000000000000000] = i;
}
} console.time("arr"); arrTest(); console.timeEnd("arr");
console.time("obj"); objTest(); console.timeEnd("obj");
console.time("obj2"); objTest2(); console.timeEnd("obj2");
console.time("obj3"); objTest3(); console.timeEnd("obj3");
console.time("obj4"); objTest4(); console.timeEnd("obj4");
console.time("obj5"); objTest5(); console.timeEnd("obj5");

结果(Chrome V33.0):
实验3由于字符串长度略慢于前几项,实验4将字符串“1”理解为数字而进行了格式转换,实验5由于数字1000000000000000000超过了对象容纳长度将其理解为字符串也进行了格式转换。

java和javascript真的有关系=。=的更多相关文章

  1. paip.java 以及JavaScript (js) 的关系以及区别

    paip.java 以及JavaScript (js) 的关系以及区别 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http:// ...

  2. Java 和 Javascript的关系

    写这篇文章是因为看到有人问这个问题,在想怎么会有这种SB问题,不过想想当初SB的我貌似也搞不清两者的关系,认知还是需要一个过程. 然后看到比较经典的回答有:Java 和Javascript的关系就像雷 ...

  3. Java跟JavaScript两者间的关系和区别

    想必很多人在刚接触和认识Java的时候,都好奇它与JavaScript之间的关系,长得这么像,难道是出自同门的升级版?嗯,他们的发明者确实颇具渊源,而且客观来说,JS确实相较Java更加简洁大众,但它 ...

  4. 一、Java和JavaScript

    JavaScript诞生于1995年,所以他得叫我一声姐姐,(*^__^*) .当时它的主要任务就是表单验证,在还没JavaScript的时候,进行表单验证的时候必须要把数据提交到服务器,才能进行表单 ...

  5. 标 题: JavaScript真的要一统江湖了

    http://www.newsmth.net/nForum/#!article/Python/125347?p=4 标  题: JavaScript真的要一统江湖了 发信站: 水木社区 (Fri Se ...

  6. 新手理解HTML、CSS、javascript之间的关系-修订

    几年前写过一篇博文 <新手理解HTML.CSS.javascript之间的关系>,没想到网上出现了不少转载,当时没有太用心,里面的很多内容有待商榷,这里发布重新发布一篇. 网页主要有三部分 ...

  7. C、C++、Java、JavaScript、PHP、Python、Ruby 这些语言分别主要用来开发什么?

    C.C++.Java.JavaScript.PHP.Python.Ruby 这些语言分别主要用来开发什么? pansz,欢迎评论 此贴纯科普用,以下仅仅说主要用途,其他用途限于篇幅关系省略之,不要钻牛 ...

  8. JavaScript真的要一统江湖了

    ttp://www.newsmth.net/nForum/#!article/Python/125347?p=4 标  题: JavaScript真的要一统江湖了 发信站: 水木社区 (Fri Sep ...

  9. 从Java和JavaScript来学习Haskell和Groovy

    直击现场 记得刚接触计算机的时候,我就受到了两个非常巨大的错误观念的影响,这个观念最初是来自于老师的传授还是学长的教诲已经记不清了,但是直到我工作几年以后,才慢慢有了实际的体会: 学习和使用什么编程语 ...

随机推荐

  1. Swift优雅的实现枚举的定义及使用

    1.枚举是用来表示值的“类型”. 2.定义枚举类型“FamilyRelationshipType” enum FamilyRelationshipType { case GrandFather cas ...

  2. js判断输入是否为空,获得输入的类型

    使用typeof算法 typeof的运算数未定义,返回的就是 "undefined". 下面定义x为运算数: 有一下5种情况: 运算数为数字 typeof(x) 返回的就是 &qu ...

  3. Linux I/O模型

    同步阻塞I/O 在此种方式下,用户进程在发起一个I/O操作以后,必须等待I/O操作的完成,只有当真正完成了I/O操作以后,用户进程才能运行.Java传统的I/O模型属于此种方式. 同步非阻塞I/O 在 ...

  4. 【风马一族_Python】 更替pip的版本

    替换电脑上python中的pip的版本 例子: 下载的文件:pip-8.1.1-py2.py3-none-any.whl 下载地址:https://pypi.python.org/pypi/pip/# ...

  5. NaN 和 Infinity

    using Fasterflect; using System; using System.Collections.Generic; using System.Linq; using System.R ...

  6. 安卓4.0下rem显示不正常的问题

    在项目中使用了rem为单位,结果在Oppo和4.0下某些浏览器rem工作不正常,font-size计算出来的px总是大于预期的值,因此加了个Hack var docEl = doc.documentE ...

  7. 基于jquery打造的网页右侧自动收缩浮动在线客服代码

    基于jquery打造的网页右侧自动收缩浮动在线QQ客服代码, 当前比较流行的一款QQ在线jquery特效代码, 代码中还带有IE6下PNG图片透明的特效,如果想研究IE6下PNG透明的同学也可以下载研 ...

  8. How to generate number Sequence[AX 2012]

    Suppose we want create number sequence for Test field on form in General  ledger module Consideratio ...

  9. eclipse 安装插件不生效

    操作: 下载了一个插件,插件中只有一个jar包,解压放到plugins目录,插件没生效. 解决方法: 把jar包直接扔到dropins目录下,并且删除eclipse\configuration\org ...

  10. WPF 控件截图位置不正确的问题

    用WPF的RenderTargetBitmap可以截取控件内容到一张图片上,但是实际使用的时候经常出现截取的位置不正确的问题.今天是第二次解决这个问题,所以记录下,免得再忘了. RenderTarge ...