Java

From BC$ MobileTV Wiki
Jump to: navigation, search
Java (cup of java) Logo

Java is one of the world's leading object-oriented open source programming languages.[1] It enables programmers to write computer instructions using English based commands, instead of having to write in numeric codes which a computer understands directly, or a lower level language such as machine-specific Assembly Language. It’s known as a “high-level” language because it can be read and written easily by humans. Like English, Java has a set of rules that determine how the instructions are written. These rules are known as its “syntax”. Once a program has been written, the high-level instructions are translated into numeric codes that computers can understand and execute.[2] Java's particularly robust and extensible, object-oriented nature lends to a set of powerful design patterns[3][4].

Duke (Java Web Start) mascot

Duke

Duke was created as the "faceless" face of Java and featured prominently in the Sun's Java API and help/tutorial documentation as the official mascot of the Java programming language.


Major & Minor J2SE releases


History

Java J2EE evolution

Java didn't set out to be a better C for every programmer, and in fact had an identity crisis early in its life. It started out in 1991 as a language called "Oak", part of a small project called the "Green Team" initiated by Patrick Naughton, Mike Sheridan, and James Gosling, who is primarily credited with the design of the language that became Java. (Bryan Youmans has a page on the history of Java, with some interesting thoughts on the language design. There's also an official version of the history from Sun.)

The original goal of the Green Team was to produce a single operating environment that could be used for controlling a wide range of consumer devices such as video games and TV set-top boxes. A key part of the environment would be a programming language that was completely independent of the processor it ran on. The image of "Duke" (shown at right), well-known as the Java mascot, dates from this period; Duke represented a software agent who performed tasks on behalf of the end user.[5]

Java version roadmap, 2018 and beyond

TV Set-Top Boxes

As it turned out, targeted industries such as cable TV were not ready for the concepts the Green Team was selling, but the kind of active, user-selected content they had envisioned was emerging in a new medium: The Internet.

So in 1995, Java found a market "Delivering a new level of interactivity to client browsers on the World Wide Web". Its ability to run the same code on any processor ("write once, run anywhere" as has long been the Java slogan) was exactly what was needed to download chunks of code called "applets" to be run on a heterogeneous universe of client architectures.[6]


Portability

"Write Once, Run Anywhere" is the motto for the Java programming language. In order to accomplish this primary design goal, the first implementations of Java used an interpreted virtual machine. These implementations produced programs that ran more slowly than programs compiled to native executables, for instance written in C or C++, so the language suffered a reputation for poor performance as a trade-off for portability. More recent JVM implementations produce programs that run significantly faster than before, using multiple techniques.

The first technique is to simply compile directly into native code like a more traditional compiler, skipping bytecodes entirely. This achieves good performance, but at the expense of portability. Another technique, known as just-in-time compilation (JIT), translates the Java bytecodes into native code at the time that the program is run which results in a program that executes faster than interpreted code but also incurs compilation overhead during execution. More sophisticated VMs use dynamic recompilation, in which the VM can analyze the behavior of the running program and selectively recompile and optimize critical parts of the program. Dynamic recompilation can achieve optimizations superior to static compilation because the dynamic compiler can base optimizations on knowledge about the runtime environment and the set of loaded classes. JIT compilation and dynamic recompilation allow Java programs to take advantage of the speed of native code without losing portability.[7]

[8] [9] [10]

1

2

3

4


5

Java SE's JRE/JDK 1.5 was released on 2004-09-30.


6

Java SE's JRE/JDK 1.8 was released on 2006-12-11.


7

Java SE's JRE/JDK 1.7 was released on 2011-07-07.



8

Java SE's JRE/JDK 1.8 was released on 2014-03-18.

9

Java SE's JRE/JDK 1.9 was released on 2017-09-21.

10

Java SE's JRE/JDK 1.10 was released on 2018-03-20.


11

Java SE's JDK 1.11 was released on 2018-09-25 and is a Long Term Support version. One critical change worth noting is that Oracle is no longer distributing a separate trimmed down JRE, and instead advises use of "jlink" and modules to package trimmed down JRE-like and smaller distributed/runnable binaries).

[25] [26] [27]

12

Java SE's JRE/JDK was released on 2019-03-25.

13

Java SE's JRE/JDK was released on 2019-09-25.

14

Java SE's JRE/JDK will be released on 2020-03-25.

15

Planned for release on 2020-09-25.

16

Planned for release on 2021-03-25.


17

Planned for release in 2021-09-25 and will be a Long Term Support (LTS) version.



Specifications


Language

As a language, Java is comprised of 4 main components:

  1. J2SE - Java 2 Standard Edition and is normally for developing desktop applications, forms the core/base API.
  2. J2EE - Java 2 Enterprise Edition for applications which run on servers, for example web sites.
  3. J2ME - Java 2 Micro Edition for applications which run on resource-constrained devices (small-scale devices) like cell phones and portable media players, apps include games or utilities for the device.
  4. JavaFX - RIA platform which bridges the gap between J2SE and J2EE (roadmap says maybe later J2ME as well) by running on both the desktop and browser on Windows, Linux and Mac).

[31] [32]

JVM

The Java Virtual Machine (commonly abbreviated as JVM) rather than a single thing that exists on a single device or location, is in fact a piece of software (process virtual machine) that must be installed and available (accessible) on a given device or hardware in order to be able to execute Java bytecode on that given device or hardware. The JVM acts as the bootstrap application for Java which is required to be present in order to run code and applications built in Java then compiled into Bytecode for a particular device or hardware. In this sense, it ca be thought of as the code execution component of the Java platform. Before their acquisition by Oracle, Sun Microsystems had last estimated that there are over 5.5 billion JVM-enabled devices in use today.

[33] [34] [35]

JRE

Java Runtime Environment (JRE) is the main cross-platform implementation of the JVM and supporting libraries. JRE comes coupled with most modern operating systems, and can be downloaded or upgraded/patched for Windows, Mac, Unix, Linux & some Mobile device/OS combination (most notable being Android which re-implemented the JRE/JDK as their own Dalvik runtime for applications).

[36]

JDK

Java Development Kit (JDK) contains everything the JRE does but also adds required tooling for developing and packaging a Java application.

[38] [39] [40]


OpenJDK

OSS version of the now commercial Oracle JDK.

[41] [42] [43] [44] [45] [46] [47] [48] [49]

Packaging

Packages

System & speficication for adding Package-level comments.

[52] [53] [54] [55] [56] [57] [58]

Modules

[59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76]

JAR

[83]

WAR

EAR

Classpath

Classpath is a core parameter passed in to the JVM either on the command-line, through an environment variable or in a Manifest "Class-Path" entry (as in packaged JAR files) that tells the the Java compiler where to look for user-defined classes and packages required by a given Java program or application. [88]


Garbage Collection

[89] [90]


Operators


File I/O

[91] [92] [93] [94] [95] [96] [97] [98]


Serialization

[99] [100] [101] [102] [103]

Network I/O

Primitives

Bytes


Proxy


Methods

[105]

Static


JavaBeans


Threads

[107] [108] [109] [110] [111] [112]

CORBA

Common Object Request Broker Architecture (CORBA) is a technology for integrating remotely to other systems in Distributed Systems development. It was introduced in Java 1.2 and has been removed from core Java and become a separately maintained open source suite of packages as of Java 11.

[113] [114] [115] [116] [117] [118]

JNI

OOP

Object-Oriented Programming (OOP) is a paradigm at the core of the Java programming language which looks at all data as an Object of a specific Type. This "strong-typing" is one of the core tenets of Java and allows developers to create complex applications that can model just about anything as a single coherent system. Object-Oriented programing conventions should implement three core tenets: Encapsulation, Inheritance, Polymorphism; these are explained below. On top of these characteristics, there are also the main goals of OO which are to be:

  1. Natural - use the terminology of the problem, not the terminology of a computer
  2. Reliable - Modular construction puts knowledge and responsibility where they belong (each component to be tested/validated independently)
  3. Reusable - Properly designed class Objects can form reusable components
  4. Maintainable - Software components may change or even be replaced completely (if done, it should be transparent to rest of system)
  5. Extendable - Permits easy addition of new functionality, as the user's needs change over time.
  6. Timely - Quicker development times from parallel development of independent but related classes by independent developers

[119][120][121] [122]

Encapsulation

Encapsulation, the first key characteristic of OO, means putting together the things that belong together, or grouping data and methods logically (into attributes and operations). In Java, Encapsulation is accomplished by Abstraction.

Abstraction uses the abstract keyword which allows you to create your own unique data types and operations within the scope of your application (or if you publish your Java code as a JAR, WAR or EAR potentially other applications which reference the API you've exposed), while hiding the implementation details. Abstract classes usually define some default implementations or values, and provides at least some useful details which would allow a developer to create a full implementation such as JavaDocs and/or reference implementations. An abstract class specifies that all sub-classes have the same structure (methods, parameters, variables) but might have totally different or identical functionality (implementations). A child of an abstract class need not override (re-implement with different behavior) or overload[123] (re-implement to accept different number or types of input parameters, possibly same behavior or different) any methods, but it could do so if desired. Non-overridden methods in a child of an abstract class will by default inherit the functionality of those methods defined in the parent's abstract class).[124]

Inheritance

Inheritance, the second key characteristic if OO, is the creation of a "family" (or hierarchy) of classes with the same common interface. For example, using the extends keyword you can establish a parent-child relationship, saying that a child class inherits the core traits of its parent class (which can be accessed within the child class using the super keword). Inheritance allows programmers to re-use code they've already written. An alternative to Inheritance is using Composition to create several inner-classes and referencing them from the core class as in the case of a Car class, however this is slightly less modular and reusable which is one of the goals of the OO paradigm. [125]

Polymorphism

Polymorphism, third key characteristic of OO, allows the decoupling of code from the specific type its acting on. Polymorphism literally means "the ability of different things to use the same name". It allows values of different data types to be handled using a uniform interface, and in Java the interface keyword is precisely what denotes this relationship between classes. An interface specifies that all sub-classes have the same structure (methods, parameters, variables) but must have totally different functionality (implementations). [128][129]

Abstract

[132]

Interface

[133]

Generics

Java introduced generic methods and classes back in 2004 with J2SE 1.5, while most developers learned enough about them to use basic collections, there was often a lack of complete understanding for complex upper and lower bounds or method signatures with wildcards. With the recent adoption of Java 8, these types of method signatures are frequent and there is a need to understand Generics in greater detail.

For instance, most could grasp the following code exmaple:

public static <T> T addAndReturn(T element, Collection<T> collection){
   collection.add(element);
   return element;
}

Where "T" is represents the "Type" of the Object which will change dynamically depending on the calling code block and intentions of the implementation.

However the following proves difficult for most Devs:

static <T,K,D,A,M extends Map<K, D>> Collector<T,?,M> groupingBy(Function<? super T,? extends K> classifier, Supplier<M> mapFactory, Collector<? super T,A,D> downstream)

Where "T" is represents the "Type" of the Object, K is a "Key", "D" is a Datatype, "A" is an Accumulator, "M" is a Map.


[134] [135] [136] [137] [138] [139] [140] [141]


Collections

Lists

[142]

Sets

Maps

[144] [145]

Streams

[146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159]


Lambda Expressions

Lambda Expressions are a new feature in Java 8 that allow "anonymous functions" to simplify Java development syntax.

[161] [162] [163] Cite error: Invalid <ref> tag; refs with no name must have content [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187]

JNDI

Java Naming and Directory Interface (JNDI) is an API that offers a unified interface to multiple naming and directory services such as LDAP, DNS, RMI, CORBA, JDBC, JMS and several other "addressing" related components or technologies in the Java stack. It separates the concerns of application development and application deployment by allowing properties to be loaded separately to specify values by using only a "name" of the variable we want to get a value for (for example "Database" could be come "jdbc:mysql://127.0.0.1:3306/?user=DBUSER&password=ABRACADABRA", or "Queue" could become "jms:sonicmq:queue://127.0.0.1:2506?destination=jms/MyApp.PUSH").

Persistence

JDBC

Java DataBase Connectivity (JDBC) is an API for providing access to a DBMS to access data and generate equivalent Object representations in Java. [188]

[193] [194] [195] [196] [197] [198]

EJB

Enterprise Java Beans (commonly abbreviated EJB) are a set of technologies for robustly modeling modular data and transactional components of an application. Java Beans are most commonly used to define Objects for use within Web and/or Enterprise Application that provide a standard way to implement the back-end "business logic" code typically found in enterprise applications.Acting as a server-side component architecture for Java Platform, Enterprise Edition (Java EE). EJB technology enables rapid and simplified development of distributed, transactional, secure and portable applications based on Java technology.[199][200][201][202]

There are three types of Enterprise Java Beans namely:

  1. Session Beans - implements portions of application code in middleware and to simplifies access (two types: Stateless or Stateful)
  2. Entity Beans - business object in a persistent storage mechanism (i.e. Data Access Object)
  3. Message driven beans - allows J2EE applications to process messages asynchronously (acts as a JMS listener)[203]

[205] [206] [207] [208] [209]


Annotations

Annotations are syntactic expressions which enable the Java compiler (more specifically the deployer) to perform value setting and additional configurations. They are typically a combination of a keyword, entity or method name preceded by the "@" sign and possibly having some parameters denoted or attributes set via opening "(" and closing ")" parentheses, with each one separated by commas.

[210]

Web Applications

Servlet

Servlet technology provides the basic level of Java functionality exposed via the web using GET, POST, UPDATE or DELETE response handlers to generate output based on a given set of inputs (such as from a "Form body" submission, via the URL as parameters or set as variables within the "Session" scope). It is the Java-equivalent of CGI in Perl.

JSP

Java Server Pages (JSP) is a framework for exposing Java code and implementing programming logic over the web via Web Applications. JSP Web Applications must be hosted in a web server or container.

JSF

Java Server Faces (JSF) are a set of libraries providing a set of modularized, reusable and customizable Web UI components for use in JSP pages. It can serve as an integration layer between Java WebApps (i.e. JSP) and client-side programming logic (i.e. JavaScript).

  • See section: JSF

JNLP

[215] [216] [217]

Batch

[218]


Graphical User Interfaces

Applets

Applets have been deprecated, but they used to be the leading RIA technonology by providing "Java in the browser"

See: Applet

Swing

[220] [221] [222] [223] [224] [225] [226] [227] [228] [229]

[230] [231] [232] [233] [234] [235] [236] [237] [238] [239]

[240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252]

JavaFX

Recently, the Java camp has responded to Adobe's aggressive promotion of Flash as a de facto web visualization, animation, interaction and video technology with the release of JavaFX, a series of APIs that lend alot more interactivity to Java Server Pages and other existing Java web frameworks.

[253]

JMF

Frameworks

[254]

JPA

Java Persistence API (JPA) provides a POJO persistence model for object-relational mapping.

[259] [260] [261] [262] [263] [264] [265] [266] [267][268][269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288] [289] [290] [291] [292] [293] [294] [295] [296] [297] [298] [299] [300]


OpenJPA

OpenJPA is a truly open source version of JPA in that it is run by the Apache community and licensed non-commercially under the terms of the Apache 2.0 Software License. It also enjoys a fairly active community but lacks the support of a single dedicated company.


Hibernate

Hibernate is the leading open source implementation of JPA, and its community and the project itself is owned and operated by JBoss. While being open source it is also a commercial implementation but does not require a licensing fee for production use, only inclusion of the Hibernate libraries in your runtime (which are natively part of the JBoss application server) if not using with JBoss Application Server.[301]

[302]

IBATIS

The iBATIS project was started by Clinton Begin in 2001. Originally the focus was on the development of cryptographic software solutions. The first product to be released by iBATIS was Secrets, a personal data encryption and signing tool much like PGP. Secrets was written entirely in Java and was released under an open source license. Today the iBATIS project at Apache has retired and the project MyBatis lives on at Google Code, heavily focused on the persistence layer frameworks known as SQL Maps and Data Access Objects (DAO).[303]

EclipseLink

[305]

Cayenne

Rather than hardcoding SQL statements through Java code, Cayenne is yet another ORM that allows a programmer to work only with Java objects abstracted from the database. Its primary claim to fame is that it is Apache-licensed, non vendor locked-in and works with just about any of the major RDBMSs and features a GUI for building database abstractions, rather than depending on the developer to write out mappings by hand as annotations, .properties files, XML and/or other configuration files as is done in similar ORMs like Hibernate (JPA) or DataNucleus (JDO).

JDO

Java Data Objects (JDO) is a standard interface-based Java model abstraction of persistence.

DataNucleus

DataNucleus Access Platform is the leading open source implementation of JDO. The latest version of Access Platform also supports JPA v2.0.[306]


CXF

Apache CXF (acronym from merger between Cetlix & Xfire Web Service Frameworks) is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS and JAX-RS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI.

[307] [308]


ROME

ROME is an set of open source Java tools for parsing, generating and publishing RSS and Atom feeds. The core ROME library depends only on the JDOM XML parser and supports parsing, generating and converting all of the popular RSS and Atom formats including RSS 0.90, RSS 0.91 Netscape, RSS 0.91 Userland, RSS 0.92, RSS 0.93, RSS 0.94, RSS 1.0, RSS 2.0, Atom 0.3, and Atom 1.0. You can parse to an RSS object model, an Atom object model or an abstract SyndFeed model that can model either family of formats.


Tools

[312]


Javadoc

JavaDocs are the standard format for documenting (commenting) your code in Java. They enable the generation of an HTML-based developer-friendly view of the classes, as well as better code-completion within your own projects.

[323] [324] [325]


Resources

Tutorials

zmore complex looping, in that case stick to "append"... which works out "cleaner code"-wise) [339] [340] [341]

[347]

[348] [349] [350]

[353] [354] [355]

[367][368]Cite error: Invalid <ref> tag; refs with no name must have contentCite error: Invalid <ref> tag; refs with no name must have content[369][370]

[373]


External Links

[375][376][377][378][379]

Cite error: Closing </ref> missing for <ref> tag</ref> [382]

[383] [384] [385] [386]

[387][388]

[390][391][392]

[393] [394]

[395][396]

[398]


[400]


[406] [407] [408] [409] [410]


[412] [413] [414]


[417]

[418] [419] [420] [421] [422] [423] [424] [425] [426] [427] [428] [429] [430] [431] [432] [433] [434] [435] <refNew Classes in Java 11: http://blog.code-cop.org/2019/12/new-classes-in-java-11.html</ref>


[436] [437] [438] [439]


References

  1. TIOBE programming language index: http://www.tiobe.com/index.php/paperinfo/tpci/
  2. About.com - What is Java?: http://java.about.com/od/gettingstarted/a/whatisjava.htm
  3. Java EE 5 Patterns (SL-500-EE5): http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getCourseDesc?dc=D61858GC10&p_org_id=1001&lang=US
  4. wikipedia: Design pattern (computer science)
  5. The History of Java Technology: http://www.oracle.com/technetwork/java/javase/overview/javahistory-index-198355.html
  6. The Java™ programming language: http://www.outbacksoftware.com/java/java.html
  7. Java history: http://www.freejavaguide.com/history.html
  8. Oracle Java SE Support Roadmap: https://www.oracle.com/technetwork/java/java-se-support-roadmap.html
  9. Java is still available at "zero-cost": https://blog.joda.org/2018/08/java-is-still-available-at-zero-cost.html (but only OpenJDK not the OracleJDK can be used freely in Production)
  10. Java Is Still Free: https://docs.google.com/document/d/1nFGazvrCvHMZJgFstlbzoHjpAVwv5DEdnaBr_5pKuHo/preview#heading=h.p3qt2oh5eczi | VIDEO
  11. wikipedia: Java version history
  12. JDK 7 GA: http://jdk.java.net/9/
  13. JDK 8 GA: http://jdk.java.net/9/
  14. Oracle sets date for end of Java 8 updates: https://www.infoworld.com/article/3269332/java/oracle-sets-date-for-end-of-java-8-updates.html
  15. JDK 9 GA: http://jdk.java.net/9/
  16. Overview of JDK 9 & JRE 9 Installation: https://docs.oracle.com/javase/9/install/overview-jdk-9-and-jre-9-installation.htm#JSJIG-GUID-8677A77F-231A-40F7-98B9-1FD0B48C346A
  17. JDK 10 GA: http://jdk.java.net/10/
  18. JDK 11 GA: http://jdk.java.net/11/
  19. Oracle JDK Migration Guide (from 8 to 11): https://docs.oracle.com/en/java/javase/11/migrate/index.html#JSMIG-GUID-C25E2B1D-6C24-4403-8540-CFEA875B994A
  20. Java Platform, Standard Edition 11 - Troubleshooting Guide: https://docs.oracle.com/en/java/javase/11/troubleshoot/index.html
  21. Java JDK 11 -- All the new features now available: https://www.infoworld.com/article/3265447/java/java-jdk-11-all-the-new-features-now-available.html (CORBA removed, JavaFX & JavaEE separated out to standalone projects)
  22. Missing iFrame view for Javadocs JDK 11: https://stackoverflow.com/questions/51992347/missing-iframe-view-for-javadocs-jdk-11 (framed JavaDocs are indeed discontinued, must use Search/Breadcrumbs going forward)
  23. Updates to the Java SE Platform: https://blogs.oracle.com/java/java-se-releases
  24. A Tale of Two Oracle JDKs: http://marxsoftware.blogspot.com/2018/09/a-tale-of-two-oracle-jdks.html
  25. Getting Started With Java 11 (If You Are Still Using Java 8): https://simply-how.com/getting-started-with-java-11
  26. Migrate Maven Projects to Java 11: https://winterbe.com/posts/2018/08/29/migrate-maven-projects-to-java-11-jigsaw/https://blog.codefx.org/java/java-11-migration-guide/#Migrating-From-Java-8-To-Java-11
  27. It’s time! Migrating to Java 11: https://medium.com/criciumadev/its-time-migrating-to-java-11-5eb3868354f9
  28. The Java Language Specification, Third Edition: http://docs.oracle.com/javase/specs/jls/se5.0/html/j3TOC.html
  29. The JavaTM Virtual Machine Specification - 2nd Edition: http://docs.oracle.com/javase/specs/jvms/se5.0/html/VMSpecTOC.doc.html
  30. Working with Manifest Files: The Basics: http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html
  31. Advanced Java Tutorial: http://www.javacodegeeks.com/2015/09/advanced-java.html
  32. Tabs vs Spaces -- How They Write Java at Google, Twitter, Mozilla and Pied Piper: https://blog.overops.com/tabs-vs-spaces-how-they-write-java-in-google-twitter-mozilla-and-pied-piper/
  33. JVM Architecture 101 -- Get to Know Your Virtual Machine: https://blog.takipi.com/jvm-architecture-101-get-to-know-your-virtual-machine/
  34. What is the JVM? Introducing the Java Virtual Machine: http://www.javaworld.com/article/3272244/what-is-the-jvm-introducing-the-java-virtual-machine.html
  35. JVM Architecture 101 -- Get to Know Your Virtual Machine: https://blog.overops.com/jvm-architecture-101-get-to-know-your-virtual-machine/
  36. https://stackoverflow.com/questions/1906445/what-is-the-difference-between-jdk-and-jre
  37. Setup Java on Linux sample script: https://gist.github.com/sdmcraft/2c5abbdeccf37e1642e5
  38. JDK 10: http://jdk.java.net/10/
  39. JDK 11: http://jdk.java.net/11/
  40. Building Java 10+ projects on Travis CI: https://www.deps.co/guides/travis-ci-latest-java/
  41. OpenJDK vs OracleJDK — which one to use when: https://medium.com/@sairamkrish/openjdk-vs-oraclejdk-which-one-to-use-when-936ae5315600
  42. Eliminating Java Update Confusion: https://dzone.com/articles/eliminating-java-update-confusion
  43. OpenJDK vs. OracleJDK - which are you using?: https://www.reddit.com/r/java/comments/6g86p9/openjdk_vs_oraclejdk_which_are_you_using/
  44. OracleJDK .vs. OpenJDK and Java JDK Development Process: https://javapapers.com/java/oracle-jdk-vs-openjdk-and-java-jdk-development-process/
  45. Differences between Oracle JDK and OpenJDK: https://stackoverflow.com/questions/22358071/differences-between-oracle-jdk-and-openjdk
  46. OpenJDK - Oracle is better?: https://askubuntu.com/questions/437752/openjdk-oracle-is-better
  47. Technically what is the main difference between Oracle JDK and OpenJDK?: https://stackoverflow.com/questions/17360011/technically-what-is-the-main-difference-between-oracle-jdk-and-openjdk
  48. What is the difference between Oracle JDK and Open JDK?: https://www.quora.com/What-is-the-difference-between-Oracle-JDK-and-Open-JDK
  49. Is there any advantage of installing OpenJDK instead of Oracle Java Platform, Standard Edition on Ubuntu?: https://www.quora.com/Is-there-any-advantage-of-installing-OpenJDK-instead-of-Oracle-Java-Platform-Standard-Edition-on-Ubuntu
  50. Amazon Corretto 8: https://dzone.com/articles/amazon-corretto-8-1 (Amazon distribution of the OpenJDK)
  51. SAP builds its own Java distribution: https://www.techworld.com.au/article/658340/sap-builds-its-own-java-distribution/
  52. "package-info.java" example: https://alvinalexander.com/java/jwarehouse/openjdk-8/langtools/src/share/classes/com/sun/javadoc/package-info.java.shtml
  53. javadoc - The Java API Documentation Generator: https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javadoc.html
  54. Where to put java package-level information to use by javadoc?: https://stackoverflow.com/questions/12898270/where-to-put-java-package-level-information-to-use-by-javadoc
  55. What’s package-info.java for?: https://www.intertech.com/Blog/whats-package-info-java-for/
  56. Why is package-info.java useful?: https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful
  57. W3schools -- Packages: https://www.w3schools.com/java/java_packages.asp
  58. Intro to the Java SecurityManager: https://www.baeldung.com/java-security-manager
  59. Java Modules: http://tutorials.jenkov.com/java/modules.html
  60. Understanding Java 9 Modules: https://www.oracle.com/corporate/features/understanding-java-9-modules.html
  61. Code-First Java Module System Tutorial: https://blog.codefx.org/java/java-module-system-tutorial/
  62. "module-info.java" tutorial: http://tutorials.jenkov.com/java/modules.html
  63. Java Magazine -- "More Java 9" (Sep/Oct 2017): http://www.javamagazine.mozaicreader.com/SeptOct2017#&pageSet=23&page=0&contentItem=0
  64. JDK 9 New Features -- Java Module System - Project Jigsaw: https://www3.ntu.edu.sg/home/ehchua/programming/java/JDK9_NewFeatures.html
  65. Getting Started with Java 9 Module System: https://www.jetbrains.com/help/idea/getting-started-with-java-9-module-system.html
  66. Gradle -- Building Java 9 Modules: https://guides.gradle.org/building-java-9-modules/
  67. Java 9 Modularity -- Patterns and Practices for Developing Maintainable Applications (September 2017): http://shop.oreilly.com/product/0636920049494.do
  68. Java 9 Modules (Part 1) -- Introduction: https://dzone.com/articles/java-9-modules-introduction-part-1
  69. Java 9 Modules (Part 2) -- IntelliJ and Maven: https://dzone.com/articles/java-9-modules-part-2-intellij-and-maven
  70. Java 9 Modules (Part 3) -- Directives: https://dzone.com/articles/java-9-modules-part-3-directives
  71. Java 9 Modules Tutorial: https://examples.javacodegeeks.com/core-java/java-9-modules-tutorial/
  72. Java 9: Step by Step From Zero to Modules (Part 1): https://dzone.com/articles/java-9-tutorial-step-by-step-from-zero-to-modules
  73. Java 9 New Features: https://www.baeldung.com/new-java-9 (incldes a simple Modules example)
  74. Migrating the ServiceLoader to the Java 9 module system: https://blog.frankel.ch/migrating-serviceloader-java-9-module-system/
  75. The State of the Module System: http://openjdk.java.net/projects/jigsaw/spec/sotms/
  76. Modules all the way down -- OSGi and the Java Platform Module System: https://www.slideshare.net/TimEllison/modules-all-the-way-down-osgi-and-the-java-platform-module-system
  77. Packaging Programs in JAR Files: http://docs.oracle.com/javase/tutorial/deployment/jar/index.html
  78. wikipedia: JAR (file format)
  79. What is a JAR file?: http://www.roseindia.net/java/example/java/util/JarFile.shtml
  80. http://thinkitdifferently.wordpress.com/2009/02/18/jar-classpath/
  81. How to run a JAR file: http://www.wikihow.com/Run-a-.Jar-Java-File
  82. 5 things you should know about JARs (in Java 6+): http://www.ibm.com/developerworks/library/j-5things6/
  83. Oracle Lesson -- Packaging Programs in JAR Files: https://docs.oracle.com/javase/tutorial/deployment/jar/
  84. wikipedia: WAR file format (Sun)
  85. EAR packaging: http://docs.oracle.com/javaee/1.4/tutorial/doc/Overview5.html
  86. wikipedia: EAR (file format)
  87. Difference between ear, jar, and war files : http://www.java-tips.org/java-ee-tips/enterprise-java-beans/difference-between-ear-jar-and-war.html
  88. wikipedia: Classpath (Java)
  89. How to Tune Java Garbage Collection: http://java.dzone.com/articles/how-tune-java-garbage
  90. 5 Coding Hacks to Reduce GC Overhead: http://java.dzone.com/articles/5-coding-hacks-reduce-gc
  91. Java BufferedWriter class: https://www.javatpoint.com/java-bufferedwriter-class
  92. JSoup -- Load a Document from a File: https://jsoup.org/cookbook/input/load-document-from-file
  93. Convert InputStream to BufferedReader: https://stackoverflow.com/questions/5200187/convert-inputstream-to-bufferedreader
  94. How to get an InputStream from a BufferedImage?: https://stackoverflow.com/questions/649186/how-to-get-an-inputstream-from-a-bufferedimage
  95. How to save a BufferedImage as a File: https://stackoverflow.com/questions/12674064/how-to-save-a-bufferedimage-as-a-file
  96. How to convert Byte Array to Image in java?: https://www.tutorialspoint.com/How-to-convert-Byte-Array-to-Image-in-java
  97. Java – Write to File: http://howtodoinjava.com/java/io/java-write-to-file/
  98. How to read all files in a folder from Java?: http://stackoverflow.com/questions/1844688/how-to-read-all-files-in-a-folder-from-java/23814217
  99. JavaDocs -- Serializable: https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html
  100. What is object serialization?: https://stackoverflow.com/questions/447898/what-is-object-serialization
  101. Serialization and Deserialization in Java with Example: https://www.geeksforgeeks.org/serialization-in-java/
  102. Java object serialization - Tutorial: https://www.vogella.com/tutorials/JavaSerialization/article.html
  103. Java - Serialization: https://www.tutorialspoint.com/java/java_serialization.htm
  104. Java – How to convert Bytes to Hex: http://www.mkyong.com/java/java-how-to-convert-bytes-to-hex/
  105. Don’t Extract Everything Into a Method: https://dzone.com/articles/dont-extract-everything-into-a-method
  106. Concurrency: http://java.sun.com/docs/books/tutorial/essential/concurrency/
  107. A Bird’s-Eye View on Java Concurrency Frameworks: https://dzone.com/articles/a-birds-eye-view-on-java-concurrency-frameworks-1 (RxJava, Akka, Disruptor, and ExecutorService)
  108. Java Thread example: https://www.journaldev.com/1016/java-thread-example
  109. Thread Life Cycle in Java – Thread States in Java: https://www.journaldev.com/1044/thread-life-cycle-in-java-thread-states-in-java
  110. Multithreading in Java: https://www.journaldev.com/1079/multithreading-in-java
  111. Java Multithreading & Concurrency Interview Questions and Answers: https://www.journaldev.com/1162/java-multithreading-concurrency-interview-questions-answers
  112. ThreadPoolExecutor – Java Thread Pool Example: https://www.journaldev.com/1069/threadpoolexecutor-java-thread-pool-example-executorservice
  113. wikipedia: Common_Object_Request_Broker_Architecture
  114. CORBA is dead?!: http://www.linux-mag.com/id/1601/ (hardly dead, but falling out of use as the first "go-to strategy" for application integration in favour of SOA, APIs, etc)
  115. Are CORBA and RMI "dead"?: https://community.oracle.com/thread/1182073
  116. Is CORBA still alive? What about ACE?: https://groups.google.com/forum/#!topic/comp.object.corba/jD6KpFPxWPw
  117. The significance of Java RMI (and CORBA) please?: https://stackoverflow.com/questions/14326901/the-significance-of-java-rmi-please
  118. Is CORBA legacy?: https://stackoverflow.com/questions/1226050/is-corba-legacy
  119. Object-Oriented Programming: http://cs.smu.ca/~porter/csc/465/notes/oop.html
  120. OOP Basics: http://www.jamesbooth.com/OOPBasics.htm
  121. Inheritance, Polymorphism, and Abstract Classes: http://math.hws.edu/javanotes/c5/s5.html
  122. Oracle docs -- Java OOP - Declaring Member Variables: https://docs.oracle.com/javase/tutorial/java/javaOO/variables.html
  123. In Java, what’s the difference between method overloading and method overriding?: http://www.programmerinterview.com/index.php/java-questions/method-overriding-vs-overloading/
  124. wikipedia: Abstraction
  125. wikipedia: Inheritance (object-oriented programming)
  126. What Is Inheritance?: http://java.about.com/od/objectorientedprogramming/a/inheritance.htm
  127. Inheritance .vs. Composition: http://www.javaworld.com/jw-11-1998/jw-11-techniques.html
  128. wikipedia: Polymorphism (computer science)
  129. wikipedia: Polymorphism in object-oriented programming
  130. How my Dog learned Polymorphism: http://www.javaranch.com/campfire/StoryPoly.jsp
  131. What is polymorphism in Java? Method overloading or overriding?: http://javarevisited.blogspot.com/2011/08/what-is-polymorphism-in-java-example.html#ixzz2JU2kkhIG: http://javarevisited.blogspot.ca/2011/08/what-is-polymorphism-in-java-example.html
  132. How should I have explained the difference between an Interface and an Abstract class?: https://stackoverflow.com/questions/18777989/how-should-i-have-explained-the-difference-between-an-interface-and-an-abstract
  133. What is the point of having every service class have an interface?: https://softwareengineering.stackexchange.com/questions/150045/what-is-the-point-of-having-every-service-class-have-an-interface
  134. Time To Really Learn Generics -- A Java 8 Perspective: http://nofluffjuststuff.com/magazine/2016/09/time_to_really_learn_generics_a_java_8_perspective
  135. Learning Java, 4th Edition (2013) -- Ch.8 Generics - Generic Methods: http://www.oreilly.com/library/view/learning-java-4th/9781449372477/ch08s09.html
  136. Java Generic Methods: http://tutorials.jenkov.com/java-generics/methods.html
  137. Get Started with Java: https://www.baeldung.com/get-started-with-java-series
  138. OCP Certification – Advanced Java Class Design: https://www.baeldung.com/java-ocp-advanced-class-design
  139. Java - Use polymorphism or bounded type parameters: http://softwareengineering.stackexchange.com/questions/227918/java-use-polymorphism-or-bounded-type-parameters
  140. Jackson, XML & JSON parsing library -- ObjectMapper.java: https://github.com/FasterXML/jackson-databind/blob/master/src/main/java/com/fasterxml/jackson/databind/ObjectMapper.java (uses generics to dynamically map passed in data to corresponding Getter/Setter methods in bakcing Beans/Models)
  141. Generic Constructors in Java: https://www.baeldung.com/java-generic-constructors
  142. Java language basics: http://developer.ibm.com/tutorials/j-introtojava1/ (good examples of List, ArrayLists, etc)
  143. Java – Check if Array contains a certain value?: https://www.mkyong.com/java/java-check-if-array-contains-a-certain-value/
  144. How to iterate through a Map in Java?: https://stackoverflow.com/questions/43015098/how-to-iterate-through-a-map-in-java
  145. 10 Examples of HashMap in Java - Programming Tutorial: http://www.java67.com/2013/02/10-examples-of-hashmap-in-java-programming-tutorial.html
  146. Java 8 Streams API: https://blogs.oracle.com/java/java-8-streams-api
  147. How to Properly Debug Java Streams: https://dzone.com/articles/how-to-properly-debug-java-streams-video
  148. How to debug stream().map(…) with lambda expressions?: https://stackoverflow.com/questions/24541786/how-to-debug-stream-map-with-lambda-expressions
  149. IntelliJ -- Analyze Java Stream operations: https://www.jetbrains.com/help/idea/analyze-java-stream-operations.html
  150. How to debug Java 8 Stream Pipeline - peek() method tutorial: http://www.java67.com/2016/09/java-8-streampeek-example.html
  151. Stream.reduce & Stream.collect methods: https://docs.oracle.com/javase/tutorial/collections/streams/reduction.html
  152. Java Stream API was Broken Before JDK10: https://4comprehension.com/java-stream-api-was-broken-before-jdk10/
  153. Java 8 Streams -- An Intro to Filter, Map and Reduce Operations: www.sitepoint.com/java-8-streams-filter-map-reduce/
  154. 10 Examples of forEach() method in Java 8: http://www.java67.com/2016/01/how-to-use-foreach-method-in-java-8-examples.html
  155. Java 8 Friday -- 10 Subtle Mistakes When Using the Streams AP: https://blog.jooq.org/2014/06/13/java-8-friday-10-subtle-mistakes-when-using-the-streams-api/
  156. How to Iterate Over a Stream with Indices: http://www.baeldung.com/java-stream-indices
  157. Java 8 -- Accumulate the elements of a Stream using Collectors: http://www.deadcoderising.com/2017-02-21-java-8-accumulate-your-streams-using-collectors/
  158. A Guide to Streams in Java 8: In-Depth Tutorial with Examples: http://stackify.com/streams-guide-java-8/
  159. Java Streams Overview, Part I: https://dzone.com/articles/java-streams-overview-part-i
  160. wikipedia: Anonymous function
  161. Start Using Java Lambda Expressions & Streams: https://www.developer.com/java/start-using-java-lambda-expressions.html
  162. How to start working with Lambda Expressions in Java: https://www.freecodecamp.org/news/learn-these-4-things-and-working-with-lambda-expressions-b0ab36e0fffc/
  163. Java 8 – Powerful Comparison with Lambdas | VIDEOS: https://www.baeldung.com/java-8-sort-lambda
  164. Why the restriction on local variable capture?: http://www.lambdafaq.org/what-are-the-reasons-for-the-restriction-to-effective-immutability/
  165. Why are lambda expressions being added to Java?: http://www.lambdafaq.org/why-are-lambda-expressions-being-added-to-java/
  166. Why do java 8 lambdas allow access to non-final class variables?: https://stackoverflow.com/questions/29029849/why-do-java-8-lambdas-allow-access-to-non-final-class-variables
  167. Modifying local variable from inside lambda: https://stackoverflow.com/questions/30026824/modifying-local-variable-from-inside-lambda
  168. Java 8 – Powerful Comparison with Lambdas: http://www.baeldung.com/java-8-sort-lambda
  169. Streams tutorial: https://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/
  170. Lambda Expressions and Functional Interfaces -- Tips and Best Practices: https://www.baeldung.com/java-8-lambda-expressions-tips
  171. An Introduction to Atomic Variables in Java: https://www.baeldung.com/java-atomic-variables
  172. How AtomicReference Works: https://dzone.com/articles/atomicreference
  173. Java AtomicReference Example: https://examples.javacodegeeks.com/core-java/util/concurrent/atomic/atomicreference/java-atomicreference-example/
  174. AtomicReference tutorial: http://tutorials.jenkov.com/java-util-concurrent/atomicreference.html
  175. Java Lambda Expressions: http://tutorials.jenkov.com/java/lambda-expressions.html
  176. How do you assign a lambda to a variable in Java 8?: https://stackoverflow.com/questions/21920039/how-do-you-assign-a-lambda-to-a-variable-in-java-8
  177. How to convert a string to a lambda expression?: https://stackoverflow.com/questions/22207447/how-to-convert-a-string-to-a-lambda-expression
  178. Java Lambda Expressions Basics: https://dzone.com/articles/java-lambda-expressions-basics
  179. Hacking Lambda Expressions in Java: https://dzone.com/articles/hacking-lambda-expressions-in-java
  180. lambdaFromString lib: https://github.com/greenjoe/lambdaFromString
  181. Lambda Expressions in Java 8: https://www.geeksforgeeks.org/lambda-expressions-java-8/
  182. Java Lambda Expressions: https://www.programiz.com/java-programming/lambda-expression
  183. Java 8 Lambda Limitations -- Closures: http://dzone.com/articles/java-8-lambas-limitations-closures
  184. Lambda Expressions & Functional Interfaces -- Tips & Best Practices: http://www.baeldung.com/java-8-lambda-expressions-tips
  185. Java Lambda Expressions: http://tutorials.jenkov.com/java/lambda-expressions.html
  186. Modifying local variable from inside lambda: stackoverflow.com/questions/30026824/modifying-local-variable-from-inside-lambda/53350417#53350417
  187. Using Java 8 Lambdas Efficiently: http://www.beyondjava.net/using-java-8-lambdas-efficiently
  188. wikipedia: Java Database Connectivity
  189. JDBC CRUD ( Create, Read, Update and Delete) example: http;//techmyguru.com/JDBC/index.php?section=5
  190. MySQL and Java JDBC - Tutorial: http://www.vogella.com/articles/MySQLJava/article.html
  191. An Introduction to JDBC, Part 3: http://onjava.com/pub/a/onjava/excerpt/javaentnut_2/index3.html
  192. Spring Data JDBC Generic DAO Implementation - Most Lightweight ORM Ever: http://architects.dzone.com/articles/spring-data-jdbc-generic-dao
  193. What You Didn't Know About JDBC Batch: http://java.dzone.com/articles/what-you-didnt-know-about-jdbc (Improvement times of Batching queries, by DBMS)
  194. SQL DECIMAL to Java Number: https://stackoverflow.com/questions/35702026/sql-decimal-to-java-number
  195. How To Map The Date And Time API with JPA 2.2: https://www.thoughts-on-java.org/map-date-time-api-jpa-2-2/
  196. Using “LIKE” wildcard in PreparedStatement: https://stackoverflow.com/questions/8247970/using-like-wildcard-in-prepared-statement
  197. Configuring JDBC in TomEE: https://www.tomitribe.com/blog/configuring-jdbc-in-tomee/
  198. MySQL JDBC over SSL problem: https://stackoverflow.com/questions/4663061/mysql-jdbc-over-ssl-problem/23807763
  199. Sun Java Developer Network - EJB: http://java.sun.com/products/ejb/
  200. wikipedia: EJB
  201. What Is an Entity Bean?: http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/EJBConcepts4.html
  202. What Is a Message-Driven Bean?: http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/EJBConcepts5.html
  203. 3 Types of EJB: http://www.java-samples.com/showtutorial.php?tutorialid=122
  204. What's Wrong with the EJB 2 Specification?: http://onjava.com/pub/a/onjava/2001/02/28/ejb.html
  205. Enterprise JavaBeans Fundamentals: http://java.sun.com/developer/onlineTraining/EJBIntro/EJBIntro.html
  206. EJB Transaction: http://www.ucertify.com/article/ejb-transaction.html
  207. Injection of DataSource Example: http://openejb.apache.org/3.0/injection-of-datasource-example.html
  208. Creating and Using Contexts and Dependency Injection (CDI) Events: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/CDI_Events/cdi_events.html
  209. EJB Backend with NetBeans RCP Frontend on Maven: http://netbeans.dzone.com/ejb-backend-netbeans-rcp
  210. The case against annotations: https://blog.softwaremill.com/the-case-against-annotations-4b2fb170ed67
  211. JNLP spec: http://java.sun.com/javase/technologies/desktop/javawebstart/download-spec.html
  212. Java Network Launch Protocol (JNLP) Support: http://www.oracle.com/technetwork/java/javase/index-142562.html#EXAMPLES_WORLDWIND
  213. JNLP API Examples: http://docs.oracle.com/javase/1.5.0/docs/guide/javaws/developersguide/examples.html
  214. Old link for JNLP demos: http://java.sun.com/javase/technologies/desktop/javawebstart/demos.html (*DOWN*)
  215. Java Web Start & JNLP: http://www.programix.com/JavaWebStart/JavaWebStartPresentation.html
  216. Java WebStart Is Dead -- What Should We Do Now?: http://www.slideshare.net/HendrikEbbers/java-webstart-is-dead-what-should-we-do-now
  217. Java Web Start will die! -- OpenWebStart in inubation: https://dev.karakun.com/webstart/
  218. Installing a Java Application as a Windows Service: http://dzone.com/articles/installing-a-java-application-as-a-windows-service
  219. What is the status of SwingLabs (SwingX) post acquisition: https://stackoverflow.com/questions/6818528/what-is-the-status-of-swinglabs-swingx-post-acquisition
  220. swing-bug 0.4 -- Making JCarousel sexier with Effects: http://web.archive.org/web/20071015205235/http://blogofbug.com/2007/03/
  221. BlogOfBug -- Improved Dock Panel and Coder Stupidity: http://web.archive.org/web/20071030183054/http://www.blogofbug.com/2007/02/11/improved-dock-panel-and-coder-stupidity/
  222. BlogOfBug -- Updates to JCarouselMenu and some bug fixes: http://web.archive.org/web/20070705140159/http://www.blogofbug.com/2007/02/10/updates-to-jcarouselmenu-and-some-bug-fixes/
  223. BlogOfBug -- Updating Blog Jar and New Features to Carousel: http://web.archive.org/web/20070705140255/http://www.blogofbug.com/2007/02/09/updating-blog-jar-and-new-features-to-carousel/
  224. : http://web.archive.org/web/20071205015241/http://www.blogofbug.com/2007/03/28/janimatedlist-minor-change-demo-source-code/
  225. BlogOfBug -- Carousel Menu (a la Apple TV): http://web.archive.org/web/20071215200236/http://www.blogofbug.com/2007/01/
  226. BlogOfBug -- Java Carousel Part 3 - Reflected Images Love Carousels: http://web.archive.org/web/20071209122306/http://www.blogofbug.com:80/2006/12/29/java-carousel-part-3-reflected-images-love-carousels/
  227. BlogOfBug -- Java Carousel Part 2 - Creating a Carousel Component: http://web.archive.org/web/20071209122248/http://www.blogofbug.com/2006/12/29/java-carousel-part-2-creating-a-carousel-component/
  228. BlogOfBug -- Java Carousel Part 1 - Layout and Animation: http://web.archive.org/web/20071015205222/http://blogofbug.com/2006/12/#post-27
  229. BlogOfBug -- Java Dock Component: http://web.archive.org/web/20070705084521/http://www.blogofbug.com/2007/01/11/java-dock-component/
  230. How to center a Swing frame or dialog: http://www.java2s.com/Code/Java/Swing-JFC/Howtocenteraframeordialog.htm
  231. A Visual Guide to Layout Managers: https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html
  232. Swing -- Nimbus Cross-platform Look & Feel: https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html
  233. Handling Images in a Java GUI Application: http://netbeans.org/kb/docs/java/gui-image-display.html
  234. Designing an Advanced Java Form Using the GridBag Customizer: http://netbeans.org/kb/docs/java/gbcustomizer-advanced.html?intcmp=925655
  235. Connecting to Oracle Database from NetBeans IDE 7.0: http://netbeans.org/kb/docs/ide/oracle-db.html?intcmp=925655
  236. How do I add key listener event handler to JTextField?: http://www.kodejava.org/examples/224.html
  237. React to the ENTER key in a Textfield: http://www.rgagnon.com/javadetails/java-0253.html
  238. Programmatically clicking a GUI button in Java Swing: http://stackoverflow.com/questions/5109274/programmatically-clicking-a-gui-button-in-java-swing
  239. Writing Your own Twitter Application Using Java, Swing, and Twitter4j: http://www.developer.com/java/article.php/3833556/Writing-Your-own-Twitter-Application-Using-Java-Swing-and-Twitter4j.htm
  240. Java Programming Tutorial -- Programming Graphical User Interface (GUI): http://www.ntu.edu.sg/home/ehchua/programming/java/j4a_gui.html
  241. What Future Java Releases Mean for Legacy Desktop Apps: http://dzone.com/articles/what-the-future-java-releases-will-mean-for-legacy
  242. Java Swing Browser GUI created indirectly on a PDA: http://www.researchgate.net/figure/Java-Swing-Browser-GUI-created-indirectly-on-a-PDA_fig1_220780994
  243. ON-SCREEN KEYBOARD FOR YOUR JAVA SWING SOFTWARE: http://www.mindfusion.eu/java-keyboard.html
  244. Introduction to Event Listeners: http://docs.oracle.com/javase/tutorial/uiswing/events/intro.html
  245. Swing CardLayout: help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.wb.swing.doc.user%2Fhtml%2Flayoutmanagers%2Fswing%2Fcardlayout.html
  246. How to add row in JTable?: https://stackoverflow.com/questions/3549206/how-to-add-row-in-jtable
  247. A JButton listener example: https://alvinalexander.com/java/jbutton-listener-pressed-actionlistener
  248. JPanel doesn't update until resize Jframe: https://stackoverflow.com/questions/11069807/jpanel-doesnt-update-until-resize-jframe
  249. Retrieving a double from a JTextArea while solving for X: https://stackoverflow.com/questions/11065830/retrieving-a-double-from-a-jtextarea-while-solving-for-x/11067529#11067529
  250. Check valid enum values before using enum: https://stackoverflow.com/questions/1509614/check-valid-enum-values-before-using-enum/2546726#2546726
  251. Anonymous Classes in Java: https://www.baeldung.com/java-anonymous-classes
  252. [Solved] No main manifest attribute, in jar Maven and SpringBoot: https://javahungry.blogspot.com/2019/05/solved-no-main-manifest-attribute-in-jar.html (what to do for "runnable/executable JARs" .vs. regular compiled JARs
  253. JavaFX: http://javafx.com/samples/index.html
  254. Google App Engine and Managed VM's -- Java Framework support & integrations: http://www.dzone.com/articles/java-frameworks-and (table summarizing frameworks that used to not work but currently do work i Google's AppEngine - Cloud Application Hosting Service)
  255. Using EJB Lite and JPA in a Java SE Application: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/EJBLiteAndJPAInJavaSE/EJBLiteAndJPAInJavaSE.html
  256. Looking Forward to JPA 2.0 -- What's New: http://java.dzone.com/articles/looking-forward-jpa-20
  257. Looking Forward To JPA 2.0 - Part 2: http://java.dzone.com/articles/looking-forward-to-jpa-20-part
  258. The Top 5 New Annotations in JPA 2: http://www.developer.com/java/ent/article.php/3898336/The-Top-5-New-Annotations-in-JPA-2.htm
  259. The abstract schema type is unknown: https://stackoverflow.com/questions/18089699/the-abstract-schema-type-is-unknown
  260. PRO EJB 3.0 attention Mike Keith and Merrick Schincariol: https://coderanch.com/t/318551/java/PRO-EJB-attention-Mike-Keith
  261. Managing databases with Eclipse and the Database Tools tutorial: https://www.vogella.com/tutorials/EclipseDataToolsPlatform/article.html
  262. Eclipse plugins -- Dali - JPA tool user guide: http://www.eclipse.org/webtools/dali/docs/dali_user_guide_2.3.pdf (NOTE: now integrated into Eclipse Data Tools)
  263. Creating JPA entity beans in a JPA project from database tables: https://www.ibm.com/support/knowledgecenter/SSRTLW_9.6.1/com.ibm.jpa.doc/topics/t_jpa_bottomup.html
  264. Netbeans plugins -- Jeddict - JPA Modeler: http://plugins.netbeans.org/plugin/53057/jpa-modeler
  265. MinuteProject -- JPA1/JPA2 Swing Desktop GUI - Reverse Engineering Tool: https://javacodesamples.wordpress.com/2011/02/04/jpa2-reverse-engineering-tool/
  266. MinuteProject 4.x -- JPA2 -- Lazuly showcase: https://minuteproject.blogspot.com/2011/06/minuteproject-4-jpa2-lazuly-showcase.html
  267. Object-Relational Mappings - Generating JPA Entities: http://docs.oracle.com/cd/E14545_01/help/oracle.eclipse.tools.orm.doc/html/files/genJPAEntities.html
  268. Creating JPA entity beans from database tables: http://publib.boulder.ibm.com/infocenter/radhelp/v8/index.jsp?topic=%2Fcom.ibm.jpa.doc%2Ftopics%2Ft_jpa_bottomup.html
  269. Can I auto create database from JPA?: http://ubuntuforums.org/showthread.php?t=1023198
  270. JPQL tutorial: https://thoughts-on-java.org/jpql/
  271. A Beginner's Guide to JPA and Hibernate Cascade Types: http://java.dzone.com/articles/beginners-guide-jpa-and
  272. Opinion Piece - How JPA 2.1 has become the new EJB 2.0 thanks to Annotations: http://blog.jooq.org/2015/04/15/how-jpa-2-1-has-become-the-new-ejb-2-0/
  273. Java EE 7 - Applying JPA to Stored Procedures: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/Stored_Proc/StoredProcedures.html
  274. A Beginner’s Guide to JPA’s "persistence.xml": https://www.thoughts-on-java.org/jpa-persistence-xml/
  275. Optimistic locking in JPA/Hibernate: https://blog.arnoldgalovics.com/optimistic-locking-in-jpa-hibernate/
  276. Live with your SQL-fetish and choose the right tool for the job : https://speakerdeck.com/michaelsimons/live-with-your-sql-fetish-and-choose-the-right-tool-for-the-job
  277. 5 Things Beginners Need to Know Before Using JPA / Hibernate / EclipseLink: https://www.thoughts-on-java.org/5-things-beginners-need-to-know-before-using-jpa-hibernate-eclipselink/
  278. What is the Difference Between JPA and Hibernate?: http://www.javaguides.net/2018/12/what-is-difference-between-jpa-and-hibernate.html
  279. What is the Difference Between OpenJPA, EclipseLink & Hibernate?: https://thoughts-on-java.org/difference-jpa-hibernate-eclipselink/
  280. JPA tutorials: http://www.javaguides.net/p/jpa-tutorial-java-persistence-api.html
  281. Introduction to JPA & Hibernate including examples: https://www.slideshare.net/ecosio/introduction-to-jpa-and-hibernate-using
  282. Java Persistence API (JPA) Step By Step (SLIDES): https://www.slideshare.net/junyuo/java-persistence-api-jpa-step-by-step-presentation
  283. JPA Performance Benchmark (JPAB): https://www.jpab.org
  284. JPA Join Types: https://www.baeldung.com/jpa-join-types
  285. JPA & SQL injection prevention: https://www.baeldung.com/sql-injection
  286. CapCourse #161 -- The Java Persistence API: http://www.capcourse.com/161_Outline_21.html | DOWNLOAD
  287. CapCourse #162 -- Java EE Persistence: http://www.capcourse.com/162_Outline_21.html
  288. A JPQL Terminal: http://www.capcourse.com/Library/JPQLTerminal/index.html
  289. JSF, JPA, and EJB: http://www.capcourse.com/Library/JSF+EJB/JSF+EJB_50.pdf
  290. Configuring and mapping database tables to JPA entities: https://nullbeans.com/configuring-and-mapping-database-tables-to-jpa-entity-classes/
  291. JPA Tutorial - JPA OneToMany Mapping Table Example: http://www.java2s.com/Tutorials/Java/JPA/0810__JPA_OneToMany_Mapping_Table.htm
  292. JPA Set Mapping: https://www.javatpoint.com/jpa-set-mapping
  293. Best Practices for Many-To-One and One-To-Many Association Mappings: http://https://thoughts-on-java.org/best-practices-many-one-one-many-associations-mappings/
  294. The best way to map a @OneToMany relationship with JPA and Hibernate: https://vladmihalcea.com/the-best-way-to-map-a-onetomany-association-with-jpa-and-hibernate/
  295. JPA -- WHERE clause (JPQL / Criteria API): https://www.objectdb.com/java/jpa/query/jpql/where
  296. JPA counting its subclass for one to many relationship: https://stackoverflow.com/questions/41109769/jpa-counting-its-subclass-for-one-to-many-relationship
  297. JPA Tutorial - JPA Query COUNT Example: http://www.java2s.com/Tutorials/Java/JPA/4325__JPA_Query_In_OneToMany.htm
  298. JPA Tutorial - JPA Query COUNT Example: http://www.java2s.com/Tutorials/Java/JPA/4510__JPA_Query_COUNT.htm
  299. JPA Tutorial - JPA Query Date Parameters Example: http://www.java2s.com/Tutorials/Java/JPA/4030__JPA_Query_Date_Parameters.htm
  300. JPA Tutorial - JPA OneToMany Mapping Table Example: http://www.java2s.com/Tutorials/Java/JPA/0810__JPA_OneToMany_Mapping_Table.htm
  301. http://www.hibernate.org/license
  302. Hibernate Made Easy: http://jpa.ezhibernate.com/Javacode/learn.jsp?tutorial=24goodhibernatejpabook
  303. JPetStore lives on as the official example of typical usage of iBatis framework: http://sourceforge.net/projects/ibatisjpetstore/
  304. IBATIS: http://ibatis.apache.org/ (RETIRED)
  305. EclipseLink -- Annotation Extensions Reference: https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/annotations_ref.htm#CACGCEIJ
  306. DataNucleus Access Platform 3.1: http://www.datanucleus.org/products/accessplatform_3_1/index.html
  307. CXF module-info.java package names (for use with Java 1.9+): https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=85475385
  308. Embracing a Modular Java Platform -- Apache CXF on Java 10: https://dzone.com/articles/embracing-modular-java-platform-apache-cxf-on-java
  309. ROME RSS Parser (former Sun page): https://web.archive.org/web/20070706121841/https://rome.dev.java.net/
  310. Build Java Application for Mobile Devices: http://www.youtube.com/watch?v=RZJQlIxusq
  311. Will Google's Android ever support .NET: http://stackoverflow.com/questions/214615/will-google-android-ever-support-net/214632#214632
  312. The Most Popular Java Tools for Every Phase of Development: http://dzone.com/articles/research-most-popular-java-tools-for-every-phase-o
  313. java.util.formatter: https://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html (good JavaDoc example)
  314. Ant build tool -- org.apache.tools.ant.DefaultLogger: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/DefaultLogger.java?view=co (good JavaDoc example)
  315. Google Guava lib - com.google.common.eventbus: http://google.github.io/guava/releases/19.0/api/docs/com/google/common/eventbus/package-summary.html#package_description (good JavaDoc example)
  316. Good example of Javadoc: https://stackoverflow.com/questions/1079713/good-example-of-javadoc
  317. How to Write Doc Comments for the Javadoc Tool: http://java.sun.com/j2se/javadoc/writingdoccomments/ (old Sun link)
  318. Javadoc Tutorial: http://www.mcs.csueastbay.edu/~billard/se/cs3340/ex7/javadoctutorial.html
  319. How do I change the (default/auto-generated) Javadocs template generated in Eclipse?: https://stackoverflow.com/questions/2612633/how-do-i-change-the-javadocs-template-generated-in-eclipse
  320. Using the Generate Javadoc Wizard (in RAD/Eclipse): http://pic.dhe.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftasks-198.htm
  321. Why can't I generate javadoc for this specific project? No error message: https://stackoverflow.com/questions/13123905/why-cant-i-generate-javadoc-for-this-specific-project-no-error-message
  322. Can't generate javadoc in eclipse: https://stackoverflow.com/questions/15434955/cant-generate-javadoc-in-eclipse
  323. JDK - Collections class (clean Javadoc example): http://www.docjar.net/html/api/java/util/Collections.java.html
  324. Apache Ant - DefaultLogger (clean Javadoc example): http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/DefaultLogger.java?view=co
  325. Apache Ant - DirectoryScanner (clean Javadoc example): http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/DirectoryScanner.java?view=markup
  326. Manage multiple Java SDKs with SDKMAN! with ease: https://blog.codeleak.pl/2020/01/manage-multiple-java-sdks-with-sdkman.html
  327. The JVM Architecture Explained: http://dzone.com/articles/jvm-architecture-explained
  328. Introduction to Java Bytecode: https://dzone.com/articles/introduction-to-java-bytecode
  329. What is the difference between public, protected, package-private and private in Java?: https://stackoverflow.com/questions/215497/what-is-the-difference-between-public-protected-package-private-and-private-in#215505
  330. Why doGet(), doPost() Methods are “protected”?: https://stackoverflow.com/questions/14556304/why-doget-dopost-methods-are-protected
  331. Oracle Java specs -- Chapter 4 - The class File Format: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html
  332. Java – How to list all files in a directory?: https://www.mkyong.com/java/java-how-to-list-all-files-in-a-directory/
  333. Java, List only subdirectories from a directory, not files: https://stackoverflow.com/questions/5125242/java-list-only-subdirectories-from-a-directory-not-files/5125258
  334. Java NIO, get all subfolders of some folder: https://stackoverflow.com/questions/38269073/java-nio-get-all-subfolders-of-some-folder
  335. Java SE 6 API Docs - Properties class: http://docs.oracle.com/javase/6/docs/api/java/util/Properties.html
  336. How to read a file from resources folder in properties file: https://stackoverflow.com/questions/50492133/how-to-read-a-file-from-resources-folder-in-properties-file
  337. Java's “os.name” for Windows 10?: https://stackoverflow.com/questions/31909107/javas-os-name-for-windows-10
  338. StringBuffer to File - Need Example: https://coderanch.com/t/391312/java/StringBuffer-File
  339. Arrays in Java: https://introcs.cs.princeton.edu/java/14array/
  340. Java Program to Check if An Array Contains a Given Value: https://www.programiz.com/java-programming/examples/array-contains-value
  341. How to use comparison operators like >, =, < on BigDecimal: https://stackoverflow.com/questions/34677644/how-to-use-comparison-operators-like-on-bigdecimal
  342. Java Recursion: https://www.programiz.com/java-programming/recursion
  343. Recursion in Java: https://www.javatpoint.com/recursion-in-java
  344. Java Fibonacci examples: https://www.mkyong.com/java/java-fibonacci-examples/
  345. Java - format double value as dollar amount: https://stackoverflow.com/questions/13791409/java-format-double-value-as-dollar-amount#13791422
  346. I need to convert an int variable to double: https://stackoverflow.com/questions/13252903/i-need-to-convert-an-int-variable-to-double
  347. Advanced Java Tutorial list: http://www.javacodegeeks.com/2015/09/advanced-java.html
  348. Invoke methods of an object using reflection: http://javadb.com/invoke-methods-of-an-object-using-reflection
  349. Java dynamic function (method) calling through Generics/Reflection: https://stackoverflow.com/questions/3050967/java-dynamic-function-calling
  350. How to pass a type as a method parameter in Java: https://stackoverflow.com/questions/2240646/how-to-pass-a-type-as-a-method-parameter-in-java/6144310
  351. Non-Repeating Random(s) http://www.dreamincode.net/code/snippet2165.htm
  352. Generate random numbers : http://technojeeves.com/joomla/index.php/free/65-generate-random-numbers
  353. Java Write To File: http://www.roseindia.net/java/example/java/io/java-write-to-file.shtml
  354. How to write to file in Java using BufferedWriter: https://beginnersbook.com/2014/01/how-to-write-to-file-in-java-using-bufferedwriter/
  355. Java – Write to File: https://howtodoinjava.com/java/io/java-write-to-file/
  356. Managing Metadata (File and File Store Attributes): http://docs.oracle.com/javase/tutorial/essential/io/fileAttr.html
  357. How can I extract meta data from various video file formats?: http://stackoverflow.com/questions/4941961/how-can-i-extract-meta-data-from-various-video-file-formats
  358. Java library to check a video's metadata (if it's 1080p, 720p, etc): http://stackoverflow.com/questions/7142645/java-library-to-check-a-videos-metadata-if-its-1080p-720p-etc
  359. Playing video (in Java) using JMF, JavaFX or VLCj: http://stackoverflow.com/questions/11097174/playing-video-using-jmf
  360. Is there a Java API for mp4 files?: http://stackoverflow.com/questions/3015393/is-there-a-java-api-for-mp4-files
  361. Inspect a video file with xuggler Java lib: https://examples.javacodegeeks.com/desktop-java/xuggler/inspect-a-video-file-with-xuggler/
  362. Extracting metadata of a Media files with JAVE: http://varuntayur.wordpress.com/2014/08/08/extracting-metadata-of-a-media-files-with-jave/
  363. How to Extract Meta-data from Media file in Android: http://mrbool.com/how-to-extract-meta-data-from-media-file-in-android/28130
  364. Getting Started with FFMPEG-Java: http://fmj-sf.net/ffmpeg-java/getting_started.php
  365. jNotify for file directory monitoring/change listening: http://stackoverflow.com/questions/4941869/directory-listener-in-java
  366. How to watch the file system for changes in Java 7 (JDK 7) : http://java.dzone.com/news/how-watch-file-system-changes
  367. https://web.archive.org/web/20110714194906/http://www.stripesframework.org/display/stripes/JQuery's+Uploadify+with+Stripes
  368. AJAX file upload progress for Java using commons fileupload and prototype: www.ioncannon.net/programming/38/ajax-file-upload-progress-for-java-using-commons-fileupload-and-prototype/
  369. https://web.archive.org/web/20120229040346/http://www.devedup.com/ajaxfileupload/
  370. Handling Form-based File Upload with Java Servlet or JSP (that supports WAP): http://www.developershome.com/wap/wapUpload/wap_uploacd.asp?page=jsp
  371. Java regular expression patterns: http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html#sum
  372. How to split Java String with delimeter comma, space, new line, tab?: http://myprogrammingblog.com/2012/02/20/java-how-to-split-java-string-with-delimeter-comma-space-new-line-tab-solved/
  373. When to use AtomicReference in Java?: https://stackoverflow.com/questions/3964211/when-to-use-atomicreference-in-java
  374. Red Hat replaces Oracle as OpenJDK 8, OpenJDK 11 steward: https://www.theserverside.com/news/252461945/Red-Hat-replaces-Oracle-as-OpenJDK-8-OpenJDK-11-steward
  375. Java Version 1.5.0 or 5.0?: https://docs.oracle.com/javase/1.5.0/docs/relnotes/version-5.0.html
  376. Introduction to Java 5 (SLIDES): https://www.slideshare.net/sandeeprawat94/introduction-to-java-64792837
  377. Java 8 Programming Tutorial -- Java with Eclipse - Setup & Getting Started (SLIDES): https://www.slideshare.net/martyhall/java-8-programming-tutorial-java-with-eclipse-setup-and-getting-started
  378. Robotic recon for human exploration -- Method, assessment, and lessons learned: https://www.researchgate.net/publication/237089000_Robotic_recon_for_human_exploration_Method_assessment_and_lessons_learned (Java usage at NASA)
  379. Java -- Curiosity Mars rover: https://twitter.com/java/status/777618329749954562
  380. JDK & macOS: https://dzone.com/articles/jdk-amp-macos
  381. MacOS Java version handling script: https://gist.github.com/dbuschman7/6688de9c00371766599746d747a11f89
  382. jmap - Memory Map: https://docs.oracle.com/javase/6/docs/technotes/tools/share/jmap.html
  383. Error: Could not find or load main class in Java: http://javarevisited.blogspot.ca/2015/04/error-could-not-find-or-load-main-class-helloworld-java.html
  384. How to Set Classpath for Java on Windows and Linux: http://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html
  385. Error -- Could not find or load main class: https://stackoverflow.com/questions/7485670/error-could-not-find-or-load-main-class
  386. How to Run a JAR file from Command Prompt - Windows and UNIX: http://www.java67.com/2016/01/how-to-run-jar-file-from-command-prompt.html
  387. Oracle docs -- Defining Methods: https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html
  388. Overriding vs. Overloading in Java: https://www.programcreek.com/2009/02/overriding-and-overloading-in-java-with-examples/
  389. Object Ordering: https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html
  390. SYNTACTICAL ERRORS in Java: https://www.dummies.com/programming/java/syntactical-errors-in-java/
  391. Exception Handling & Assertion: http:/www.ntu.edu.sg/home/ehchua/programming/java/j5a_exceptionassert.html
  392. Exceptions in Java: https://www.geeksforgeeks.org/exceptions-in-java/
  393. Declaring a RandomAccessFile object inside a try block gives resource leak warning but declaring it outside does not?: https://stackoverflow.com/questions/26775874/declaring-a-randomaccessfile-object-inside-a-try-block-gives-resource-leak-warni
  394. Java.io.RandomAccessFile.close() Method: http://www.tutorialspoint.com/java/io/randomaccessfile_close.htm
  395. Caution -- Double to BigDecimal in Java: https://www.javaworld.com/article/2073176/caution--double-to-bigdecimal-in-java.html
  396. What Every Computer Scientist Should Know About Floating-Point Arithmetic: https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
  397. JVM Ecosystem Report 2018: https://res.cloudinary.com/snyk/image/upload/v1539774333/blog/jvm-ecosystem-report-2018.pdf
  398. RIP Java SE 6 - A tribute to Java’s longest-serving edition (JDK6 reaches end of life, JDK7 now default): http://jaxenter.com/rip-se-6-a-tribute-to-java-s-longest-serving-edition-46262.html
  399. Java 8 Streams peek() API: https://www.baeldung.com/java-streams-peek-api
  400. Java 8 compatible Reflection, but Faster: https://dzone.com/articles/java-reflection-but-faster
  401. Real World Java 9 (WEBINAR): https://dzone.com/articles/real-world-java-9-webinar
  402. A hard look at the state of Java modularization: https://blog.frankel.ch/hard-look-state-java-modularization/
  403. Explicitly Naming Automatic Java Modules: https://dzone.com/articles/explicitly-naming-automatic-java-modules
  404. Java 9 - The Exciting Bits: https://dzone.com/articles/java-9-the-exciting-bits
  405. Protocol Buffers -- Developer Guide: https://developers.google.com/protocol-buffers/docs/overview
  406. The Evolution of the Producer-Consumer Problem in Java: https://dzone.com/articles/the-evolution-of-producer-consumer-problem-in-java
  407. Writing High Performance Java Application in Java 9: https://coderprog.com/writing-high-performance-java-9-app/
  408. JDK 9 is the End of the Road for Some Features: https://www.javacodegeeks.com/2017/01/jdk-9-end-road-features.html
  409. Java 9 Migration Issues and Resolutions: https://www.baeldung.com/java-9-migration-issue
  410. Using external libraries in JShell: https://advancedweb.hu/using-external-libraries-in-jshell/
  411. 109 New Features In JDK 10: https://www.azul.com/109-new-features-in-jdk-10/
  412. Java 10 - Spring & XML bind: http://joshlong.com/jl/blogPost/java-10.html
  413. Java 10 -- These APIs are as good as gone: https://jaxenter.com/jdk-10-apis-going-away-141439.html
  414. Java10 code examples: http://github.com/askrakesh/examples
  415. Guide to Java Versions and Features: https://dzone.com/articles/a-guide-to-java-versions-and-features
  416. Why are companies still stuck with Java8?: https://www.marcobehler.com/guides/a-guide-to-java-versions-and-features#_why_are_companies_still_stuck_with_java_8
  417. Time to look beyond Java 8: https://blog.joda.org/2018/09/time-to-look-beyond-oracles-jdk.html
  418. 20 Reasons to Move On from Java 8 : https://dev.to/awwsmm/20-reasons-to-move-on-from-java-8-1dio
  419. Java 11 overview (VIDEOS): https://www.youtube.com/playlist?list=PLX8CzqL3ArzXyA_lJzaNmrFqpLOL4aCEz
  420. 90 New Features and APIs in JDK 11 (Part 2) : https://dzone.com/articles/90-new-features-and-apis-in-jdk-11-part-2
  421. Java 11 - Standardized HTTP Client API: https://dzone.com/articles/java-11-standardized-http-client-api
  422. Using Java Flight Recorder With OpenJDK 11: https://dzone.com/articles/using-java-flight-recorder-with-openjdk-11-1
  423. Java 9-11 and IntelliJ IDEA : https://dzone.com/articles/java-11-and-intellij-idea
  424. Should you adopt Java 12 or stick on Java 11? : https://blog.joda.org/2018/10/adopt-java-12-or-stick-on-11.html
  425. Java 11 Released: https://www.infoq.com/news/2018/09/java11-released
  426. Java 11 has Arrived. Is it time to panic?: https://learnprogramming.academy/programming/java-11-has-arrived-is-it-time-to-panic/
  427. Java 11 First Impressions: Are You Ready to Make the Switch?: https://land.overops.com/overops-java-11-recording/
  428. Oracle JDK 11 installer & JAR file association on Windows: https://stackoverflow.com/questions/52536971/oracle-jdk-11-installer-jar-file-association-on-windows
  429. Running JAR file on Windows: https://stackoverflow.com/questions/394616/running-jar-file-on-windows/394628
  430. Getting Ready for Java 11/JDK 11 and deprecated Java EE Modules being removed JAXB, JAX-WS, JAF, JTA, CORBA: https://crunchify.com/java-jdk-11-and-details-on-deprecated-java-ee-modules-including-jaxb-jax-ws-jaf-jta-corba/ (most will live on as separate JAR libs, available via their project website and/or Maven Central repo)
  431. API Updates in Java SE 11 (18.9) : https://dzone.com/articles/api-updates-in-java-se-11-189
  432. APIs to Be Removed From Java 11: https://dzone.com/articles/apis-to-be-removed-from-java-11
  433. It’s time! Migrating to Java 11 -- Why you should migrate to next Java now!: http://medium.com/criciumadev/its-time-migrating-to-java-11-5eb3868354f9
  434. Using Java 11 In Production -- Important Things To Know: https://blog.jetbrains.com/idea/2018/09/using-java-11-in-production-important-things-to-know/
  435. Java 11 Features: http://www.journaldev.com/24601/java-11-features
  436. Fun with Java Backwards Compatibility: https://www.symphonious.net/2019/02/04/fun-with-java-backwards-compatibility/
  437. Java 12 -- New Features and Enhancements Developers Should Know: https://stackify.com/java-12-new-features-and-enhancements-developers-should-know/
  438. Java 12 Released with Experimental Switch Expressions and Shenandoah GC: https://www.infoq.com/news/2019/03/java12-released
  439. Upgrading from Java 8 to Java 12: https://www.infoq.com/articles/upgrading-java-8-to-12

See Also

Applet | Servlet | JSP | J2ME | JavaFX | JavaScript