收藏 分销(赏)

java和C#和PHP和各种数据库优缺点.doc

上传人:xrp****65 文档编号:6540207 上传时间:2024-12-12 格式:DOC 页数:20 大小:33.35KB 下载积分:10 金币
下载 相关 举报
java和C#和PHP和各种数据库优缺点.doc_第1页
第1页 / 共20页
java和C#和PHP和各种数据库优缺点.doc_第2页
第2页 / 共20页


点击查看更多>>
资源描述
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.受检查异常:在代码里充斥大量的try...catch语句,这样做只是将捕的获异常,包装成运行时异常,然后再重新抛出,让接口缺少灵活性和可扩展性。 PHP优点: 1.良好的安全性 PHP是开源软件,所有PHP的源代码每个人都可以看得到,代码在许多工程师手中进行了检测,同时它与Apache编绎在一起的方式也可以让它具有灵活的安全设定,PHP具有了公认的安全性能。开源造就了强大,稳定,成熟的系统。 2.跨平台特性 PHP几乎支持所有的操作系统平台及数据库系统,并广为流行。 3.执行速度快,效率高 PHP是一种强大的CGI脚本语言,语法混合了C、Java、Perl和PHP式的新语法,执行网页速度比CGI、Perl和ASP更快,而且内嵌Zend加速引擎,性能稳定快速,占用系统资源少,代码执行速度快。PHP消耗相当少的系统资源。 4.很好的移植性和扩展性强 PHP具有很好的开放性和可扩展性,PHP可以运行在任何服务器上(不管是windows还是Linux)属于自由软件,其源代码完全公开,任何程序员为PHP扩展附加功能都非常容易。在很多网站上都可以下载到最新版本的PHP。目前,PHP主要是基于Web服务器运行的,支持PHP脚本运行的服务器有多种,其中最有代表性的为Apache和IIS。 5.支持面向对象 面向对象编程是当前的软件开发趋势,PHP对OOP提供了良好的支持。可以使用OOP的思想来进行PHP的高级编程,对于提高PHP编程能力和规划好Web开发构架都非常有意义。 PHP缺点: 1.对多线程不太支持:对多线程支持不太好,大多数时候只能简单的模拟去实现的。 2.对面向对象不太支持:对面向对象的支持不太好,相对于现在来说面向对象有了不少的提升。 3.编码规范不太统一:编码规范不统一,有的人直接拼接,有的人用下划线分开,有的人驼峰式,因为每个人都有自己的编码习惯。 4.语法不太严谨:变量不需要定义就可以使用,在java中变量是必须先定义以后才可以使用。 C#优点: 1.效率与安全性:   C#可以提高开发效率,因为开发者在不断缩短开发周期,不断推出应用程序的新版本。C#在设计时就考虑了这些问题。它使开发者用更少的代码做更多的事,同时也不易出错。 2.支持现有的网络编程新标准:   新的应用程序开发模型意味着越来越多地解决方案依赖于新出现的网络标准,例如HTML,XML,SOAP等。现存的开发工具往往都是早于Internet出现的,或者是在我们所熟知的网络还处于孕育期时出现的。所以,它们一般无法很好地支持最新的网络技术。 3.消除大量程序错误: C#消除了大量的程序错误。有些小错误会带来了难以预料的问题,有些甚至需要很长时间来寻找和解决。一旦一个程序作为产品来使用,就算最简单的错误纠正起来也可能要付出极其昂贵的代价。 4.对版本的更新提供内在的支持降低了开发成本 更新软件组件是一项很容易出错的工作,因为代码的修改可能无意间改变原有程序的语义。为协助开发者进行这项工作,C#为版本的更新提供内在的支持。例如,方法重载必须显式声明。这样可以防止编码错误,保证版本更新的灵活性。还有一个相关的特性就是对接口和接口继承的内在支持。这些特性使得C#可以开发复杂的框架并且随着时间不断发展更新它。 5.扩展交互性:   作为一种自动管理的,类型安全的环境,C#适合于大多数企业应用程序。但实际的经验表明有些应用程序仍然需要一些底层的代码,要么是因为基于性能的考虑,要么是因为要与现有的应用程序接口兼容。这些情况可能会迫使开发者使用C++, 即使他们本身宁愿使用更高效的开发环境。 C#缺点: 1. 底层和高性能不合适:不合适做时间性能很高(高速算法)或空间性能很灵活(内存立即释放)的程序,因为中间语言和编译过程,比C/C++Native类型的语言会慢一些,内存自动回收难以立即释放不需要的内存,不采用内联函数和析构函数。 2.Windows平台以外支持有限: mono不够成熟好用,window以外Java,Python等是很强大和同样优秀的。 MySQL优点: 1.MySQL是一个快速、多线程、多用户的SQL数据库服务器,支持正规的SQL查询语言和采用多种数 据类型,能对数据进行各种详细的查询等。 2.MySql的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务, 而不过多的系统资源。用多线程和C语言实现的MySQL能很容易充分利用CPU。 3.MySql可运行在不同的操作系统下。简单地说,MySQL可以支持Windows95/98/NT/2000以及UNIX、Linux和SUN OS等多种操作系统平台。这意味着在一个操作系统中实现的应用可以很方便地移植到其他的操作系统下。 4.MySQL有一个非常灵活而且安全的权限和口令系统,当客户与MySQL服务器连接时,他们之间所有的口令传送被加密,而且MySQL支持主机认证。   5.MySQL支持所有的ODBC 2.5函数和其他许多函数,这样就可以用Access连接MySQL服务器,从而使得MySQL的应用被大大扩展。 6.MySql支持大型的数据库, MySQL可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,MySQL可以针对不同的应用进行相应的修改。 7.MySql拥有一个非常地快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性。事实上,MySQL的稳定性足以应付一个超大规模的数据库。  8.MySQL具有强大的查询功能,MySQL支持查询的SELECT和WHERE语句的全部运算符和函数,并且可以在同一查询中混用来自不同数据库的表,从而使得查询变得快捷和方便。  MySQL的缺点:  1. MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变。  2. MySQL的另一个主要的缺陷之一是缺乏标准的RI(Referential Integrity-RI)机制;Rl限制的缺乏(在给定字段域上的一种固定的范围限制)可以通过大量的数据类型来补偿。  3. MySQL没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制。  4. MySQL不支持热备份。 SQLServer优点: 1. SQLServer是一个真正的客户/服务器体系结构,在这种体系结构中,包括多台计算机,其中处理应用程序,请求服务的计算机称为客户机,处理数据库的计算机称为服务器。 2. SQLServer具有图形化用户界面,使系统管理和数据库管理更加直观、简单,提供了表、视图和查询定义的图形界面,在Query Analyze的图形界面中使用SQL语言,服务器和数据库的用户配置的图形化界面。 3. SQLServer具有丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地,SQLServer提供了丰富的应用程序接口来访问服务器的数据,主要的访问方法有:ODBC API、OLE DB、Transact-SQL和DB-Library,客户机可以通过这些API作为动态连接库来使用,并通过客户端的网络库与SQLServer服务器通信。 4.SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等,与NT的安全性系统集成,利用NT的安全机制为服务器服务,利用NT的性能监测器和使用MS Index Server;与MS BackOffice产品集成,如MS IIS、MS Exchange Server等结合。SQLServer可以设置为用Exchange接收和发送电子邮件,用户可以通过邮件信息向SQLServer发送查询请求,查询结果能够通过电子邮件返回给用户。 5. SQLServer对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上,在Web Assistant中可以将数据库表中的数据引出来,还可以将HTML中的数据引入到数据库中。SQLServer的数据可以自动发行到Web页上;用户可以通过一个普通的浏览器来查询存储在SQLServer中的信息,因此可以用存储在SQLServer中的信息创建动态Web页。 6.SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。SQL Server2000中包括吸取和分析汇总数据以进行联机分析处理(OLAP)的工具,还包括一些工具可用于直观地设计数据库并通过English Query来分析数据。当同一数据库在同一时间用于完成两个任务时(输入事务和运行查询),数据库功能将受到很大影响,在一个大范围的查询可能需要运行几个小时,会锁定许多记录,这时数据输入就无法操作,为防止这种冲突,数据通常被拷贝到单独的数据库中,称为数据中心或数据仓库;一个数据中心通常包括一个企业所有待分析数据的一个子集一个数据仓库实质上通常包含了一个机构希望查询的所有数据。 7.SQLServer支持XML,SQLServer2000数据库引擎提供完整的XML支持,通过URL(Uniform Resource Locator,统一资源定位器)访问SQLServer,支持XML-Data模式,使用HTTP、ADO或OLE DB处理SQL Server2000的XML功能,如定义Server2000数据库的XML视图;可以通过XML对数据库表中的数据进行操作,插入、更新或删除,包括在单个操作中修改多个表中的多行。 SQLServer缺点: 1. SQLServer只能运行在微软的windows平台,没有丝毫的开放性可言。 2. SQLServer的并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。 3. SQLServer性能稳定性差,SQLServer当用户连接多时性能会变的很差,并且不够稳定。 4.SQLServer完全重写的代码,经历了长期的测试,不断延迟,许多功能需时间来证 明。并不十分兼容早期产品。使用需要冒一定风险。 5. SQLServer客户端支持及应用模式单一,只支持C/S模式。 Oracle优点: 1. Oracle 能够在所有主流平台上运行(包括 windows)完全支持所有工业标准采用完全开放策略使客户选择适合解决方案对开发商全力支持,同时也具有字符界面和图形界面,易于开发。 2. Oracle平行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。 3. Oracle提供了基于角色(ROLE)分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。 4. Oracle具有数据安全保护措施,没有读锁,采取快照SNAP方式完全消除了分布读写冲突。自动检测死锁和冲突并解决。同时Oracle获得了最高认证级别的ISO标准认证,数据安全级别为C2级(最高级)。 5. Oracle 性能高 保持开放平台下TPC-D和TPC-C世界记录,客户端支持及应用模式:Oracle 多层次网络计算支持多种工业标准用ODBC、JDBC、OCI等网络客户连接。 6.Oracle数据库内模支持多字节码制,支持多种语言文字编码。还支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。 7.Oracle提供了新的分布式数据库能力。可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。 8.Oracle支持大型数据库,数据类型支持数字、字符、大至2GB的二进制数据,为数据库的面向对象存储提供数据支持。 Oracle缺点: 1.Oracle操作比较复杂,同时提供GUI和命令行,在windowsNT和unix下操作相同,需要较高的技术含量。 2.使用Oracle的价格比较昂贵。 3.Oracle管理和护会比较麻烦。 4.Oracle对硬件的要求很高。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服