5

我目前在大学学习计算机科学,他们主要教授 Java 标准版,我看到在业界使用的不多,而是使用 Java EE。如果我的大学教我 Java SE 而不是 Java EE,这是否会降低我的就业率?

究竟有什么区别?不同的语法?不同的编程方式还是什么?

4

9 回答 9

18

出于所有意图和目的,Java 和 Java SE 是一回事。当您说您正在学习 Java SE 时,这意味着您正在学习 Java、它的语法、特性和标准库。在学习这些技能之前,您无法学习 Java EE。

Java EE 是一组标准,它定义了许多不同的接口和特性,用于构建软件以解决企业级问题。其中包括事务、分布式计算、消息传递、Web 应用程序和资源管理等。所有这些都在托管环境中提供。所有这些都是用 Java 语言编码的,由于软件运行的环境而具有特定的规则和特征。

将学习 Java SE 视为学习驾驶汽车。Java EE 就像学习驾驶 18 轮车,您不需要知道如何从 A 到 B,但如果您必须随身携带 10 吨货物,它肯定会有所帮助 8-)

于 2008-10-13T00:58:07.367 回答
11

Java SE 包含标准 Java 库:所有基础、容器、网络、GUI 等。它主要用于桌面应用程序和浏览器小程序。

Java EE 添加了一个服务器框架。当您在服务器中谈论 Java 时,这就是您所指的。这是一个巨大的图书馆,有很多很多预先建立的“最佳实践”。在 JIT 还很年轻的时候,Java EE 的高度可扩展设计使它在服务器中非常受欢迎,除了 JVM 的(当时显着的)开销。

我还没有真正使用过 Java EE。但我认为最好先学习Java SE,然后再学习Java EE。这需要更多时间;但可以让你更好地理解什么是语言,什么是框架。

于 2008-10-12T23:32:36.230 回答
8

如果我的大学教我 Java SE 而不是 Java EE,这是否会降低我的就业率?

不,这就是你的大学应该做的:专注于基础。在 Java 的情况下,这主要是指标准版本。

Java EE(不是J2EE;请参阅我在问题中的评论)添加了一些服务器端 Java API、规范和库。其中最重要的是Servlet API 和JSP容器规范。但我认为重要的是要知道,即使在服务器端,它仍然主要是关于标准 Java!很有可能您无需学习大多数 Java EE 技术(例如 Enterprise Java Beans (EJB))就可以进行服务器端 Java 开发,尤其是随着替代的轻量级方法的兴起,例如支持POJOHibernate用于持久层。Java EE 的许多部分(如 EJB)肯定早已过了炒作周期的顶峰。您甚至可能不需要完全了解所有“低级” Servlet 和 JSP 内容,因为诸如StrutsJSFWicket等高级框架已经变得流行起来。

一个案例研究:我在大学里学习了 Java(和 OO 编程)的基础知识——而关于企业版的知识很少(而且没有任何实际意义)现在我已经作为“Java EE 开发人员”工作了 4 到 5 周,也就是说,做服务器端 Java。我从未真正使用过 EJB 或大多数其他 Java EE 技术。我主要做的是纯Java(即标准版),其中包含一些JSP、Servlet、过滤器等相关的东西(当然还有HTML、JS、CSS等网络技术);利用大量(主要是开源的)第 3 方库,并根据需要获取所有内容。(但是,我计划复习我对 Java EE 的了解,并在某个时候参加 SCWCD ——我认为即使 Java SE 有很长的路要走,那也会对我有好处 :)

于 2009-04-22T20:45:18.147 回答
2

这就是我的看法。

您所知道的编程语言称为 Java。

与大多数其他编程语言一样,它也捆绑了许多标准库。

Java SE 是语言和某些库的结合,使一般应用程序开发成为可能。

Java EE 是另一组库,您可以将其与 Java SE 结合使用来开发企业/Web 应用程序。

于 2009-04-22T19:57:28.667 回答
2

在我看来,大学的真正意义在于教你在基础知识和概念上变得强大,而不一定是教你在工作中需要的确切技能。所以最重要的是,我建议您确保您正在学习企业应用程序需求中的概念(例如事务、消息传递队列/主题等......)但是,如果这真的是您关心的问题,我建议您这样做自学(可能获得课程学分)。另外,试着找一个实习,让你玩一些 Java EE 代码。

当我快要大学毕业时,我也在问自己同样的问题。我现在在 Java EE 环境中工作,并且有一些学习曲线来使用 Java EE 库。我必须同意许多其他人的观点,并说与我从事的其他项目相比,进行企业 Java 开发并不是很有趣,所以你可能想在大学里继续玩得开心,把无聊的事情推迟到你参与的时候的劳动力。

于 2008-10-13T00:28:42.870 回答
1

来自维基百科

Java 平台(企业版)与 Java 标准版平台 (Java SE) 的不同之处在于它添加了库,这些库提供了部署容错、分布式、多层 Java 软件的功能,主要基于在应用程序服务器上运行的模块化组件.

语法是一样的。你学到的有关 Java SE 的一切都将适用于 Java EE。它只是添加了一堆新的 API,并要求一种非常适合特定类型问题的应用程序设计风格。这类问题(大型、容错、分布式、可扩展、多层……)以及如何解决这些问题才是 Java EE 的真正意义所在,而不是碰巧成为规范一部分的实际 API。

请记住,CS 学位不是职业学位。它旨在教您如何学习和思考,而不是培训您为特定行业利基量身定制的特定技能。

于 2009-04-22T20:25:37.180 回答
1

Java 语言本身就是 Java 开发的一个方面。使用标准版构建的应用程序可以满足某些需求。如果您只知道标准版,则认为您可以使用企业版“随手拍”,这是一种误解。图书馆创造了语言。尽管 Java EE 的某些方面有其(当之无愧的)批评者,但其中仍有大量功能。即使是有问题的零件仍然在该行业中大量使用。

于 2008-10-12T23:30:24.097 回答
0

Java EE 只是 Java SE(企业库,如 servlet)的超集。学习 Java SE,你最了解 Java EE。

于 2008-10-12T23:18:19.690 回答
0

我认为您误解了 Java SE(或“Core Java)”和 Java EE 的关系。

核心 Java 对学习很重要,也是大多数学校都会教给你的。

由于编程围绕使用轮子而不是重新发明轮子进行,因此通常有一些库包含用于完成复杂任务的代码。

例如,一些学校教人们使用随 Java 提供的 AWT 或 Swing 类库来构建 GUI,尽管还有其他选择。

Java EE 虽然由额外的软件支持以在服务器上运行程序,但可以更多地被认为是类和相关服务的库。您仍然不断地使用 Java,您只需使用一个流行且受 Sun 支持的库。您还将看到不属于 Java EE 的 Hibernate 和 Spring。

大多数地方首先要确保您的 Java 是可靠的。当您开始工作时,您将获得使用 Java EE 特定部分的经验。

于 2009-04-22T20:43:00.650 回答