我目前在大学学习计算机科学,他们主要教授 Java 标准版,我看到在业界使用的不多,而是使用 Java EE。如果我的大学教我 Java SE 而不是 Java EE,这是否会降低我的就业率?
究竟有什么区别?不同的语法?不同的编程方式还是什么?
我目前在大学学习计算机科学,他们主要教授 Java 标准版,我看到在业界使用的不多,而是使用 Java EE。如果我的大学教我 Java SE 而不是 Java EE,这是否会降低我的就业率?
究竟有什么区别?不同的语法?不同的编程方式还是什么?
出于所有意图和目的,Java 和 Java SE 是一回事。当您说您正在学习 Java SE 时,这意味着您正在学习 Java、它的语法、特性和标准库。在学习这些技能之前,您无法学习 Java EE。
Java EE 是一组标准,它定义了许多不同的接口和特性,用于构建软件以解决企业级问题。其中包括事务、分布式计算、消息传递、Web 应用程序和资源管理等。所有这些都在托管环境中提供。所有这些都是用 Java 语言编码的,由于软件运行的环境而具有特定的规则和特征。
将学习 Java SE 视为学习驾驶汽车。Java EE 就像学习驾驶 18 轮车,您不需要知道如何从 A 到 B,但如果您必须随身携带 10 吨货物,它肯定会有所帮助 8-)
Java SE 包含标准 Java 库:所有基础、容器、网络、GUI 等。它主要用于桌面应用程序和浏览器小程序。
Java EE 添加了一个服务器框架。当您在服务器中谈论 Java 时,这就是您所指的。这是一个巨大的图书馆,有很多很多预先建立的“最佳实践”。在 JIT 还很年轻的时候,Java EE 的高度可扩展设计使它在服务器中非常受欢迎,除了 JVM 的(当时显着的)开销。
我还没有真正使用过 Java EE。但我认为最好先学习Java SE,然后再学习Java EE。这需要更多时间;但可以让你更好地理解什么是语言,什么是框架。
如果我的大学教我 Java SE 而不是 Java EE,这是否会降低我的就业率?
不,这就是你的大学应该做的:专注于基础。在 Java 的情况下,这主要是指标准版本。
Java EE(不是J2EE;请参阅我在问题中的评论)添加了一些服务器端 Java API、规范和库。其中最重要的是Servlet API 和JSP容器规范。但我认为重要的是要知道,即使在服务器端,它仍然主要是关于标准 Java!很有可能您无需学习大多数 Java EE 技术(例如 Enterprise Java Beans (EJB))就可以进行服务器端 Java 开发,尤其是随着替代的轻量级方法的兴起,例如支持POJO和Hibernate用于持久层。Java EE 的许多部分(如 EJB)肯定早已过了炒作周期的顶峰。您甚至可能不需要完全了解所有“低级” Servlet 和 JSP 内容,因为诸如Struts、JSF或Wicket等高级框架已经变得流行起来。
一个案例研究:我在大学里学习了 Java(和 OO 编程)的基础知识——而关于企业版的知识很少(而且没有任何实际意义)。现在我已经作为“Java EE 开发人员”工作了 4 到 5 周,也就是说,做服务器端 Java。我从未真正使用过 EJB 或大多数其他 Java EE 技术。我主要做的是纯Java(即标准版),其中包含一些JSP、Servlet、过滤器等相关的东西(当然还有HTML、JS、CSS等网络技术);利用大量(主要是开源的)第 3 方库,并根据需要获取所有内容。(但是,我计划复习我对 Java EE 的了解,并在某个时候参加 SCWCD ——我认为即使 Java SE 有很长的路要走,那也会对我有好处 :)
这就是我的看法。
您所知道的编程语言称为 Java。
与大多数其他编程语言一样,它也捆绑了许多标准库。
Java SE 是语言和某些库的结合,使一般应用程序开发成为可能。
Java EE 是另一组库,您可以将其与 Java SE 结合使用来开发企业/Web 应用程序。
在我看来,大学的真正意义在于教你在基础知识和概念上变得强大,而不一定是教你在工作中需要的确切技能。所以最重要的是,我建议您确保您正在学习企业应用程序需求中的概念(例如事务、消息传递队列/主题等......)但是,如果这真的是您关心的问题,我建议您这样做自学(可能获得课程学分)。另外,试着找一个实习,让你玩一些 Java EE 代码。
当我快要大学毕业时,我也在问自己同样的问题。我现在在 Java EE 环境中工作,并且有一些学习曲线来使用 Java EE 库。我必须同意许多其他人的观点,并说与我从事的其他项目相比,进行企业 Java 开发并不是很有趣,所以你可能想在大学里继续玩得开心,把无聊的事情推迟到你参与的时候的劳动力。
来自维基百科:
Java 平台(企业版)与 Java 标准版平台 (Java SE) 的不同之处在于它添加了库,这些库提供了部署容错、分布式、多层 Java 软件的功能,主要基于在应用程序服务器上运行的模块化组件.
语法是一样的。你学到的有关 Java SE 的一切都将适用于 Java EE。它只是添加了一堆新的 API,并要求一种非常适合特定类型问题的应用程序设计风格。这类问题(大型、容错、分布式、可扩展、多层……)以及如何解决这些问题才是 Java EE 的真正意义所在,而不是碰巧成为规范一部分的实际 API。
请记住,CS 学位不是职业学位。它旨在教您如何学习和思考,而不是培训您为特定行业利基量身定制的特定技能。
Java 语言本身就是 Java 开发的一个方面。使用标准版构建的应用程序可以满足某些需求。如果您只知道标准版,则认为您可以使用企业版“随手拍”,这是一种误解。图书馆创造了语言。尽管 Java EE 的某些方面有其(当之无愧的)批评者,但其中仍有大量功能。即使是有问题的零件仍然在该行业中大量使用。
Java EE 只是 Java SE(企业库,如 servlet)的超集。学习 Java SE,你最了解 Java EE。
我认为您误解了 Java SE(或“Core Java)”和 Java EE 的关系。
核心 Java 对学习很重要,也是大多数学校都会教给你的。
由于编程围绕使用轮子而不是重新发明轮子进行,因此通常有一些库包含用于完成复杂任务的代码。
例如,一些学校教人们使用随 Java 提供的 AWT 或 Swing 类库来构建 GUI,尽管还有其他选择。
Java EE 虽然由额外的软件支持以在服务器上运行程序,但可以更多地被认为是类和相关服务的库。您仍然不断地使用 Java,您只需使用一个流行且受 Sun 支持的库。您还将看到不属于 Java EE 的 Hibernate 和 Spring。
大多数地方首先要确保您的 Java 是可靠的。当您开始工作时,您将获得使用 Java EE 特定部分的经验。