I'm trying to learn Android development and I know Google switched to OpenJDK in Android N due to the lawsuit with Oracle. If I learn Java is it the same as learning OpenJDK and are there differences?
Java is a language created by Sun, who got bought out by Oracle.
Java runs on a JVM (java virtual machine) which is what lets it be cross platform. Basically you compile your Java code to Java bytecode which the JVM acts as an interpreter for. If you don't know this, it's worth looking into!
You compile your code with a Java development kit (they have more tools than just that though), an example is the OpenJDK (Open Java development kit). Another is Oracle's proprietary one. There are other propriety JDKs but they all adhere to the same standard and many of them are built on top of OpenJDK.
OpenJDK is open source and anyone can use it without express permission. Oracle's propriety one has a different license, uses different libraries and has a few little tweaks so Oracle can sell it. Google and Oracle have had their kerfuffles and Google has chosen to go with the open source version. I'll just insert my opinion and say this is a good thing, it makes Google and Android that bit less beholden to Oracle who I have an (arguably) irrational dislike for.
FWIW OpenJDK is the "reference" implementation as of Java 7 (so OpenJDK is what the standard says "this is what does it right"). It's also maintained by Oracle!
As an end user there's very little that you need to be concerned with.
Don't worry, it's the same language. Google switched to a different implementation of Java behind the scenes. Most developers won't even notice the difference.
Both OpenJDK and Oracle JDK are created and maintained currently by Oracle only.
OpenJDK and Oracle JDK are implementations of the same Java specification passed the TCK (Java Technology Certification Kit).
Most of the vendors of JDK are written on top of OpenJDK by doing a few tweaks to [mostly to replace licensed proprietary parts / replace with more high-performance items that only work on specific OS] components without breaking the TCK compatibility.
Many vendors implemented the Java specification and got TCK passed. For example, IBM J9, Azul Zulu, Azul Zing, and Oracle JDK.
Almost every existing JDK is derived from OpenJDK.
As suggested by many, licensing is a change between JDKs.
Starting with JDK 11 accessing the long time support Oracle JDK/Java SE will now require a commercial license. You should now pay attention to which JDK you're installing as Oracle JDK without subscription could stop working. source
Ref: List of Java virtual machines
For Java 7, nothing crucial. The OpenJDK project is mostly based on HotSpot source code donated by Sun.
Moreover, OpenJDK was selected to be the reference implementation for Java 7 and is maintained by Oracle engineers.
There's a more detailed answer from 2012 on difference between JVM, JDK, JRE & OpenJDK, which links to an Oracle blog post:
Q: What is the difference between the source code found in the OpenJDK repository, and the code you use to build the Oracle JDK?
A: It is very close - our build process for Oracle JDK releases builds on OpenJDK 7 by adding just a couple of pieces, like the deployment code, which includes Oracle's implementation of the Java Plugin and Java WebStart, as well as some closed source third party components like a graphics rasterizer, some open source third party components, like Rhino, and a few bits and pieces here and there, like additional documentation or third party fonts. Moving forward, our intent is to open source all pieces of the Oracle JDK except those that we consider commercial features such as JRockit Mission Control (not yet available in Oracle JDK), and replace encumbered third party components with open source alternatives to achieve closer parity between the code bases.
Videos
Hello, i am new to programming and trying to learn java. Since i am on linux open jdk was recommended instead of the oracle jdk!
I know open jdk is free and open source but apart from that how do they differ in every day use ? Are there things that might be done differently ?