我目前正在大学学习计算机科学,他们主要教授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 Bean(EJB))即可进行服务器端Java开发 - 特别是随着替代的轻量级方法的出现,例如支持POJO,Hibernate用于持久化层.像EJB这样的Java EE的许多部分肯定已经超过了他们的炒作周期的高峰期.您可能甚至不需要彻底了解所有"低级"Servlet和JSP内容,因为Struts,JSF或Wicket等高级框架已经变得流行.
一个案例:我在大学里学到的Java(和面向对象编程)的基础-只有非常少(并没有什么实际的)对企业版.现在我作为"Java EE开发人员"工作了4-5,即做服务器端Java.我从未真正使用过EJB或大多数其他Java EE技术.我主要做的只是纯Java(即标准版),有一些JSP,Servlets,Filters等相关内容(当然还有HTML,JS,CSS等网络技术); 利用大量(主要是开源的)第三方库,并根据需要拾取所有内容.(但是,我打算提高我对Java EE的了解,并在某些时候采用SCWCD - 我认为即使Java SE走了很长的路,这对我也有好处:)