j2ee 和j2se有什么区别

2024-11-08 00:41:03
推荐回答(3个)
回答1:

给初学者之三:java企业级应用之硬件篇

总算讲到企业级应用了,内容开始逐渐有趣起来
java企业级应用分为硬件篇和软件篇
重点在软件,硬件是外延,严格地说与java没有必然联系。但是,由于java是网络语言,不了解硬件的一些基础知识。软件知道再多也没什么用,不要上了战场还不知道为什么而打仗。 硬件是软件的基础,在这个前提下,有必要专门花一点点篇幅来聊一下硬件。
硬件,简单地说就是我们实际生活中看得见摸得着的东西。也就是那些冰冷的机器,比如服务器,个人电脑还有网络交换机,路由器等等。
那么先抛开网络设备不谈,先来说说计算机电脑的历史
在很早很早以前,人类创造了第一台电脑,那时候的电脑只是一台用来计算的机器。无比大,无比重,无比傻,除了算其它屁事不会做,没有所谓的人工智能与计算机网络。但是总算是诞生了,虽然以今天的眼光去看那时候的机器巨傻无比。 只配叫做计算器而不是电脑,没有逻辑思维能力,只会死算。但千里之行,始于足下,反正是造出来了。
然后随着时间的推移,制造业发展发展发展。电脑性能逐渐得到提升,速度快了起来,成本也逐渐低了下来于是人们造出了第二台,第三台,第四台,第五台……第n台计算机。人们就造出了无数台计算机并使其成为一种产品。逐渐应用于许多复杂计算领域,不仅仅是科研,许多生产领域也开始出现计算机的影子
然后又随着时间的推移,人们发现不可能把所有的计算机都做成一个样子。因为各行各业对计算机性能的要求各不相同。于是开始把计算机划分档次,最简单地是按照计算机的大小划分。就是教科书上写的大型机,中型机,小型机 //个人感觉这样分纯粹扯淡,还以为是小孩子玩球,分为大球,中球和小球
但是不管怎样,计算机不再是千篇一律一个样子了。按照性能的不同,在不同领域,出现了满足符合不同要求的计算机。
几乎在同时,人们也开始考虑计算机之间通讯问题。人们开始考虑将不同的计算机连接起来,于是网线出现了,网络出现了。又随着网络的发展,出现了一下专门为了寻址而存在的机器。这就是路由器和交换机,然后又出现了一些公益性的组织或团体。他们制定了一系列的标准来规范以及管理我们的网络,于是3w出现了,计算机的网络时代来临了。
嗯,说到这里,计算机发展到今天的历史大概说完了。
我们来详细说说网络时代的计算机以及各个硬件供应商之间的关系。
前面说到了,计算机分为大型机,中型机和小型机……
但是现在市场上没有人这样分,要是出去买机器,对硬件供应商说。我要买一款中型机,或者说,我要买一款小型机,硬件供应商肯定会问问题。他们会问你买机器干什么用的?科学计算啊还是居家用,是作服务器啊还是图形设计。但不管怎样,简单地说大中小型机已经没有什么意义了。
我们按照使用范畴来划分
简单划分为:服务器,工作站还有微机
服务器(server)
服务器涵盖了几乎所有的大型机以及大部分中型机甚至一些小型机
用通俗点话说��衿骶褪悄掣龉�?4小时不间断运行提供服务的机器。比如卖飞机票(中航信),比如酒店预定(携程)。 比如提供门户站点相关服务(sina),比如电子商务(ebay,amazon,阿里巴巴)。这些服务对机器都有一些特定的要求,尤其强调安全和稳定。
工作站(workstation)
工作站其实是图形工作站的简称,说白了,就是某种功能极其强大的计算机。用于特定领域,比如工程设计,动画制作,科学研究等。
个人电脑/微机(pc)
计算机网络的最末端,这个应该不用我说太多了。网络时代的pc已经普及到千家万户。
说完了分类,我们就来说说各个硬件供应商
首先是服务器还有工作站
这两类硬件供应商主要是以下三家
Sun,IBM还有HP(惠普)
然后是PC
以前IBM还有PC事业部,现在被联想吞并了(蛇吞象)
现在国际市场上有联想和DELL(戴尔),目前戴尔还是国际老大,还有HP康柏
然后是网络,也就是路由器和交换机
这块市场嘛,Cisco(思科)Brocade(博科)还有McDATA三足鼎立
内核(CPU)
PC内核
主要是AMD和Intel,前者最近与Sun公司合作,Sun也有一部分单双核服务器用的是AMD的服务器与工作站内核。这一块与硬件厂商绑定,还是Sun,IBM,HP三家自己生产
题外
在一些大型主机应用市场,比如卖飞机票。德国的汉莎,中国的中航信,香港的国泰用的都是尤利(美国的公司,英文名我忘了)其它用的是IBM的机器,现在能做大型机的感觉似乎只有IBM可以,尤利已经快倒了,技术太落后了,现在他们的系统还是fortran写的,连c都不支持。
要特别说明的是,一个超大型主机然后多个小终端/pc的结构现在越来越没市场了。将来的趋势是用一整个包含多个服务器的分布式操作系统来取代这些大型主机。因为大型主机更新换代极其困难,一旦数据量超过了主机的处理能力。那么就要换主机,这个成本是极大的,但是如果用分布式操作系统。那就只需要增加小服务器就行了
硬件就大概说到这里,与大多数人没什么关系
因为大多数人压根不可能进入这些硬件领域,除非做销售
说了这么多,只是为了给软件部分打基础而已
//做嵌入式的除外

* 给初学者之四:java企业级应用之软件篇

嗯,说过了硬件就该是软件了。这篇是这个系列的重中之重
首先我们来说说什么是软件,统一一下概念
所谓软件通俗地说就是一套计算机程序。实现了某些功能的计算机程序。在很早很早以前,一台计算机的软件是不分层次结构的。一台计算机只有一个系统,这个系统既是操作系统又是应用软件,与硬件紧密绑定
后来经过许多年的发展发展发展。人们把一些与硬件紧密相连的又经常用到必不可少的功能做到一套程序中去。这一套程序就被人们称做操作系统。
另外一些可有可无的,不同工作适应不同环境的功能封装到另外一套程序中去。
而这一系列程序被人们称作应用软件
如下图:
-------------------------------------------
|应用软件:falshgat/IE/realplayer/winamp..|
-------------------------------------------
|操作系统:UNIX/Windows/Linux/Solaris... |
-------------------------------------------
前一篇我们知道,硬件分为服务器工作站与pc
其实无论哪种硬件的软件,都有操作系统与应用软件
ok,那下面我们来谈应用软件
在现在企业级应用中,我们的应用软件一般分为三层
三层分别是表示层,业务逻辑层,数据持久层
------------------------------
|表示层|业务逻辑层|数据持久层|
------------------------------
我们来说说三层中的代表软件
表示层
这一层一般在客户端pc机上,最常见的是IE浏览器,这就是表示层的软件。表示层是直接与使用者交互的软件。
业务逻辑层
这一层一般在服务器端,顾名思义,所有业务逻辑处理都在这一层完成。最典型的是appserver,比如IBM的websphere,BEA的weblogic还有tomcat/jboss等。这
一层也是三层中的重点,我们要说的大部分内容都是关于这一层的,这个等会再说。这一层就叫做中间层
数据持久层
这一层典型的就是数据库,一般也在服务器端。但该服务器一般与装业务逻辑层软件的服务器分开。当然你也可以用IO输入输出流往硬盘上写东西。但没人会建议你这么做,因为这样做你的数据缺乏管理,不管怎样 这一层要做的就是保存数据,业务逻辑层软件一般不负责保留数据。或者说业务逻辑层只负责暂时储存数据,一关机,业务逻辑层数据全部over了。那么数据的持久化(也就是储存数据)就必须要在这一层完成
下面放着这些概念不谈,我们来说说将来的趋势
趋势一:
瘦客户端,很早很早以前,当时C/S模式也就是client/server 。客户端软件大行其道的年代,一个pc用户,是采用一个傻终端连接到服务器上。然后进行相应的操作,最典型的就是我们上bbs经常用的c-term 。这就是那个时代的产物,同样还有我国现行的机票定座用的e-term 。后来呢,浏览器变得非常流行,人们发现,浏览器也能传递一些数据。虽然这些数据并不像那些终端那样准确,但应付大多数日常需求足够了。于是人们就提出一个瘦客户端概念,也就是说,将来表示层所有的其他软件疾挥?我们唯一需要的就是一个网页浏览器,然后通过浏览器输入ip地址连接到服务器。然后进行相关的操作,由于网页浏览器一般每个操作系统都有自带一个。这样做就达到了给我们客户端瘦身的目的(不需要安装额外软件) 这样模式被称作B/S模式,也就是browser/server模式。但需要指出的是,虽然瘦客户端是趋势,但并不代表胖客户端没有市场。尤其是一些复杂的业务操作,还是浏览器这种简单软件无法胜任的
趋势二:
傻数据库,ok,首先,我承认,这个名词是我发明的,但我实在无法找到一个更好的表达
什么是傻数据库,如果谁对数据库有所了解的话,就知道,以前的数据库有自己的一套管理体系,甚至有自己的客户端,比如oracle,mysql,sqlserver都有。在某个管理工具上写什么sql语句查询数据库是我们以前常做的事。那么将来我们提倡的是:将所有的业务逻辑封装到业务逻辑层去。
管理的事情由软件来做,由业务逻辑层的软件来做。
所谓傻数据库就是说,将来的数据库什么事都不用做,只用把数据给我保存好就行了,那些复杂的业务逻辑什么外键什么关联都没数据库什么事了,都交给业务逻辑层软件来做。
这样做的好处就是:我们就不需要这些该死难懂又复杂的数据库系列管理工具了,而且这些工具每个数据库都有自己的工具,完全不一样,乱七八糟,没有人喜欢面对他们。除了数据库维护人员,也就是DBA,我们是软件工程师,维护的事让他们去做。而且严禁数据库维护人员改动数据库的数据,他们只做备份,必要时候恢复一下就是了。
了解了这两个趋势之后,是不是有种砍头去尾保中间的感觉?
没错,未来的趋势就是中间件时代,中间件工程师将是未来计算机应用的主流
那再次统一一下概念,什么是中间件?
记得我上学的时候,看ibm的教材,看了半天中间件定义,就看懂记住一句话。
中间件是做别人不愿意去做的事情,现在想想,狗屁定义,呵呵
什么是中间件,中间件是业务逻辑层的应用软件,是处理业务数据与客户端之间业务逻辑的一种应用软件
一种提供网络服务的服务器端应用软件。举个非常简单的例子,网上银行,某个人想用IE进入工行的账户,然后转帐。在这个例子中,客户端表示层显然是IE,数据持久层显然是银行的核心数据库。
那么中间件是什么?中间件就是提供这种服务的系统
这三层的划分如下
------------------------------
|表示层 | 业务逻辑层 | 数据持久层 |
------------------------------
| IE | 网上银行 | 数据库 |
------------------------------

* 给初学者之五:企业级应用之中间件

前面一篇简单介绍了一下应用软件的分层

下面重点介绍一下中间件,也就是业务逻辑层的软件结构
从本系列第二篇我们知道,java程序是跑在虚拟机之上的
大致结构如下:
------------
| grogram |
------------
| 虚拟机 |
------------
| 操作系统 |
------------
也就是说操作系统先运行一个java虚拟机,然后再在虚拟机之上运行java程序。
这样做的好处前面也说过了,就是安全,一旦出现病毒或是其他什么东西。挂掉的是虚拟机,操作系统并不会受多大影响。
这时候有人可能会问,为什么非要虚拟机?把操作系统当成虚拟机为什么不行?
可以,当然可以,但是这样做某一个应用软件的bug就可能造成整个操作系统的死亡。比如说我们在某个服务器上安装了一个收发电子邮件的软件和java虚拟机。
那么一旦黑客通过收发电子邮件的软件入侵系统,那么操作系统就整个玩完。那么如果黑客通过java程序进行攻击的话,那么死的将会是虚拟机而不是操作系统。大不了虚拟机崩溃,而操作系统正常运行不受任何影响
举个简单例子,比如说最常见的是将数据库(DB)与中间件放在同一台服务器上
------------------------
| program | |
-----------| DB |
| 虚拟 .

回答2:

如果做c/s架构的话,j2se应该要精通
如果做b/s架构的话,j2ee要熟悉。
如果做手机的话,j2me会是你的选择

回答3:

前者是企业版(jdk+servletapi等)
后者是标准版(jdk)

企业版包含了标准版。