相同点:
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. 《Cocos2d-x实战 C++卷》上线了-源码-样章-感谢大家的支持

    <Cocos2d-x实战 C++卷>上线了 感谢大家一直以来的支持! 全面介绍Cocos开发技巧,采用Cocos2d-x3.2版本,并且详细介绍跨平台移植已经多平台发布细节. · 各大商店 ...

  2. DTCMS 新建下拉列表控件

    初始化的时候: ddlpmzcName.DataSource = new DTcms.BLL.auction().GetpmzcName();ddlpmzcName.DataTextField = & ...

  3. Headfirst设计模式的C++实现——策略模式(Strategy)

    前言 最近在学习<Headfirst设计模式>,里面的例子都是Java的.但是我对Java并不熟悉,所以试着用C++来实现书中的例子. 先来看看Duck以及子类 Duck.h #inclu ...

  4. corosync+pacemaker实现高可用(HA)集群

    corosync+pacemaker实现高可用(HA)集群(一)     重要概念 在准备部署HA集群前,需要对其涉及的大量的概念有一个初步的了解,这样在实际部署配置时,才不至于不知所云 资源.服务与 ...

  5. jquery easyui combox实用方法记录

    // combogrid刷新 $(“#cc").combogrid('grid').datagrid('load'); // combogrid设置默认选中哪一行 $('#cc').comb ...

  6. 51nod 1021 石头归并

    1021 石子归并 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合 ...

  7. JS获取图片实际宽高及根据图片大小进行自适应

    JS获取图片实际宽高,以及根据图片大小进行自适应  <img src="http://xxx.jpg" id="imgs" onload="ad ...

  8. Optimize str2date function

    The job can be any string date format convert to AX date format. so that, Do not need to specify str ...

  9. JS面向对象编程创建类的方式

    js创建类的方式有几种,大致如下: 1,构造函数方式: function Car(parameters) { this.name = "objectboy"; } var cat1 ...

  10. javascript 数组排序之 sort()

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...