Java SE vs Java EE, college and career [closed]

I'm currently studying Computer Science at College where they mainly teach Java standard edition, I see that in the industry this isn't used much, instead Java EE is used. If my College is teaching me Java SE rather than Java EE does this make me less employable?

And what exact are the differences? different syntax? different way of programming or what?

Asked by: Anna221 | Posted: 23-01-2022

Answer 1

For all intents and purposes, Java and Java SE are the same thing. When you say you are learning Java SE, it means you are learning Java, its syntax, features and standard libraries. You cannot learn Java EE before learning these skills.

Java EE is a set of standards which define many different interfaces and features for building software to address enterprise level problems. These include things like transactions, distributed computing, messaging, web applications and resource management. All of which are provided in a managed environment. All of which is coded to the Java language, with particular rules and characteristics due to the environment in which the software will run.

Think of learning Java SE as learning to drive a car. Java EE is like learning to drive an 18 wheeler, you don't need to know how to do it to get from A to B, but it sure helps if you have to take 10 tons of cargo with you 8-)

Answered by: Lydia724 | Posted: 24-02-2022

Answer 2

Java SE contains the standard Java libraries: all the basics, containers, network, GUI, and so on. It's meant mostly for desktop apps and browser applets.

Java EE adds a server framework. When you talk about Java in the server, this is what you're referring to. It's a huge library, with lots and lots of pre-established 'best practices'. Back when JITs were still young, the heavily scalable design of Java EE made it very well-received in the server, besides the (then significant) overhead of JVM.

I haven't really used Java EE in anything serious; but I think it's better to learn Java SE first, and then Java EE. It takes more time; but lets you better understand what is the language and what is the framework.

Answered by: Fiona794 | Posted: 24-02-2022

Answer 3

If my College is teaching me Java SE rather than Java EE does this make me less employable?

No. That's what your university should do: focus on fundamentals. In the case of Java, that mostly means the standard edition.

Java EE (not J2EE; see my comment in the question) adds some server-side Java APIs, specifications and libraries. The most important of these are the Servlet API and JSP container specification. But I think it's important to know that even on the server side, it's still mostly about standard Java! It's quite possible that you'll do server-side Java development without ever needing to learn most Java EE technologies, like Enterprise Java Beans (EJB) - especially with the rise of alternative, lightweight approaches such as favouring POJOs, with Hibernate for persistence layer. Many parts of Java EE like EJB have definitely long passed the peak of their hype cycle. You may not even need to know all "lower-level" Servlet and JSP stuff thoroughly, as higher-level frameworks such as Struts, JSF, or Wicket have become popular.

One case study: I learned fundamentals of Java (and OO programming) at the university - and only very little (and nothing practical) about the Enterprise Edition. Now I've worked some 4-5 as "Java EE developer", that is, doing server side Java. I've never really used EJB, or most other Java EE technologies. I've mostly done just pure Java (i.e. standard edition), with some JSP, Servlets, Filters, etc related stuff thrown in (plus of course web techniques like HTML, JS, CSS); making use of lots of (mostly open-source) 3rd party libraries, and picking up everything as needed. (However, I am planning to brush up my knowledge of Java EE, and take the SCWCD at some point - I think that would do me good even if Java SE goes a long way :)

Answered by: Paul744 | Posted: 24-02-2022

Answer 4

In my opinion, university is really meant to teach you to be strong on the fundamentals and concepts not necessarily to teach you the exact skills you will need in a job. So most of all I would recommend that you make sure you're learning the concepts found in enterprise application requirements (e.g. transactions, messaging queues/topics, etc...) However, if this is really a concern for you I would suggest doing a self-study (possibly for course credit). Also, try to find an internship that will let you play in some Java EE code.

I was asking myself the same question when I was nearing the end of university. I'm now working in a Java EE environment and there was some learning curve to use the Java EE libraries. I have to agree with many others and say that doing enterprise java development is not very much fun compared to other projects I've worked on so you might want to keep having fun in university and put off the boring stuff for when you're part of the workforce.

Answered by: Thomas381 | Posted: 24-02-2022

Answer 5

This is how I view it.

The programming language as you know it is called Java.

Like most other programming languages, it also comes bundled with many standard libraries.

Java SE is the combination of both the language and certain libraries that makes general application development possible.

Java EE is another set of libraries that you can use in combination with Java SE to also develop enterprise/web applications.

Answered by: Thomas893 | Posted: 24-02-2022

Answer 6

From Wikipedia:

The Java platform (Enterprise Edition) differs from the Java Standard Edition Platform (Java SE) in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier Java software, based largely on modular components running on an application server.

The syntax is the same. Everything you learn pertaining to Java SE will apply to Java EE. It simply adds a pile of new APIs, and calls for a certain style of application design that is well-suited to specific types of problems. Those kinds of problems (large, fault-tolerant, distributed, scalable, multi-tier...) and how to solve them are really what Java EE is about, not the actual APIs that happen to be part of the specification.

Remember that a CS degree isn't a vocational degree. It is meant to teach you how to learn and think, not train you in a specific skill-set tailored for a certain industry niche.

Answered by: Ada897 | Posted: 24-02-2022

Answer 7

The Java language by itself is one aspect of Java development. Applications built with the standard edition fulfill certain needs. Thinking that you can just "wing it" with the enterprise edition if all you know is the standard edition, is a misconception. The libraries make the language. Although certain aspects of Java EE have their (deserved) critics, there is still a great deal of functionality there. Even the questionable parts are still used heavily in the industry.

Answered by: Alissa930 | Posted: 24-02-2022

Answer 8

Java EE is just a superset of Java SE (enterprise libraries such as servlets). Learn Java SE and you mostly know Java EE.

Answered by: Victoria737 | Posted: 24-02-2022

Answer 9

I think you are misunderstanding the relation of Java SE (or "Core Java) and Java EE.

Core Java is important to learn and is what most schools will teach you.

Since programming revolves around using wheels rather than reinventing them, there are usually libraries with code for accomplishing complex tasks.

For examples, some schools teach people to build GUIs using the AWT or Swing class library that are supplied with Java, although there are other options.

Java EE, while supported by extra software to run the program on servers, can be thought of more as a library of classes and related services. You still do Java constantly, you just use a popular and Sun supported library. You will also see Hibernate and Spring that are not part of Java EE.

Most places will first of all want to make sure that your Java is solid. As you start working, you will gain experience at using specific parts of Java EE.

Answered by: William665 | Posted: 24-02-2022

Similar questions

jakarta ee - OSGi and Java EE - JOSGiEE?

After reading this article, one question came to my mind: 'Is OSGi becoming a Java EE? Is OSGi going to replace Java EE? Is OSGi incrementing Java EE?' It's true that historically OSGi is totally different from Java EE, but considering now the resulting work from the EEG, some of these...

jakarta ee - Can Java Code tell if it is in an App Server?

Is there something I can call from a POJO to see if the code is currently in an App Server or outside of an App Server? Something like this (In rough PseudoCode): System.getRunningEnvironment().equals(Environment.Glassfish) or System.getRunningEnvironment().equals(Environment.ApplicationServer) or System.getRunningEnvironment().equa...

jakarta ee - Java Program, to monitor the website that i have made using J2EE

I had made my project in J2EE.. I wanted to keep track of who all visited my website,, with some specific information of theirs (for e.g. time they visited, IPAddress etc.. ) How can i do this with the help of java program,, I can store the information in the database. so what I need is the logic as to how can i retrieve the information of the person who visited the website. Tomcat Server,, and i am using ...

jakarta ee - Java web service client:

I'm developing a web service client that needs to execute operation exposed on tomcat with axis2. The client has all the wsdl files that are needed. I can't import them statically with netbeans or eclipse because the client needs to discover the wsdl at runtime (this has been already done) and then execute them in an fixed order... What should I do? My program is able to get those wsdl files but I don't know what to do wit...

jakarta ee - Java EE - find session size

Is there a way to programatically track the size of a particular session on a Java EE app server, or do I have to resort to the app server's vendor specific instrumentation to do this? Two scenarios: Track from within the application (a sort of JMX-type interface) Track from without (outside) - a generic piece of code that works on all app servers.

jakarta ee - Java EE6 over EE5?

We are at the edge of getting Java EE6 (with Glassfish v3 as reference implementation). Planned release is December 09. While still quite a number of companies are struggling to move their codebase to EE5 (from earlier versions), we are in the luxurious situation to start development of a new product and could choose to do it with EE6 as platform. That potentially avoids the migration effort at a later sta...

jakarta ee - Jetty JNDI Java Mail

I am using Jetty 7 with JBoss Seam and have 2 Java Mail Sessions configured, one for support notifications and another for general notifications. The problem I am having appears to be from JBoss Seam / JSF not being able to resolve the session which I set in the Event Context to the proper Java Mail Session prior to sending the email. Since it cannot resolve the session, it defaults to localhost on port 25....

jakarta ee - Java servlet context root

Is it permissible to have multiple entries as the context root of a servlet? For instance, all Sun examples use a single /catalog or something similar as the context root, but could it be /catalog/furniture as well? The Servlet 2.4 Specification is not specific here.

jakarta ee - gxt + Java EE hosted mode

I'm trying to develop a Java EE + gxt application. I have an rpc call which calls a session bean's method. If I compile the project and run it in the browser, it works fine, but when I use hosted mode I get an exception like this: (edited for readability) Exception while dispatching incoming RPC call ... Caused by: java.lang.NullPointerException: null at getU...

jakarta ee - Best OpenID library for Java

Still can't find your answer? Check out these amazing Java communities for help...

Java Reddit Community | Java Help Reddit Community | Java Community | Java Discord | Java Programmers (Facebook) | Java developers (Facebook)