理解C#,也要明白诞生C#的.NET的一些东西。
在一个软件系统中,电脑硬件+操作系统提供基本的功能,而我们代码开发出来的程序,都是基于操作系统提供的基本功能上做进一步的逻辑设计。不同的操作系统提供的基本功能是有差异的,所以针对一款操作系统开发的软件,一般都不能在其他系统中运行。打个比方来说吧,为iPhone开发的程序,不能直接在安卓的手机上用,Linux上开发的东西,也不能直接在Windows上用。
但是JAVA就是一个异类。JAVA通过在操作系统之上再架构一层中间层(也就是虚拟机概念),将多种不同的操作系统的有差异的基础操作规范成一种统一模式,所以JAVA的软件一旦开发,可以在多达N中的不同系统中运行。手机种类繁多的时代,软件开发商不可能为每种OS都开发一版本软件,多数选择JAVA就是这个原因。JAVA的跨平台虚拟机概念使之广为流行。
微软早先作为操作系统的龙头老大,本不在意跨平台问题,但是随着地位受冲击,也意识到跨平台的重要性,这也怪微软自己,单就Windows家族,前后版本就出现了一些不兼容。为了能学习JAVA的经验,微软推出了自己的操作系统之上的跨平台统一中间层系统.NET,试图通过捆绑到个版本Windows中,提供一致的应用接口,这样,只要是.NET开发人员,不必担心自己的产品最终应用在什么操作系统中,只要目标操作系统装了.NET,就OK.
C#是推出.NET的时候一并诞生的,可以说是单就语言技术、风格、严谨等特点上来说,编程语言中最为优秀的一种语言,甚至由它而引发出计算机语言界中的多种新的规范和特征。我们知道多数C#编译器都只是运作于.NET平台上的,但并不是说C#只能运作于.NET平台上,只要有人愿意,就可以开发一个运作于非.NET平台上的C#编译器。只是C#还有一个很特殊的问题,即它仍然在不断的发展中,新的语言细节不断地推出,比如直接支持SQL的LINQ语法等等,除了设计该语言的微软,其他公司很难有这个实力开发其它平台的C#开发环境。
微软是做Windows的,在他眼中,其他操作系统都是敌人。敌人如果想要加入微软阵营,享用Windows程序,就只有选择让微软给他们的系统中套上.NET的头套;微软是不肯直接把开发宝器C#随便给他们的。Linux显然目前并不支持.NET平台(主要还有个原因就是Linux是免费的,.NET上的产品多是收费的,不融洽),所以就现状而言,C#在Linux上暂时无法使用(不是不能)。
真正意义上的跨平台是说类似于JAVA虚拟机,.NET平台这样的中间层产品,或者是某种软件,有多种客户端在不同的平台上但是却都可以工作。简言之,跨平台是指一种软件产品的特性。而语言只是一种开发产品的工具。你可以用这种工具去开发一个跨平台的产品,可以用多种不同的工具,却只开发出同样一种平台的产品。。。
C#优势其他两位也都说了,智能,强大(就是高级了)。最NB的还在于这个语言仍然在进化中,而很多其他语言已经基本上成型,以后不再会有什么改进了。C#锻炼人逻辑思维的能力最好。虽然它目前仍然主要被绑在.NET平台中使用,如果你要做一些iOS,Linux开发可能还用不上,执行效率也不是最高的,但是从软件开发者角度而言,开发一款软件,开发效率最高的选择!(底层驱动这样软件例外)
1.基于JAVA技术就是在java虚拟机里运行的各种系统,使用java的类库
2.JAVA技术有什么特点
a. JAVA技术最大的特点是平台无关性,所以不会局限于某 种操作系统(window),不会受制于人
b. 另外一个特点是技术开源性,开发人员可以清楚地看到技术的实现并可以根据自己的需要修改,这是许多大的公司首要考虑的
c.免费的
d.安全的 windows 病毒多阿
简单来说, Tomcat就是一e68a843231313335323631343130323136353331333234323632个容器, Engine/Host/Context这些都是容器中的容器, 用来承载java应用. 可以认为Tomcat就应用的装载容器.
下面就简单介绍一下Tomcat中的几个基本概念.
Tomcat其实就是一堆组件的集合, 可以从%CATALINA_HOME%/conf/server.xml看出, 该文件里出现了////等标签, 其实这些就是tomcat中的组件.
元素代表整个Catalina Servlet容器, 是最上层的元素, 下面允许存在一个或多个, 而则可以当作服务看待, 其下只允许一个存在/多个元素存在, 多个connector共享一个engine.元素负责接受和处理用户请求并返回响应结果.则表示一个虚拟主机, 一个下面语序一个或多个存在, 则表示一个具体的应用, 应用部署在一个context中, 下可以存放一个或多个.
jdk是java devolop kit -- java开发包
j2sdk是java 2 software devolop kit -- java2软件开发包
实际上jdk和j2sdk是基本同样的。
j2sdk呢有几个版本对应于java2的几个版本,其中j2ee需要用到开发工具就是J2eesdk了,只不过大部分应用服务器(weblogic jboss等)都内置了j2eesdk。
当然了,j2sdk标准版是基础,所以要安装先;j2eesdk因为是企业应用嘛,所以是注册后才能下载
至于jre是java runtime envionment -- java运行环境,jdk中包括了它,但是对于不需要开发只是运行的用户是可以只单独安装jre的,所以sun提供了jre的下载。
GC garbage collection,垃圾回收,使用gc可以进行垃圾空间的释放
JVM java虚拟机
解释执行 也就是编译成class文件然后虚拟机执行
分派 不明确。。
java程序的运行平台.JAVA程序不像其他编译程序是在物理的CPU上运行.而是运行在一个软件虚拟出的CPU上运行.JAVA这样做的好处是虚拟CPU只要能运行在不同CPU或操作系统上,JAVA程序就能运行在不同平台上,这样就是实现跨平台.
JAVA虚拟机是 模拟JAVA命令为CPU命令 VMware是模拟子系统 为母系统 功能上来讲是一类东西 都是硬件翻译层