阅读更多

35顶
16踩

Web前端

翻译新闻 JavaScript2.0 :抢先尝鲜

2009-08-18 09:40 by 见习记者 hite 评论(48) 有22403人浏览
JavaScript2.0 :抢先尝鲜

作者 Rob Gravelle

作为一个开发者和作家,我的一部分工作就是跟随web世界最新发展潮流——不管是关于公司合并、在线购物潮流、或者是编程技巧。我承认如今很难跟上业界里发生的所有事情,但是有个四处流传的小道消息却吸引了许多的目光:JavaScript2.0提案。作为新的JavaScript2.0\EMCAScript 4.0计划于2009年终稿,但是日前已经做了很多的工作-包括好的、不好的。今天,我们来看看这份提案规范的一部分,看下他们是在改进这门语言还是狗尾续貂。

JavaScript的历史

为了更好的理解JavaScript标准是如何实现的,让我们简要的看下这门语言的历史吧

JavaScript是ECMAScript脚本语言的一个分支。ECMAScript 是Ecma国际组织标准化的,这门语言的另外2个分支是ActionScript(macroMedia,Adobe)和JScript(微软)。JavaScript是有Netscape的Brendan Eich开发的,最初叫Mocha而后是LiveScript,最后改为JavaScript。1993.3月,Sun公司发布了支持JavaScript的Navigator2.0(译者:我感觉这是错误的,可查看原文)。鉴于JavaScript作为客户端脚本语言取得广泛流行,微软制定了自己的脚本语言JScript,发布于1996.8月的ie3.0中。Netscape公司在日内瓦提交了JavaScript给Ecma国际标准化组织,申请成为标准。

Ecma国际标准化组织是个管理信息、通信系统的、基于成员制度,非营利性国际机构 。这个机构起初是为了标准化欧洲的计算而于1991年成立,在它成立后的40年间,Ecma总共出台了370封标准和90个科技报告,其中包括了CD-ROM卷和文件系统,c++语言规范和他们的开放xml格式。第一版的ECMAScript(Ecma-262)于1997在Ecma全员大会上通过。不管JavaScript还是JScript他们都是兼容ECMAScript的,同时也提供了Ecma规范没有提供的特殊的额外的特性。甚至在今天,JavaScript和JScript依然有个很多不兼容的地方。JavaScript受如java、c++等面向对象语言的影响很深,这也意味着初学者能很容易的上手。

语言的增强

更加的面向对象

迄今为止,JavaScript是使用的原型来做继承的,而不是经典的面向对象式的继承自父类。事实上,如下面实例的一样,如今JavaScript没有class的东西:

// Current JavaScript 1.x "Class" Definition
function MyClass()
{
 this.member1 = "a string";
 this.member2 = 10;
}
var myClass = new MyClass(); // class instantiation


// JavaScript 2.0 Class Definition
class TrueClass
{
 this.member1 = "a string";
 this.member2 = 10;
}
var trueClass = new TrueClass(); // class instantiation


当对象的构造函数和他们类型角色一起的时候,构造函数会翻倍。使用new 调用函数的时候会创建一个新对象,而后你就可以使用被bind到这个对象的本地关键字this来调用这个函数。函数的原型决定了这个对象的原型。不管什么类型的值赋予一个对象的原型,那么它都会被他所有的实例和汉字共享。使用原型 ,JavaScript可以模拟许多基于class的特性,尽管有些古怪。举个例子,在下面的代码中,myOtherDog尝试去重载父类Dog的getBreed() 函数。虽然myOtherDog的getBreed()函数是能够实现的,但是他没有重载成功——给了myOtherDog两个面包。

function Dog(name)
{
  this.name = name;
  this.bark = function() { alert('Woof!'); };
  this.displayName = function() { alert(this.name); };
};

var myDog = new Dog('Killer');
myDog.displayName(); //Killer
myDog.bark(); //Woof!

Dog.prototype.getBreed = function()
{
  alert("Mutt");
};

myDog.getBreed(); //Mutt

myOtherDog = new Dog('Bowzer');

// this hides getBreed() from other Dogs
myOtherDog.getBreed = function()
{
  return "Lhasa Apso";
};
alert(myOtherDog.getBreed()); //Lhaso Apso and Mutt!

alert(myDog.getBreed()); //function is undefined


强类型

像大多数的脚本语言一样,JavaScript也是弱类型的。解释器会在运行时,基于值来决定某变量的数据类型。这种松散性使得开发者可以很灵活的重用和比较变量。在后种情况,使用强制类型转换就可以比较两种不同数据类型的值;JavaScript会自动在比较之前将他们转化成相同的类型。

alert( "42" == 42 ); //true
alert( ("42" == 42) + 1 ); //2. the boolean true evaluates to 1.
alert( "I live at " + 99 + " Renolds street."); // the 99 int is converted to a string.


相反的,JavaScript2.0会强类型化了些,这就意味着必须显式的申明变量的类型,脚本引擎不会强制类型转换了。类型可以赋予属性、函数参数、函数返回值、变量、对象、数组的初始化对象。如果没有定义类型,那么变量或者属性被设置为默认的Object类型,这是所有的数据类型层级的基类。使用:后跟类型申明的是赋类型的语法:

var a:int = 100; //variable a has a type of int
var b:String = "A string."; //variable b has a type of String

function (a:int, b:string)//the function accepts two parameters, one of type int, one of type string

function(...):int //the function returns a value with a type of int


为了进行上述的比较,你需要转换类型:

alert( int("42") == 42 ); //true
alert( int("42" == 42) + 1 ); //2
alert( "I live at " + string(99) + " Renolds street.");


程序单元体

借鉴了各种流行js框架,程序单元体是很有用的代码模块,它可以在运行时导入。当框架和自定义库数量越来越多的时候,这些已经成为web程序不可或缺的组成部分。设想下,包含了成千上万行代码的库们,一次性下载他们已经不合时宜了。这是伪代码:
use unit Effects "http://mysite/lib/Effects";
use unit Utils "http://mysite/lib/Utils";

var panel = new Panel();
panel.setTime(Util.getFormattedTime());


编译时的类型检查

在JavaScript2.0 里,你可以使用严格模式来编译JavaScript模块。在运行之前,它可以检查几个重要的方面的完整性,包括:

静态类型检查

引用名称确认

对常数的非法赋值

保证比较的两个值有合法的类型

常数

先前的JavaScript开发者不得不使用命名规范或者精心制定的工作规则保护他们的常量。而这些在JavaScript2.0都是不需要的:

//JavaScript 1.x constant
var CULTURE_CONST = "Do you really want to change me?"; // constant in appearance only.

//JavaScript 2.0 constant
const HAMMER_TIME = "You can't touch this!" // a true constant.


命名空间

随着js框架的不断涌现,使用命名空间已经变得越来越必要了。这个标准目前被用作创建全局对象来保护你自己的功能不给先前的全局对象和函数击倒在地(直译)。

总结

许多向对2.0提案进行了猛烈的抨击,批评它在想经典的语言如c++、java在靠近。

“...JavaScript是动态、灵活的,使用原型继承和对象模型是很实用,很基础的优势,为什么有人要把这些那么优雅、灵活的东西变成java呢,java基本上强制性的让程序员使用古典的,基于class的继承——我搞不懂。”

而我个人对此很感受很复杂,即欢迎像class,命名空间,常量这样好的变化,也对强类型脚本变量很不感冒。总体上说,JavaScript冒着对业余程序员变得更严格,相应的更严肃的危险 。不过,我也想应该感谢那些商业网站能够使用像我这样的专业人士来编码他们的业务流程。不管结果如何,无疑web开发的格局将会发生戏剧性的改变。

初稿:2009 7.20

复查:2009.7.22

翻译:2009.8.20
来源:http://www.webreference.com/programming/javascript/rg38/2.html
来自: hometown-631
35
16
评论 共 48 条 请登录后发表评论
48 楼 cony138 2011-12-26 09:23
怎么看怎么像是AS3.0.js多少年不变了,as变化了好几版,论语言严谨性,易读性、as绝对超过js1,js2的话要看看才知道
47 楼 sparks345 2011-03-11 11:38
这里解释有误!

alert(myOtherDog.getBreed()); //Lhaso Apso and Mutt! 
//alert("PAUSE"); //加个暂停试试 
alert(myDog.getBreed()); //function is undefined


第一个alert,因为getBreed  return了 “Lhaso Aspso”,

第二个alert,内部直接alert 了 “Mutt”,最后没有return,alert(myDog.getBreed())相当于 alert(undefined);
46 楼 aasddsasda 2010-08-25 00:12
强类型如此丑陋,令人遗憾,如果真变成这样我只好放弃js了
var a:int  = 1;
多谢个var和:是多么白痴的规范,不知道那个没长大脑想出来的
int a = 1;
这样不好吗,标准制定者难道非要和java c搞出点区别才有成就感?恶心啊
45 楼 huanlong78 2010-02-10 01:14
timshaw9791 写道
javascript整来整去也就是html这颗万年青上的叶子,就算叶子再丰盛也终究是个万年青(更别提其中还夹种了很大比例的千年矮),他们除了在各种土地上都能要死不断气的活着,就没啥有点了。

这15年来,我们只做了一件事情:把丰富的桌面应用先放倒再不遗余力的用脚踩直至他们变成了被压扁的没有任何弹性的旧棉絮,然后放到那片浩瀚的万年青千年矮上晒了又晒 -- 向上帝们要灿烂。

一段时间以后众神觉得在这么些破棉被上闲逛太没意思了,撒个尿7里外都能看见。于是有人说有办法了,可以给一些千年矮交点特制的水它就会多长不少叶子,如此一来就可以承受更大的压力,据说如此就可以叠20床棉被了,躲20床棉被后面别说掏jj,就算玩裸体空翻360度都不一定有人知道。水还是那盘臭水,撒泡尿特制下tmd就成尿素了,你要是尿多点就上升到一种叫Ajax的境界了。

www的本还是url和hyperlink以及搜索引擎,这些都是Web Site的范畴。
要建Web application搞雕梁画栋然后大搞声色犬马,用千年矮做柱子栋梁用它叶子刷墙,搞出来的顶多是排廉租房。你不大可能在上面大书“欢迎夜间看房,览尽珠江夜景”或者“别处再无兰溪谷”。



娘的 这哥们强大
44 楼 fangwei 2009-08-27 22:38
timshaw9791 写道
javascript整来整去也就是html这颗万年青上的叶子,就算叶子再丰盛也终究是个万年青(更别提其中还夹种了很大比例的千年矮),他们除了在各种土地上都能要死不断气的活着,就没啥有点了。

这15年来,我们只做了一件事情:把丰富的桌面应用先放倒再不遗余力的用脚踩直至他们变成了被压扁的没有任何弹性的旧棉絮,然后放到那片浩瀚的万年青千年矮上晒了又晒 -- 向上帝们要灿烂。

一段时间以后众神觉得在这么些破棉被上闲逛太没意思了,撒个尿7里外都能看见。于是有人说有办法了,可以给一些千年矮交点特制的水它就会多长不少叶子,如此一来就可以承受更大的压力,据说如此就可以叠20床棉被了,躲20床棉被后面别说掏jj,就算玩裸体空翻360度都不一定有人知道。水还是那盘臭水,撒泡尿特制下tmd就成尿素了,你要是尿多点就上升到一种叫Ajax的境界了。

www的本还是url和hyperlink以及搜索引擎,这些都是Web Site的范畴。
要建Web application搞雕梁画栋然后大搞声色犬马,用千年矮做柱子栋梁用它叶子刷墙,搞出来的顶多是排廉租房。你不大可能在上面大书“欢迎夜间看房,览尽珠江夜景”或者“别处再无兰溪谷”。



你真幽默
43 楼 hu_lihaifeng 2009-08-20 22:32
42 楼 sunhaokaka 2009-08-20 18:08
gjg
41 楼 达达乐队 2009-08-20 16:39
没弱类型,搞什么吗  
40 楼 whaosoft 2009-08-20 11:21
我也要好好学习
39 楼 night_stalker 2009-08-20 00:54
starzhang 写道
这句经典, 91年成立, 至今有40年?

2005 年的新闻, fourteen 不小心被看成 forty 了。
38 楼 starzhang 2009-08-19 20:24
Ecma国际标准化组织是个管理信息、通信系统的、基于成员制度,非营利性国际机构 。这个机构起初是为了标准化欧洲的计算而于1991年成立,在它成立后的40年间,Ecma总共出台了370封标准和90个科技报告,其中包括了CD-ROM卷和文件系统,c++语言规范和他们的开放xml格式。第一版的ECMAScript(Ecma-262)于1997在Ecma全员大会上通过。



这句经典, 91年成立, 至今有40年?
37 楼 flyingzl 2009-08-19 19:23
语法都有点像delphi了,晕死。。。。还是比较喜欢弱类型
36 楼 night_stalker 2009-08-19 17:40
totally sob's bs
35 楼 jaxchow 2009-08-19 15:07
Ecma国际标准化组织是个管理信息、通信系统的、基于成员制度,非营利性国际机构 。这个机构起初是为了标准化欧洲的计算而于1991年成立,在它成立后的40年间,,
汗。不会是我昨天一睡就睡了几十年吧!还是继续努力工作
34 楼 andyyehoo 2009-08-19 12:57
timshaw9791 写道
javascript整来整去也就是html这颗万年青上的叶子,就算叶子再丰盛也终究是个万年青(更别提其中还夹种了很大比例的千年矮),他们除了在各种土地上都能要死不断气的活着,就没啥有点了。

这15年来,我们只做了一件事情:把丰富的桌面应用先放倒再不遗余力的用脚踩直至他们变成了被压扁的没有任何弹性的旧棉絮,然后放到那片浩瀚的万年青千年矮上晒了又晒 -- 向上帝们要灿烂。

一段时间以后众神觉得在这么些破棉被上闲逛太没意思了,撒个尿7里外都能看见。于是有人说有办法了,可以给一些千年矮交点特制的水它就会多长不少叶子,如此一来就可以承受更大的压力,据说如此就可以叠20床棉被了,躲20床棉被后面别说掏jj,就算玩裸体空翻360度都不一定有人知道。水还是那盘臭水,撒泡尿特制下tmd就成尿素了,你要是尿多点就上升到一种叫Ajax的境界了。

www的本还是url和hyperlink以及搜索引擎,这些都是Web Site的范畴。
要建Web application搞雕梁画栋然后大搞声色犬马,用千年矮做柱子栋梁用它叶子刷墙,搞出来的顶多是排廉租房。你不大可能在上面大书“欢迎夜间看房,览尽珠江夜景”或者“别处再无兰溪谷”。



timshaw9791 写道
javascript整来整去也就是html这颗万年青上的叶子,就算叶子再丰盛也终究是个万年青(更别提其中还夹种了很大比例的千年矮),他们除了在各种土地上都能要死不断气的活着,就没啥有点了。

这15年来,我们只做了一件事情:把丰富的桌面应用先放倒再不遗余力的用脚踩直至他们变成了被压扁的没有任何弹性的旧棉絮,然后放到那片浩瀚的万年青千年矮上晒了又晒 -- 向上帝们要灿烂。

一段时间以后众神觉得在这么些破棉被上闲逛太没意思了,撒个尿7里外都能看见。于是有人说有办法了,可以给一些千年矮交点特制的水它就会多长不少叶子,如此一来就可以承受更大的压力,据说如此就可以叠20床棉被了,躲20床棉被后面别说掏jj,就算玩裸体空翻360度都不一定有人知道。水还是那盘臭水,撒泡尿特制下tmd就成尿素了,你要是尿多点就上升到一种叫Ajax的境界了。

www的本还是url和hyperlink以及搜索引擎,这些都是Web Site的范畴。
要建Web application搞雕梁画栋然后大搞声色犬马,用千年矮做柱子栋梁用它叶子刷墙,搞出来的顶多是排廉租房。你不大可能在上面大书“欢迎夜间看房,览尽珠江夜景”或者“别处再无兰溪谷”。



兄弟很有才,不过历史本来就是螺旋式发展,不折腾,大家也没饭吃滴,不管怎么样,开心就好
33 楼 hax 2009-08-19 11:25
es4的设计其实不错,但是微软和yahoo不同意。所以只能回到渐进改良的es5。
32 楼 wangzaixiang 2009-08-19 08:43
语法上做这些变化,意义并不是很大。不过,我期待JavaScript中能够新增对数据绑定的支持。毕竟,在UI开发上,有没有数据绑定的支持,表示能力有大的区别。
31 楼 dexter_yy 2009-08-19 02:57
……cnbeta真是害人不浅

这些全是已被淘汰的ecmacript4.0里的东西,跟actionscript3一样

英文原文的日期虽然很新,但是那个网站就跟国内经常会被搜索出来的那些自动抓取内容的网页技术站差不多罢,很明显是不靠谱的(特别是连作者名字都没有)

john resig一年多前在各种场合和BLOG都在宣传这些ES4的特性,最近又恢复传道,不过说的都是ES5了,从这个标签可以完整的看到这些文章:http://ejohn.org/blog/tags/ecmascript/
30 楼 syco 2009-08-18 23:54
有点像ActionScript
29 楼 timshaw9791 2009-08-18 23:43
javascript整来整去也就是html这颗万年青上的叶子,就算叶子再丰盛也终究是个万年青(更别提其中还夹种了很大比例的千年矮),他们除了在各种土地上都能要死不断气的活着,就没啥有点了。

这15年来,我们只做了一件事情:把丰富的桌面应用先放倒再不遗余力的用脚踩直至他们变成了被压扁的没有任何弹性的旧棉絮,然后放到那片浩瀚的万年青千年矮上晒了又晒 -- 向上帝们要灿烂。

一段时间以后众神觉得在这么些破棉被上闲逛太没意思了,撒个尿7里外都能看见。于是有人说有办法了,可以给一些千年矮交点特制的水它就会多长不少叶子,如此一来就可以承受更大的压力,据说如此就可以叠20床棉被了,躲20床棉被后面别说掏jj,就算玩裸体空翻360度都不一定有人知道。水还是那盘臭水,撒泡尿特制下tmd就成尿素了,你要是尿多点就上升到一种叫Ajax的境界了。

www的本还是url和hyperlink以及搜索引擎,这些都是Web Site的范畴。
要建Web application搞雕梁画栋然后大搞声色犬马,用千年矮做柱子栋梁用它叶子刷墙,搞出来的顶多是排廉租房。你不大可能在上面大书“欢迎夜间看房,览尽珠江夜景”或者“别处再无兰溪谷”。


发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 编译原理课程设计 java实现编译器

    java实现c语言编译器,包括词法分析,语法分析,语义分析,目标代码生成四个部分,总体实现编译器功能,有运行界面,代码精简,值得下载。

  • java编译原理

    1.javac是什么? (1)javac是一种编译器,能够将一种语言规范转换成另一种用语言规范,通常编译器是将便于人们理解的语言规范成机器容易理解的语言规范。 (2)javac的任务就是将java源代码语言转换成jvm能够识别的语言,然后jvm将jvm语言再转化成当前机器能够识别的语言(这样使得对开发者屏蔽与机器相关的细节,并且使得语言的执行与平台无关) 2.javac编译器的基本结构 (1)步骤: <1>读取源码,进行词法分析。也就是找出源码字节中的关键字,识别出合法的关键字,最后得出一些规范

  • JVM——Java虚拟机详解

    内存分配有两种方式,指针碰撞空闲列表指针碰撞和空闲列表指针碰撞:假设Java堆中内存是绝对规整的,所有被使用过的内存都被放在一边,空闲的内存被放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲空间方向挪动一段与对象大小相等的距离,这种分配方式称为“指针碰撞”。

  • java虚拟机及其安装

    Java虚拟机(JVM, Java Virtual Machine)是Java编程语言的核心组件之一,它负责执行Java字节码(.class文件),使得Java程序可以在任何安装了JVM的平台上运行,而无需重新编译。这种特性被称为“一次编写,到处运行”(Write Once, Run Anywhere, WORA)。javacjavaJVM的可移植性和高性能使其成为企业级应用、Web服务、移动设备开发(如Android应用程序)和云计算等领域的重要技术。

  • Java虚拟机(JVM)详解

    本文详细介绍了Java虚拟机(JVM)的概念、架构、组成部分以及其在Java程序运行中的作用。希望对Java程序员的学习和实践有所帮助。了解JVM可以帮助我们更好地理解Java程序的运行机制,为程序性能优化和问题诊断提供依据。

  • Java虚拟机是什么?一文带你深入了解Java虚拟机

    首先必须虚拟机进程启动就绪,然后由虚拟机中的类加载器加载必要的class文件,包括jdk中的基础类(如String和Object等),然后由虚拟机进程解释class字节码指令,把这些字节码指令翻译成本机cpu能够识别的指令,才能在cpu上运行。这些“原料”在运行时被加载到虚拟机中,被虚拟机解释执行,以控制虚拟机实现我们java代码中所定义的一些相对高层的操作,比如创建一个文件等,可以将class文件中的信息看做对虚拟机的控制信息,也就是一种虚拟指令。3 加载class文件的是一个叫做类加载器的子系统。

  • Java编译工作原理(简释)

    如图: 首先,源程序(.java)文件由javac编译器将其转换成jvm可识别字节码文件(.class)(这个字节码文件不是针对具体平台的,而是针对抽象的Java虚拟机的,在Java虚拟机上运行,在不同类型的平台上安装不同的Java虚拟机,这些不同的Java虚拟机屏蔽了各个不同平台的差异,从而使编译过的Java程序具有平台无关性,即Java虚拟机在执行字节码时,把字节码解析成具体平台上的机器指令...

  • 编译原理-语法分析器的java实现

    语法分析器 实验步骤 1.2.1 1. 文法 E->TE’ E’->+TE’|ε T->FT’ T’->*FT’|ε F->(E)|i 1.2.2 2. 程序描述(LL(1)文法) 本程序是基于已构建好的某一个语法的预测分析表来对用户的输入字符串进行分析,判断输入的字符串是否属于该文法的句子。   基本实现思想:接收用户输入的字符串(字符串以“#”表示结束)后,对用做分析栈的一维数组和存放分析表的二维数组进行初始化。然后取出分析栈的栈顶字符,判断是否为终结符,若为终结符则判

  • java的运行原理

    编译型语言  VS  解释性语言:编译型语言是通过专门的编译器,将高级语言【一次性翻译成】可被平台(如OS操作系统)执行的机器码,编译一次,脱离开发环境可独立运行,故效率高;但对编译器严重依赖,而不同操作系统所使用的编译器是各不相同的,所以造成了编译型语言可移植性差的特点。同样的,解释型语言也有专门的解释器,将原程序解释成特定的平台可执行文件,不同的是,解释型语言不会进行整体的编译,而是把编译和解...

  • Java编译器、JVM、解释器

    Java编译器、JVM、解释器 收藏  Java 虚拟机(JVM)是可运行Java 代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。本文首先简要介绍从Java文件的编译到最终执行的过程,随后对JVM规格描述作一说明。      一.Java源文件的编译、下载 、解释和执行    Java应用程序的开发周期包括编译、

  • 解释器与编译器

    计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)。 编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快; 解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的. 1. 在具体计算机上实现一种语言,首先要确定的是表示该语言语义解释的虚拟计

  • JVM、编译器、解释器

    一、JVM:JVM有自己完善的硬件架构,如处理器、堆栈(Stack)、寄存器等,还具有相应的指令系统(字节码就是一种指令格式)。JVM屏蔽了与具体操作系统平台相关的信息,使得J**ava程序只需要生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM是Java平台无关的基础。JVM负责运行字节码:JVM把每一条要执行的字节码交给解释器,翻译成对应的机器码,然后由解...

  • Java—了解编译原理 (前端编译)

    核心竞争力,怎么才能提高呢?成年人想要改变生活,逆转状态?那就开始学习吧~万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。为了帮助大家更好更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。

  • Java之编译原理解析

    为什么80%的码农都做不了架构师?>>> ...

  • 编译原理中间代码生成--java实现

    程序要求能自动生成AST抽象语法树。Lab3Main.javapackage sch.cauc.edu.token; import edu.ustc.cs.compile.platform.interfaces.InterRepresent; /** * * * Lab3Main * 创建人:xrzhang * 时间:2018年5月25日-上午8:13:05 * @versi...

  • 编译原理语义分析java实现

    编译原理语义分析java实现程序报告,由语法和此分析衍生而来,生成四元式输出

  • JVM原理最全、清晰、通俗讲解,五天40小时吐血整理

    另外,小编也有根据以下总结内容,录制了对JVM讲解视频。里面有个用visio画的JVM内部结构图,每部分的作用都有详细讲解,希望能有帮助。网址:https://edu.csdn.net/lecturer/board/10494 1.java自动管理堆(heap)和(栈),程序员不能直接的设置堆和栈。 3.操作系统的堆和栈: 堆(操作系统):一般由程序员分配释放,若程序员不释放,程序结束...

  • JVM--看图说话,一篇足够

    JVM是什么 JVM:Java Vitrual machine 一张图了解JDK,JRE,JVM,JIT 那么具体差异到底差哪里了呢,再来两张图 1.空间上的差异 1.时间上的差异 JAVA程序的生命周期,再来一张图 1. 编写JAVA程序 2. 编译JAVA程序到字节码文件 3. 字节码文件送入类加载器 3.1. loading: ...

  • 安装java编译器

    安装JDK。 参考:https://www.cnblogs.com/mr-wuxiansheng/p/6850437.html 1.官网下载 Java SE Development Kit 13.0.1 (由于是访问国外网站,所以会比较慢。) 最好下载EXE版本的,这样什么都不用管,点安装就行。 https://www.oracle.com/technetwork/java/javase/...

  • JAVA源文件动态编译

    (转载)JAVA动态编译--字节代码的操纵 在一般的Java应用开发过程中,开发人员使用Java的方式比较简单。打开惯用的IDE,编写Java源代码,再利用IDE提供的功能直接运行Java 程序就可以了。这种开发模式背后的过程是:开发人员编写的是Java源代码文件(.java),IDE会负责调用Java的编译器把Java源代码编译成平台无关的字节代码(byte code),以类文

Global site tag (gtag.js) - Google Analytics