java和C和PHP和各种数据库优缺点.pdf
Java优点:
Java是一种跨
平台,适合于分布
式计算环境的面向
对象编程语言下面
我们将重点介绍
Java语言的面向对
象、平台无关、分
布式、多线程、可
靠和安全等特性。
1.面向对象
面向对象其实
是现实世界模型的
自然延伸。现实世
界中任何实体都可
以看作是对象。对
象之间通过消息相
互作用。另外,现
实世界中任何实体
都可归属于某类事
物,任何对象都是
某一类事物的实
例。如果说传统的
过程式编程语言是
以过程为中心以算
法为驱动的话,面
向对象的编程语言
则是以对象为中心
以消息为驱动。用
公式表示,过程式
编程语言为:程序=
算法+数据;面向对
象编程语言为:程
序=对象+消息。
2.平台无关性
Java是平台无
的语言是指用
Java写的应用程序
不用修改就可在不
同的软硬件平台上
运行。Java主要靠
Java虚拟机(JVM)
在目标码级实现平
台无关性。JVM是
一种抽象机器,它
附着在具体操作系
统之上,本身具有
一套虚机器指令,
并有自己的栈、寄
存器组等。但JVM
通常是在软件上而
不是在硬件上实
现。(目前,SUN系
统公司已经设计实
现了Java芯片,主
要使用在网络计算
机NC上。
3.分布式
分布式包括数
据分布和操作分
布。数据分布是指
数据可以分散在网
络的不同主机上,
操作分布是指把一
个计算分散在不同
主机上处理。Java
提供了一整套网络
类库,开发人员可
以利用类库进行网
络程序设计,方便
得实现Java的分
布式特性。
4.可靠性和安全
性
首先,Java是
强类型的语言,要
求显式的方法声
明,这保证了编译
器可以发现方法调
用错误,保证程序
更加可靠;其次,
Java不支持指针,
这杜绝了内存的非
法访问;第三,Java
的自动单元收集防
止了内存丢失等动
态内存分配导致的
问题;第四,Java
解释器运行时实施
检查,可以发现数
组和字符串访问的
越界,最后,Java
提供了异常处理机
制,程序员可以把
一组错误代码放在
一个地方,这样可
以简化错误处理任
务便于恢复。上述
几种机制结合起
来,使得Java成为
安全的编程语言。
5.多线程
Java在两方面
支持多线程。一方
面,Java环境本身
就是多线程的。若
干个系统线程运行
负责必要的无用单
元回收,系统维护
等系统级操作;另
一方面,Java语言
内置多线程控制,
可以大大简化多线
程应用程序开发。
Java提供了一个类
Thread,由它负责
启动运行,终止线
程,并可检查线程
状态。Java的线程
还包括一组同步原
语。这些原语负责
对线程实行并发控
制。利用Java的多
线程编程接口,开
发人员可以方便得
写出支持多线程的
应用程序,提高程
序执行效率。
6.垃圾自动回
收
在Java中,编
程人员不必为内存
管理操心。Java系
统有一个叫做“无
用单元收集器”的
内置程序,它扫描
内存,并自动释放
那些不再使用的内
存块。
Java缺点:
1.缺少闭包:
闭包的缺失,使得
在Java中做任何
真正的函数式编程
都是不可能的。
2.缺少一等函
数:
在Java里,
要达到类似效
果的唯一方式,
是使用匿名内
部类的方法,这
是一个拙劣的
方法。
3.原生类型:
在Java中不是
一切皆对象。它
造成了传值与
传引用上的困
扰,原生类型数
据是通过值传
给方法的,而不
是通过对象传
递的。
4.受检查异