Java开发为什么让人又爱又恨

作者&投稿:铎面 (若有异议请与网页底部的电邮联系)
Java(编程语言的)和Javascript有什么区别?~

区别如下:
一、javascript与Java是由不同的公司开发的不同产品。javascript是Netscape公司的产品,其目的是为了扩展Netscape Navigator功能,而开发的一种可以嵌入Web页面中的基于对象和事件驱动的解释性语言;
而Java是SUN Microsystems公司推出的新一代面向对象的程序设计语言,特别适合于Internet应用程序开发。实际上,javascript最初的名字并不是javascript,而是LiveScript,名字中的“Java”是经过SUN Microsystems公司授权的。
二、javascript是基于对象的,它是一种脚本语言,是一种基于对象和事件驱动的编程语言,因而它本身提供了非常丰富的内部对象供设计人员使用。而Java是面向对象的,即Java是一种真正的面向对象的语言,即使是开发简单的程序也必须设计对象。
三、javascript与Java嵌入方式不一样。在HTML文档中,两种编程语言的标识不同,javascript使用来标识,而Java使用Applet来标识。
四、javascript与Java在浏览器中所执行的方式不一样。javascript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户,即javascript语句本身随Web页面一起下载下来,由浏览器解释执行。而Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编译代码。
五、javascript与Java代码格式不一样。javascript的代码是一种谋咀址格式,可以直接嵌入HTML文档中,并且可动态装载,编写HTML文档就像编辑文本文件一样方便,其独立文件的格式为*.js。Java是一种与HTML无关的格式,必须通过像HTML中引用外媒体那么进行装载,其代码以字节代码的形式保存在独立的文档中,其独立文件的格式为*.class。
六、javascript与Java所采取的变量是不一样的。
javascript中的变量声明采用弱类型,即变量在使用前不需作声明,而是解释器在运行时检查其数据类型。Java采用强类型变量检查,即所有变量在编译之前必须作声明。
七、javascript采用动态联编,即javascript的对象引用在运行时进行检查。Java采用静态联编,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查。
八、javascript不直接对文本和图形进行操作,它在Web页面中与HTML元素组合一起发挥作用,但它可以控制浏览器,让浏览器直接对文本和图形进行处理。而Java则可以直接对文本和图形进行操作。

Java是一种特殊的高级性语言,它既有解释性语言的特征,也有编译性语言的特征,因为它是经过先编译,后解释的过程。
简单说:
HelloWorld.java————>HelloWolrd.class————>特定平台的机器代码
①编译 ②解释
编写出一个HelloWorld.java文件,通过javac.exe解释器编译成了一个不是特定平台(操作系统)的机器码HelloWorld.class文件。当然这种机器码是不可以执行的,必须使用java解释器(java.exe)来执行的。可是java.exe不具有解释的能力,它是调用jvm-java虚拟机来解释成适用当前平台的机器码。

——纸上得来终觉浅,绝知此事要躬行

我认为Java语言的10大问题是:
    1、缺少闭包(closure):我想这个不需要解释了。函数式编程已经存在几十年了,但最近几年,它们获得了越来越多的关注,最主要的原因,是它可以自然地编写并行程序。我部分的同意Joshua Bloch强调在Java中引入闭包的问题需要再想一想(BGGA提议的方式真的很糟),至少闭包的缺失,使得在Java中做任何真正的函数式编程都是不可能的。
    2、缺少一等函数:这个问题与前一个有些关联,但我认为它更糟糕。在Java里,要达到类似效果的唯一方式,是使用著名的、丑陋悲惨的单方法匿名内部类,但这看上去的确是一个拙劣的方法。甚至在C#中,也通过代理机制,提供了一个更好的实现。
    3、原生类型(Primitive types):如果在Java中一切皆对象,那是多么完美啊,但他们偏偏不这样设计。因而,这一点导致了一些问题,比如,不能把一个int放到集合(Collection)里,这个在Java5中通过自动装箱特性得到了解决(下面会提到)。它也造成了传值与传引用上的困扰,原生类型数据是通过值传给方法的(复制一份拷贝,然后传给函数),而真正的对象是通过传递(译注:其实是复制对象地址再传递,因此应该也是传值方式,只是由于函数内部可通过这个对象地址访问对象,因此效果上类似传引用)。
    4、自动装箱(Autoboxing)和自动拆箱(autounboxing):这个特性是为了解决因原生类型的存在所导致的问题,在Java5引入的。它允许静默地转换原生类型到相应的对象,但这常常导致其它的问题。比如Integer可以为null,但int不能,因此这时JVM只能抛出一个难以调试的空指针异常(NullPointerException)。此外,它还可能导致其它奇怪的行为,就像下面的例子,我们就很难理解,变量test为什么是false:
    Intger a = new Integer(1024);
    Intger b = new Integer(1024);
    boolean test = a b || a == b || a > b;
    5、缺少范型具类化:范型是Java5引入的一个很酷的特征,但是为了保持与旧版本Java的兼容性,导致缺失某些重要的特性,尤其是不能在运行时反省范型的类型。例如,你有一个方法,接受List参数,如果传进来一个List,你却不能知道运行里该范型的确切类型。同理,你也不能创建范型数组。这意味着,尽管下面的代码看起来很自然,但却不编译不了:
    List[] listsOfStrings = new List[3];
    6、不可避免的范型警告:你有发现过自己陷入不可能去掉的关于范型的警告么?如果你像我一样大量使用范型,我打赌你碰到过。事实上,是这个问题的规模化症状,让他们认为需要引入一个特定的注解(@SuppressWarnings("unchecked"))来处理这种情况,我觉得,范型应该可能被设计的更好。
    7、不能传void给方法调用:我得承认,这种给方法传递void的需求,乍一看有些怪异。我喜欢DSL,当我实现自己的DSL库(lambdaj)的一个特定特性时,我不得不需要一个方法声明成这样的签名:void doSomething(Object parameter),这里为这个方法传进来的参数parameter,是另一个方法调用的结果,它唯一的目的,是注册调用(的对象)自身,以可以在以后执行它。让我吃惊的是,即使println方法返回void,看上去也并没有一个好理由,不允许我把代码写成这样,:
    doSomething(System.out.println("test"));
    8、没有原生的代理机制:代理是一种非常有效和应用广泛的模式,但Java提供的代理机制,只针对接口,而不是具体类。这是为什么象cblib这样提供这种机制的库,被如此多的主流框架,如Spring和Hibernate,采用的原因。此外,由于cglib通过运行时创建被代理类的子类来实现的,因此这些种方式有一个众所周知的限制——不能代理final类,比如String。
    9、差劲的Switch...case语句:Java规定,switch...case只能选择int和enum(Java5开始)。这一点如果跟更现代的语言如Scala相比,看起来简直太弱了。
    10、受检查异常(Checked exception):类似原生类型,受检查异常也已经成为Java的一个罪孽之源。它迫使程序员必须做下面两件极其糟糕讨厌的事情中的一个:让你的代码里充斥大量的、糟糕难读的、容易出错的try...catch语句,而这样做的最大意义,只是将捕获的异常,包装成运行时异常,然后再重新抛出;或者是让大量的抛出声明子句污染你的API,让接口缺少灵活性和可扩展性。
    真正的问题是,这里我提到的这几大主要问题,唯一的解决办法,是要做一个痛苦的决择,定义一套新的语言规范,放下当前版本的向后兼容性。我猜他们永远也不会这么做,虽然我相信,如果编写一个能够自动转换旧Java源码的程序,让它们与假设的新版本兼容,并不是很困难。最后,这就是我决定开始寻找一个更好的JVM兼容语言的原因。


ava具体指什么...
A.V.A的正式译名为战地之王战地之王是由韩国著名游戏公司Redduck开发,Neowiz公司全球发行,腾讯公司代理的“次世代FPS网游”神作。也是第一款使 用目前世界最顶级的专业3D引擎UnrEAl 3引擎开发的FPS网络游戏。被韩国业界公认为掀开网游行业发展的新篇章,曾经获得了2007年度韩国游戏业最高奖项 --总统奖,并...

手机GAVA是什么啊?有什么好处?
Java来自于Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交流。开始,准备采用C++,但C++太复杂,安全性差,最后基于C++开发一种新的语言Oak(Java的前身),Oak是一种用于网络的...

AVA都有什么模式
AVA是一个次世代仿真型多人在线网络游戏,其口号是“这不是游戏,而是战场”,由此可见其开发团队的热情与干劲。在AVA,我们除了体验传统经典的各类精彩对战外,还拥有各种不同的创新模式。这些创新模式为该经典之作再创辉煌。由此图我们可以看到,空战模式中各玩家将被装上黑鹰直升机冲向硝烟弥漫的战场。

AVA是什么?
AVA是一款FPS(第一人称视角射击)游戏,由腾讯代理。它采用世界先进游戏引擎——虚幻三引擎,配置要求较高。游戏有生化模式、生存模式、爆破、竞技等,整体还算不错。如果是新手,建议LZ先买SV98狙击,然后AK改良,最后SPAS-12。

ava中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop...
推广的ActiveX控件,ActiveX控件的开发工具是与日俱增。由于ActiveX是不依赖于语言,传统的开发工具基本上可以建立的ActiveX控件。最常用的Delphi,宝werBuilder以及Visual Basic中的Visual C + +时,Visual J + +等。基本配置文件 1。 ActiveX控件的3GL开发:①MFC(微软基础类,Microsoft基础类),②ActiveX模板库,ActiveX...

ava是什么
《战地之王》是由韩国Redduck公司开发、韩国Neowiz公司全球发行,以第一人称射击形式表现,同时也是世界上第一款使用虚幻3引擎开发的网络游戏。被韩国业界公认为掀开网游行业发展的新篇章。中国大陆由腾讯游戏代理,但因运营策略的失败而毁誉参半;台湾则由战谷代理。战地之王官网:ava.qq.com 战地之王韩服:...

ava怎么样?还有什么时候可以玩??
2006年11月20日,韩国Redduck公司正在开发中的FPS游戏《AVA》游戏截图首次公开。《AVA》将通过12月中旬的第一次韩国国内内测,和韩国玩家见面。在首尔举办的韩国2007游戏大奖颁奖晚会上,由Redduck公司开发,腾讯代理的FPS网络游戏《AVA》获得最高总统奖,除了总统奖的最高荣誉之外,《AVA》还获得了游戏画面、游戏角色领域的...

≡ ╝╚╔ ā狙AVA软件开发好就业吗
其实工作的情况和起薪往往都掌握在培训人员你自己的手里。所以不要妄图相信保证就业的机构,现在随便一个协警办理下来都需要5W左右的好处费,收入可能只有3K左右,而你还妄图缴纳2W左右的费用,让培训机构给你找一个月薪接近一万的工作,确实有点想多了。第二方面讲一下前景,事物发展的规律古人已经给咱们...

SA58 Para在AVA中的设计是否忠实于现实中的伞兵型FN FAL?
游戏开发者赋予这款武器军用风格,试图让它更接近FN FAL的特性,但有趣的是,它被命名为SA58,这通常是民用市场半自动步枪的标识。然而,无论命名上的争议,SA58 Para在AVA中确实保留了FN FAL的核心特征。它发射7.62毫米北约标准弹药,产生显著的后坐力,同时也展现出3发致死的威力,这些都是FN FAL...

AVA体验服游戏简介
战地之王是由韩国知名游戏开发商Redduck倾力打造,全球发行权由Neowiz掌握,腾讯代理运营的次世代第一人称射击(FPS)网络游戏。这款游戏的独特之处在于采用了业界领先的UnREAL 3引擎,这一顶级3D引擎的运用被公认为推动了网游行业的革新。战地之王以策略性多兵种协同作战为核心玩法,丰富的游戏模式和灵活的...

都安瑶族自治县17642036371: Java为什么能火这么久 -
汲兰阿莫: JAVA行业到底是一个有着非凡魅力的行业,还是让人觉得苦闷的行业呢?JAVA行业会如此吸引人,国内JAVA热自从2007年就有增无减,无论是游 戏,还是大中小网站,还是B2C商城,还是各大信息系统,到处都是JAVA的身影,各大招聘网...

都安瑶族自治县17642036371: 做java工程师感觉怎么样呢? -
汲兰阿莫: java工程师嘛,混日子还行,要想成功有些困难.望楼主早日想开,和我去卖烧烤可能会比较赚钱呢

都安瑶族自治县17642036371: PHP和Java哪个更受欢迎? -
汲兰阿莫: 如果说受欢迎 那应该轮不到java和c#(dotnet是一个集合) 你可以查查tiobe世界编程语言排行榜.但这个排行榜不是按语言的好坏来排名的,而是当下最常被使用的语言排行.也就是说很多新技术新语种并没有排进来.世界上使用的最多的语言是...

都安瑶族自治县17642036371: JAVA开发工程师薪酬为什么那么高 -
汲兰阿莫: 1、java工程师工资的门槛相对比较高,很多人都倒在了入门的路上.人需要一种叫成就感的东西来支撑自己前进,刚开始学的时候这也不会那也不会就很容易让人放弃.所以干这一行的人相对其他行业还是少. 2、市场需求存在巨大的缺口....

都安瑶族自治县17642036371: java开发 工作经验不到2两年 工资应该多少 -
汲兰阿莫: 这个第一得看地方.以房租为标准,一个月两室 房租1000 - 1200的地方.那么就和卢水发 给出的差不多. 我给出的是4500-5500 如果房租在2000以上,的地方,那一个月没有7,8K的收,一个月你也剩不下啥.但我给出是的6000-6500 原因是...

都安瑶族自治县17642036371: 面试时没有java开发经验,怎么说 -
汲兰阿莫: 实话实说,没有开发经验不代表你的水平不行,谈谈你对java的理解(面向对象、跨平台、安全等方面),毕竟,一个优秀的程序员,编程思想往往比技巧更让人看重和欣赏.

都安瑶族自治县17642036371: 介绍一下c#语言的不同于其他语言的地方 -
汲兰阿莫: 首先 要知道语言的发展历史 太老的不说 从C语言开始说 C语言的 精髓 也是他最难的地方在于指针 这个指针让人又爱又恨 爱 是他功能强大 恨 是他难 而且 不安全 再说C++ 他的精髓在于 向面向对象的思维发展 他只能算不完全面向对象 这是一个进步 然后说JAVA 现在比较火 是完全面向对象的语言 在JAVA火了 7年以后 微软发布了 预谋已久的C# 他 抛弃了 C语言了难而不安全的指针(用属性代替) 他是完全面向对象的语言 效率高 有人说C#简单 我只能说 他没学到位 只学了皮毛 打篮球简单吧?最后又有几个成才的?最后祝楼主好运

都安瑶族自治县17642036371: 怎样将JAVA开发简单化?
汲兰阿莫: 看了一些java开源框架,感觉都太复杂了,特别是想把什么都写进XML文件的做法让人很不适应,为什么不能用Java来搞定一切呢?我的做法是将一切复杂的东西封装在对...

都安瑶族自治县17642036371: osgi 与其他的Java有什么区别 -
汲兰阿莫: 具体说的话,需要一本书才能描述.简单的话,osgi可以动态换jar包,可以控制jar包中可以被外界访问的类,但所有的jar包都要满足osgi规范.这就让人又爱又恨,动态换是很好的,控制访问也感觉是很不错的封装.可所有jar包转换成osgi规范,这可以让人疯掉(spring就疯了,宣布3.2以后不支持osgi了)

都安瑶族自治县17642036371: android开发难学吗?android入门难吗 -
汲兰阿莫: Android入门,说难不难,说容易也不容易.我也是自学android,现在已经给单位开发APP了.第一步,需要学习基本的Java.不需要学太深,如果学过C++,那只要花两周的时候看看Java书籍就可以了.第二步,买一本android入门书.从入门到精通的书实在太多,其实都差不多.一定要买有完整例子的代码的书.第三步,看慕课网上的教学视频.android攻城狮的三个视频学完,也就可以自己写APP.第四步,做一个有完整功能的APP.可以去CSDN上注册一个帐号,充值10RMB买积分,下载android例子.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网