Java语言
Java语言来自于Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们就可以把email发给电冰箱、电视机等家用电器。对他们进行控制和信息交流。开始,准备用C++,但C++太复杂,安全性差,最后用一种新的语言Oak(Java的前身),Oak 是一种用于网络的精巧而安全的语言,Sun公司曾依此投标一个交互式电视项目,但被SGI打败。可怜的Oak几乎无家可归,恰巧这时Mark Ardreesen开发的Mosaic和Netscape启发了Oak项目组成员,他们用(Java)编制了HotJava浏览器,得到了Sun首席执行官Scott McNealy的支持,触发了Java进军Internet。Java的取名有一段趣闻:有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎样,得到了其他人的赞赏,于是,Java这个名字就这样传开了。
Java的特点:
1. 简单性:风格类似于C++,Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。
2. 面向对象:Java是一种完全面向对象语言。从这点来看,Java类似于SmallTalk,但其特性、尤其是适用于分布式计算环境的特性远远超越了SmallTalk。
3. 分布式:Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。
4. 健壮:Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。
5. 结构中立:Java将程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都执行这种中间代码。这种中间语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。
6. 安全:
1)删除了香指针和手动释放内存等功能,避免了非法内存操作。
2)当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来。
Java在机器上执行前,要经过很多测试,它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。
7. 可移植的:同体系结构无关的特性使得Java应用程序可以在配备Java解释器和运行环境的任何计算机系统上运行。任何Java代码会被解释成一种中间语言,然后通过不同机子的特定环境(如机器指令)运行程序。实现方便移植的特点。
8. 解释性。Java解释器能直接运行目标代码指令。链接程序通常比编译程序所需资源少。
9. 高性能。如果解释器速度不慢,Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。
10. 多线程:Java提供的多线程功能使得在一个程序里可同时执行多个小任务。多线程带来的更大好处是更好的交互性能和实时控制性能。
11. 动态:动态特性允许程序动态地装入运行过程中所需要的类。在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。
Java在诞生之后不久,便受到广大群众的欢迎,甚至有人说出有了Java,可以不要C/C++了。一度把Java提到了很高的地位。这当然是对Java 的一种赞赏,只是有点过了。到今天,Java依然不能取代C,C++,而且还出现了新的对手――.Net(后面将会介绍)。
Java目前主要应用:Web浏览器、网络应用系统。
C#语言。
C#是一种精确、简单、类型安全、面向对象的语言。说到C#,就不得不先简单介绍一下.net。到底什么是.net呢,按照微软总裁兼首席执行官 Steve Ballrner把它定义为:.Net代表一个集合,一个环境,它可以作为平台支持下一代Internet的可编程结构。C#是.net的代表语言。
C#的特点:
1. 完全面向对象。
2. 支持分布式,之所以有C#,是因为微软相信分布式应用程序是未来的趋势,即处理过程分布在客户机和服务器上。所以C#一出生就注定了能很好解决分布式问题。
3. 跟Java类似,C#代码经过编译后,成为了一种IL(中间语言)。在运行时,再把IL编译为平台专用的代码。
4. 健壮,C#在检查程序错误和编译与运行时错误一点也不逊于Java,C#也用了自动管理内存机制。
5. C#不像Java那样完全摒弃了指针和手动内存管理。C#默认情况下是不能使用指针的,程序员在有必要时可以打开指针来使用。这样可以保证编程的灵活性。
6. 安全性:C#的安全性是有.net平台来提供的。C#代码编译后成为IL语言。是一种受控代码,.net提供类型安全检查等机制保证代码是安全的。
7. 可移植性:由于C#使用类似Java的中间语言机制。使得C#也跟Java类似,可以很方便的移植到其他系统。在运行时,再把中间代码编译为适合特定机器的代码。
8. 解释性:C#也是一种特殊的解释性语言。
9. 高性能:C#把代码编译成中间语言后,可以高效的执行程序。
10. 多线程:与Java类似,可以由一个主进程分出多个执行小任务的多线程。
11. 组件模式:C#很适合组件开发。各个组件可以由其他语言实现的,然后集成在.net中。
C#是在Java流行起来后所诞生的一种新的语言。由于微软在操作系统上占有很大的优势。在以往的开发中累积了不少经验,所形成的.net平台,所以C# 在Windows方面可以说比Java具有更大的优势。如果单纯从技术上来讲,C#在网络编程上可以与Java匹敌。C#还在Windows Forms也有一定的优势。
C#是一种非常类似于C++的语言,风格是更接近于Java,不管是C++程序员还是Java程序员,都可以很方便的转到C#上来。
C#的强大是依赖于.net的发展,而.net的发展是看微软在.net上的决心和投入有多少。从Windows 2003和Vista系统可以看出(前者内置.net1.1,后者内置.net2.0。).Net在Windows编程中具有重要的战略意义。
C#目前主要是应用在网络编程上,其他领域比如数据库、窗体编程,都逐渐在增大。
终于写完了各种语言的特点。如果读者对以上观点不同意,请留言。别BS我就对了。好了。继续,我该讲主题了!