JAVA的技术特点是什么?
Java由美国SUN公司(被oracle公司收购)发明于1995年,是目前业界应用最广泛、使用人数最多的语言,连续多年排名世界第一,可以称之为“计算机语言界的英语”。
那么Java这么高的评价它的特点有哪些,下面我来为题主解答:
一、跨平台/可移植性
这是Java的核心优势。Java在设计时就很注重移植和跨平台性。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。
Java首先利用文本编辑器编写 Java源程序,源文件的后缀名为.java;再利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀名为.class; 最后利用虚拟机(解释器,java)解释执行。如下图所示:
二、安全性
Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以很容易构建防病毒,防篡改的系统。比如Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的。
三、面向对象
面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!Java则是完全的面向对象语言。
四、简单性
Java就是C++语法的简化版,我们也可以将Java称之为“C++-”。跟我念“C加加减”,指的就是将C++的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于C语言,因此学习起来完全不费力。
五、高性能
Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,某些代码甚至接近C++的效率。
因此,Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。
六、分布式
Java是为Internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。
七、多线程
多线程的使用可以带来更好的交互响应和实时行为。 Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。
八、健壮性
Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。即使Java程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。
以上几种特性你了解到啦吗? 记得给个赞!
当然这些还没完,Java除啦这些特性还有一些其他的特点我也来给你讲一讲!!
1.java的风格类似C++,从某种意义上讲,java是C++的一个变种。但是java摒弃了C、C++中的容易引发错误和难以理解的指针,结构,以及内存管理等;
2.java是一种强类型的语言,比C/C++检查还要严格,java区分大小写字母;
3.java禁止非法访问内存,因为java没有指针,内存的申请和释放;
4.对于不同的操作系统,会有不同的java虚拟机,这也就决定了java的可移植性;
5.java提供了自动垃圾回收机制gc,有效避免了C、C++的内存泄漏问题;
记得给个赞!
可移植性:就是在这个系统上作的程序经过一次编译后可以移植到别的系统上解释执行,只要经过简单的粘贴和复制就行了,不影响程序的效果
安全性:在 iSeries 服务器上运行的大多数 Java(TM) 程序是应用程序,而不是 applet,所以“砂箱”安全性模型对它们不起限制作用。从安全性的观点看,Java 应用程序所受的安全性限制与 iSeries 服务器上的任何其它程序相同。要在 iSeries 服务器上运行 Java 程序,您必须对集成文件系统中的类文件具有权限。程序一旦启动,它就在该用户权限控制下运行。 您可以使用沿用权限来访问具有运行程序的用户的权限和程序拥有者权限的对象。沿用权限临时地将用户原先无权访问的对象的权限授予用户。
并发性:JAVA支持多线程技术,就是多个线程并行机制,多线程是Java的一个重要方法,特别有利于在程序中实现并发任务.Java提供Thread线程类,实现了多线程的并发机制.然而,程序的并发执行必定会出现多个线程互斥访问临界资源的局面,因而并发系统解决的关键就是对临界资源的管理和分配问题,而在进行临界资源分配时有两方面需要考虑,即安全性和公平性.文中首先讨论了多线程并发系统中的安全性与公平性问题,指出安全性与公平性在并发系统中访问临界资源时的重要性.并通过火车行驶单行隧道的实例,演示各种条件下的行驶情况来进一步说明该问题.
可视化:不好说,像vb这样的也是可视话的编成程序。
我借鉴了一些朋友的答案,还有一些是自己找啊,希望能给你带来帮助
Java来自于Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交流。开始,准备采用C++,但C++太复杂,安全性差,最后基于C++开发一种新的语言Oak(Java的前身),Oak是一种用于网络的精巧而安全的语言,Sun公司曾依此投标一个交互式电视项目,但结果是被SGI打败。可怜的Oak几乎无家可归,恰巧这时MarkArdreesen开发的Mosaic和Netscape启发了Oak项目组成员,他们用Java编制了HotJava浏览器,得到了Sun公司首席执行官ScottMcNealy的支持,触发了Java进军Internet。Java的取名也有一个趣闻,有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎样,得到了其他人的赞赏,于是,Java这个名字就这样传开了。
1、Java的现状
Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发,它的平台无关性直接威胁到Wintel的垄断地位。一时间,\"连Internet,用Java编程\",成为技术人员的一种时尚。虽然新闻界的报导有些言过其实,但Java作为软件开发的一种革命性的技术,其地位已被确立,这表现在以下几个方面:1.计算机产业的许多大公司购买了Java的许可证,包括IBM,Apple,DEC,Adobe,SiliconGraphics,HP,Oracel,Toshiba,以及最不情愿的Microsoft。这一点说明,Java已得到了工业界的认可。2.众多的软件开发商开始支持Java的软件产品。例如:Borland公司正在开发的基于Java的快速应用程序开发环境Latte,预计产品会在1996年中期发布。Borland公司的这一举措,推动了Java进入PC机软件市场。Sun公司自己的Java开发环境JavaWorkshop已经发布。数据库厂商如:Illustra,Sysbase,Versant,Oracle都在开发CGI接口,支持HTML和Java。今天是以网络为中心的计算时代,不支持HTML和Java,应用程序的应用范围只能限于同质的环境(相同的硬件平台)。3.Intranet正在成为企业信息系统最佳的解决方案,而其中Java将发挥不可替代的作用。Intranet的目的是把Internet用于企业内部的信息系统,它的优点表现在:便宜,易于使用和管理。用户不管使用何种类型的机器和操作系统,界面是统一的Intrnet浏览器,而数据库、Web页面、应用程序(用Java编的Applet)则存在WWW服务器上,无论是开发人员,还是管理人员,抑或是用户都可以受益于该解决方案。Java语言正在不断发展和完善,Sun公司是主要的发展推动者,较通用的编译环境有JDK(JavaDevelopKit)与JWS(JavaWorkshop)。还有很多其他公司正在开发Java语言的编译器与集成环境,预计不久Java语言的正确性与效率都将会提高,用户用Java编程和现在用C++编程一样方便。
2、Java语言的特点
Java到底是一种什么样的语言呢?Java是一种简单的面象对象的分布式的解释的健壮的安全的结构中立的可移植的性能很优异的多线程的动态的语言。
3、简单
Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。Java语言的简单性主要体现在以下三个方面:1.Java的风格类似于C++,因而C++程序员是非常熟悉的。从某种意义上讲,Java语言是C及C++语言的一个变种,因此,C++程序员可以很快就掌握Java编程技术。2.Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。3.Java提供了丰富的类库。
4、面向对象
面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。Java支持静态和动态风格的代码继承及重用。单从面向对象的特性来看,Java类似于SmallTalk,但其它特性、尤其是适用于分布式计算环境的特性远远超越了SmallTalk。
5、分布式
Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。为分布环境尤其是Internet提?copy;动态内容无疑是一项非常宏伟的任务,但Java的语法特性却使我们很容易地实现这项目标。
6、健壮
Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这项功能特征大大缩短了开发Java应用程序的周期。Java提供Null指针检测数组边界检测异常出口字节代码校验
7、结构中立
另外,为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码。现在,Java运行系统有Solaris2.4(SPARC),Win32系统(Windows95和WindowsNT)等.Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。
8、安全
Java的安全性可从两个方面得到保证。一方面,在Java语言里,象指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和一些浏览器本身提供的功能结合起来,使它更安全。Java语言在你的机器上执行前,要经过很多次的测试。它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。
9、Byte-code校验
如果byte-code通过代码校验,没有返回错误,我们可知道:代码没有堆栈上溢出和下溢出所有操作代码参数类型都是正确的没有发生非法数据转换,如将整数转换成指针。访问对象操作是合法的
10、类装载
ClassLoader通过将本机类与网络资源类的名称分开,来保持安全性。因为调入类时总要经过检查,这样避免了特洛伊木马现象的出现。从网络上下载的类被调进一个与源相关的私有的名字域。当一个私有类访问另一个类时,build-in(本机类)首先被检查,然后检查相关的类。这样就避免了破坏本机类情况的出现。
11、可移植的
同体系结构无关的特性使得Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,这成为Java应用软件便于移植的良好基础。但仅仅如此还不够。如果基本数据类型设计依赖于具体实现,也将为程序的移植带来很大不便。例如在Windows3.1中整数(Integer)为16bits,在Windows95中整数为32bits,在DECAlpha中整数为64bits,在Intel486中为32bits。通过定义独立于平台的基本数据类型及其运算,Java数据得以在任何硬件平台上保持一致。Java语言的基本数据类型及其表示方式如下:byte8-bit二进制补码short16-bit二进制补码int32-bit二进制补码long64-bit二进制补码float32-bitIEEE754浮点数double32-bitIEEE754浮点数char16-bitUnicode字符。
在任何Java解释器中,数据类型都是依据以上标准具体实现的。因为几乎目前使用的所有CPU都能支持以上数据类型、8~64位整数格式的补码运算和单/双精度浮点运算。Java编译器本身就是用Java语言编写的。Java运算系统的编制依据POSIX方便移植的限制,用ANSIC语言写成。Java语言规范中也没有任何\"同具体实现相关\"的内容。
12、解释的
Java解释器(运行系统)能直接运行目标代码指令。链接程序通常比编译程序所需资源少,所以程序员可以在创建源程序上花上更多的时间。
13、高性能
如果解释器速度不慢,Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。翻译目标代码的速度与C/C++的性能没什么区别。
14、多线程
Java的多线程功能使得在一个程序里可同时执行多个小任务。线程--有时也称小进程--是一个大进程里分出来的小的独立的进程。因为Java实现的多线程技术,所以比C和C++更键壮。多线程带来的更大的好处是更好的交互性能和实时控制性能。当然实时控制性能还取决于系统本身(UNIX,Windows,Macintosh等),在开发难易程度和性能上都比单线程要好。任何用过当前浏览器的人,都感觉为调一副图片而等待是一件很烦恼的事情。在Java里,你可用一个单线程来调一副图片,而你可以访问HTML里的其它信息而不必等它。
15、动态
Java的动态特性是其面向对象设计方法的发展。它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。在C++程序设计过程中,每当在类中增加一个实例变量或一种成员函数后,引用该类的所有子类都必须重新编译,否则将导致程序崩溃。Java从如下几方面采取措施来解决这个问题。Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。这样,一个在存储器生成的对象不在编译过程中决定,而是延迟到运行时由解释器确定的。这样,对类中的变量和方法进行更新时就不至于影响现存的代码。解释执行字节码时,这种符号信息的查找和转换过程仅在一个新的名字出现时才进行一次,随后代码便可以全速执行。在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。Java还简化了使用一个升级的或全新的协议的方法。如果你的系统运行Java程序时遇到了不知怎样处理的程序,没关系,Java能自动下载你所需要的功能程序。
16、与C和C++语言的异同
Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。C++安全性不好,但C和C++还是被大家所接受,所以Java设计成C++形式,让大家很容易学习。Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,Java去掉了以下几个C和C++功能和特征:指针运算结构typedefs#define需要释放内存全局变量的定义这个功能都是很容易引起错误的地方。
17、Web浏览
Web浏览是现在国际网甚至局域网的主要使用方式。文档能很容易地显示文本和各种图片,他还能提供超文本链接。这些浏览器调用HTML语言写的文档,HTML/WWW浏览器技术只限于文本和图象。如果你想播放一种声音或运行一个演示程序,你不得不下载那个文件并用你本机上的能理解和运行那个文件格式的程序来播放它。Java程序和它的浏览器HotJava,提供了可让你的浏览器运行程序的方法。你能从你的浏览器里直接播放声音。你还能播放页面里的动画。Java还能告诉你的浏览器怎样处理新的类型文件。当我们能在2400baud线上传输视频图象时,HotJava将能显示这些视频。
18、网络应用系统
Java是一种与平台无关的语言,因此用Java开发的网络应用系统可以在各种平台上运行,大大增加了开发效率,减少重复劳动。而且,Java集成的网络功能分有利于开发网络应用系统。
参考资料: http://www.enet.com.cn/article/2007/0803/A20070803756459.shtml
vb vc 全部只能运行在windows上...
java除了运行在windows上..还能运行在linux/unix/macos上....
作为服务器..相对来说 linux/unix比windows要稳定一点...所以大型的web应用....用java的比较多...
至于做UI界面..额..算了....还是不要用java了....