软件的C/S架构是什么意思 有哪些优缺点
展开全部
开发C/S架构可以采用多种语言,包括你提到的Java,C++,C#,以及Dephi等,采用不同的架构要按照你的项目的需要来,下面就你提出的JAVA和C++的优缺点做个分析吧,同时也介绍下C#语言。
Java语言是基于Java虚拟机的,它最大的优势在于一次编译,到处运行,它并不需要考虑各种系统之上的不同系统调用,所有的系统调用都可以通过底层的JVM的封装来完成,开发者在开发过程中不用考虑操作系统层面的编程知识,比如你在windows上开发的一个Java应用程序,在Linux系统上也是可以运行的,只需要给他对应的Java虚拟机就好了,同时Java的优势还在于它的开源和封装,Java提供了强大的类库支持,包括多线程,数据结构,socket编程等,让开发者可以把更多关注放在程序的编写基础之上,而不是放在实现一些底层的应用程序。同时Java还提供了垃圾回收机制,众所周知,在C++等一些需要维护内存的语言中,如何分配和释放内存是一个很让程序员头痛的问题,特别是在有服务的框架上,往往微小的程序泄漏将会带来巨大的问题,Java的垃圾回收机制很好帮助程序员解决这个问题。同时目前Java有比较良好的一些应用框架,可以用来快速搭建网络应用,例如对于企业级的开发,J2EE就是一个很好的选择。
C++的特质在于它的高效性,它是直接和底层打交道的语言,正如楼主所说,在网游之中,大部分都是采用c++来开发,因为游戏要求要有较高的运行效率和良好的用户体验,这点Java程序支持的并不好,而且往往在要求很高的某些算法部分还会采用C和汇编等更底层的语言来开发。C++的特性还在于它的面向对象的封装,这点和Java是类似的,但是它有兼有了C语言快速高效的特性,所以在开发类似网游,搜索等项目的时候,通常采用C++,C++和C一样,他们在跨平台项目的开发中会遇到一些问题,主要来自各个操作系统的支持和底层api调用的差异。
再说说C#,这个语言是微软今年来主推的一个平台,它是建立在.NET Framework之上的,C#在Visual Studio之上的良好兼容性让C#语言获得了快速上手的特性,同时由于其丰富的控件库,让C#语言得到很多开发者的青睐,同时C#语言对于制作C/S程序也是非常方便的,很多代码都是IDE直接生成的,开发者只需要实现部分逻辑,但是它的缺点也很明显,需要.NET Framework协助,否则无法运行,其次基本没有平台移植性,同时由于其采用类似Java的中间编码格式,也让C#语言运行效率较低。
如果想要学习计算机,我的建议是首先学习好相关的数学知识,包括离散数学等,这些知识都是计算机的基础,同时精通掌握一到两门语言是必要的,对于初学者建议学习C语言,C语言一方面比较接近底层,可以通过学习C掌握很多系统的底层知识,同时由于它的语法简单,上手也比较快,加上C语言上并没有类似Java,C#那样很多的类库,让初学者看起来比较透明,比较干净,更能从语言的角度去理解。同时我认为不管学习什么语言都好,计算机学科中算法和数据结构是最重要的,都说语言是表层,算法和数据结构才是核心,把握好了本质就可以以不变应万变,建议在学习语言的同时好好的掌握这2门基本学科。因为随着你的学习的深入,你会发现所有的操作都是建立在他们之上的。同时掌握好了C语言,反过来无论是学习Java还是C#都是很容易的,无非只是一个表达语言的转换。最后,个人认为如果只是要成为一个代码的编写者,学习Java和C#已经足够,因为他们的快速上手和强大的类库可以帮助开发者快速实现应用,但是如果要真正成为一名程序高手,良好的数据结构知识和算法掌握,以及C语言是必不可少的。
Java语言是基于Java虚拟机的,它最大的优势在于一次编译,到处运行,它并不需要考虑各种系统之上的不同系统调用,所有的系统调用都可以通过底层的JVM的封装来完成,开发者在开发过程中不用考虑操作系统层面的编程知识,比如你在windows上开发的一个Java应用程序,在Linux系统上也是可以运行的,只需要给他对应的Java虚拟机就好了,同时Java的优势还在于它的开源和封装,Java提供了强大的类库支持,包括多线程,数据结构,socket编程等,让开发者可以把更多关注放在程序的编写基础之上,而不是放在实现一些底层的应用程序。同时Java还提供了垃圾回收机制,众所周知,在C++等一些需要维护内存的语言中,如何分配和释放内存是一个很让程序员头痛的问题,特别是在有服务的框架上,往往微小的程序泄漏将会带来巨大的问题,Java的垃圾回收机制很好帮助程序员解决这个问题。同时目前Java有比较良好的一些应用框架,可以用来快速搭建网络应用,例如对于企业级的开发,J2EE就是一个很好的选择。
C++的特质在于它的高效性,它是直接和底层打交道的语言,正如楼主所说,在网游之中,大部分都是采用c++来开发,因为游戏要求要有较高的运行效率和良好的用户体验,这点Java程序支持的并不好,而且往往在要求很高的某些算法部分还会采用C和汇编等更底层的语言来开发。C++的特性还在于它的面向对象的封装,这点和Java是类似的,但是它有兼有了C语言快速高效的特性,所以在开发类似网游,搜索等项目的时候,通常采用C++,C++和C一样,他们在跨平台项目的开发中会遇到一些问题,主要来自各个操作系统的支持和底层api调用的差异。
再说说C#,这个语言是微软今年来主推的一个平台,它是建立在.NET Framework之上的,C#在Visual Studio之上的良好兼容性让C#语言获得了快速上手的特性,同时由于其丰富的控件库,让C#语言得到很多开发者的青睐,同时C#语言对于制作C/S程序也是非常方便的,很多代码都是IDE直接生成的,开发者只需要实现部分逻辑,但是它的缺点也很明显,需要.NET Framework协助,否则无法运行,其次基本没有平台移植性,同时由于其采用类似Java的中间编码格式,也让C#语言运行效率较低。
如果想要学习计算机,我的建议是首先学习好相关的数学知识,包括离散数学等,这些知识都是计算机的基础,同时精通掌握一到两门语言是必要的,对于初学者建议学习C语言,C语言一方面比较接近底层,可以通过学习C掌握很多系统的底层知识,同时由于它的语法简单,上手也比较快,加上C语言上并没有类似Java,C#那样很多的类库,让初学者看起来比较透明,比较干净,更能从语言的角度去理解。同时我认为不管学习什么语言都好,计算机学科中算法和数据结构是最重要的,都说语言是表层,算法和数据结构才是核心,把握好了本质就可以以不变应万变,建议在学习语言的同时好好的掌握这2门基本学科。因为随着你的学习的深入,你会发现所有的操作都是建立在他们之上的。同时掌握好了C语言,反过来无论是学习Java还是C#都是很容易的,无非只是一个表达语言的转换。最后,个人认为如果只是要成为一个代码的编写者,学习Java和C#已经足够,因为他们的快速上手和强大的类库可以帮助开发者快速实现应用,但是如果要真正成为一名程序高手,良好的数据结构知识和算法掌握,以及C语言是必不可少的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询