Java

From BC$ MobileTV Wiki
(Redirected from JAVA)
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 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] [11] [12] [13] [14]

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.

[16]


7

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

[18] [19] [20] [21] [22]


8

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


[26] [27] [28] [29]


9

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

[32]

[38] [39] [40] [41] [42]


10

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

[45] [46] [47]


11

Java SE 11's JDK (somemetimes also referred to as "Java 1.11" when using the old naming scheme, although this was the last one that should ever be referenced in that scheme) was released on 2018-09-25 and is a "Long Term Support" (LTS) version, supported until end of September, 2023 (with extended support available through September, 2026).

One critical change worth noting with JDK 11 is that Oracle is no longer distributing a separate trimmed down JRE, and instead packaging a combined JRE/JDK. They advise use of "jlink" and modules to package trimmed down "JRE-like" distributions and/or smaller runnable binaries. The JRE/JDK are effectively combined into a single Java platform release now and going forward. Microprofile (formerly J2ME for mobile devices) is still available for "embedded Java" use cases, where compute resources need to be minimized.

[55]

[58]

[59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85]


12

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


[86] [87] [88] [89] [90] [91]


13

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

[92]


14

Java SE 14's combined JRE/JDK was released on 2020-03-25.

[93] [94] [95] [96] [97] [98] [99] [100] [101]


15

Java SE 15's combined JRE/JDK was released on 2020-09-25.

[102] [103] [104] [105] [106] [107]


16

Java SE 16's combined JRE/JDK was released on 2021-03-25.

[108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119]


17

Java SE 17's combined JRE/JDK is planned for release on 2021-09-25 and will become the latest "Long Term Support" (LTS) version.

[120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135]


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).

[139] [140]

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.

[141] [142] [143] [144]

GraalVM


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).

[145]

JDK

Java Development Kit (JDK) contains everything the JRE does but also adds required tooling for developing and packaging Java applications. It includes:

  1. appletviewer - for viewing Java applets
  2. javac - Java compiler
  3. java - Java interpreter
  4. javap - Java disassembler
  5. javah - for C header files
  6. javadoc - for creating HTML files
  7. jdb - Java debugger


[147] [148] [149] [150] [151]


OpenJDK

OSS version of the now commercial Oracle JDK.

[155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165]

Packaging

Packages

System & speficication for adding Package-level comments.

[166] [167] [168] [169] [170] [171] [172] [173] [174] [175]

Modules

[176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195]

JAR

[202] [203]

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. [208]


Garbage Collection

[209] [210] [211]

Security

[212] [213]

Operators


File I/O

[214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232]


Serialization

[233] [234] [235] [236] [237] [238]

Network I/O

[239] [240]

Primitives

Bytes

Money

Currency

Proxy

Methods

[242]

Static

[243]

Hash Code


JavaBeans


Threads

[245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263]

[264]


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.

[265] [266] [267] [268] [269] [270] [271] [272]

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

[273][274][275] [276]

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[277] (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).[278]

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. [279]

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). [282][283]

Abstract

[286]

Interface

[287]

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.


[288] [289] [290] [291] [292] [293] [294] [295]


Optional

[296] [297] [298] [299] [300] [301] [302] [303] [304] [305] [306]

Type-inference

[307] [308] [309]


Collections

[310]

Lists

[311] [312] [313]

Sets

Maps

[315] [316] [317] [318] [319]

Streams

[320] [321] [322] [323] [324] [325] [326] [327] [328] [329] [330] [331] [332] [333] [334] [335] [336] [337] [338] [339] [340] [341] [342] [343] [344] [345] [346] [347] [348] [349] [350]


Lambda Expressions

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

[352] [353] [354] [355] [356] [357] [358] [359] [360] [361] [362] [363] [364] [365] [366] [367] [368] [369] [370] [371] [372] [373] [374] [375] [376] [377] [378] [379] [380] [381] [382] [383] [384] [385] [386] [387] [388] [389] [390] [391] [392]

JMX

[393]

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. [394]

[399] [400] [401] [402] [403] [404] [405] [406] [407] [408] [409] [410]

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.[411][412][413][414]

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)[415]

[417] [418] [419] [420] [421]


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.

[422]


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

[427] [428] [429] [430] [431] [432] [433] [434] [435] [436]

Batch

[437]


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

[439] [440] [441] [442] [443] [444] [445] [446] [447] [448] [449] [450]

[451] [452] [453] [454] [455] [456] [457] [458] [459] [460] [461]

[462] [463] [464] [465] [466] [467] [468] [469] [470] [471] [472] [473] [474] [475] [476]

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.

[477]

JMF

Frameworks

[478]

JPA

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

[479]

[484] [485] [486] [487] [488] [489] [490] [491] [492][493][494] [495] [496] [497] [498] [499] [500] [501] [502] [503] [504] [505] [506] [507] [508] [509] [510] [511] [512] [513] [514] [515] [516] [517] [518] [519] [520] [521] [522] [523] [524] [525] [526] [527] [528] [529] [530] [531] [532] [533] [534] [535] [536] [537] [538] [539] [540] [541] [542]

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.

[543]


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.[544]

[545] [546]

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).[547]

EclipseLink

[549]

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).


DTO

Data Transfer Object (DTO) is usually just a POJO with getters/setters to store data. By comparison, a Data Access Object (DAO) is the "persistence layer"-specific class that performs CRUD operations against whichever storage mechanism(s) the application relies on (i.e. Cache-based, File-system, DBMS, NoSQL, Graph, etc) both can be used in MVC architecture.

[550] [551] [552] [553] [554]

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.[555]


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.

[556] [557]


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

[561]


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.

[563] [564] [565] [566] [567] [568] [569] [570] [571] [572] [573] [574] [575] [576] [577] [578] [579] [580] [581] [582] [583] [584] [585] [586] [587] [588] [589] [590] [591]


Resources


Tutorials

zmore complex looping, in that case stick to "append"... which works out "cleaner code"-wise) [608] [609] [610] [611]

[617]

[618] [619] [620] [621] [622]

[625] [626] [627] [628] [629]

[641][642][643][644]

[647]


External Links

[649][650][651][652][653]

[657] [658]

[659] [660] [661] [662]

[663][664]

[666]

[667] [668] [669] [670] [671] [672]

[673] [674][675] [676] [677] [678] [679]

[680] [681]

[684] [685]

[686][687]


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. Oracle's release cadence opens door for Java support rivals: https://www.theserverside.com/news/252484541/Oracles-release-cadence-opens-door-for-Java-support-rivals
  10. 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)
  11. Java Is Still Free: https://docs.google.com/document/d/1nFGazvrCvHMZJgFstlbzoHjpAVwv5DEdnaBr_5pKuHo/preview#heading=h.p3qt2oh5eczi | VIDEO
  12. JetBrains' 25 Things We Love About Java: https://blog.jetbrains.com/idea/2020/05/25-things-we-love-about-java/ (Java's 25th birthday celebration took place in 2020)
  13. jEnv -- Manage your Java environment: https://www.jenv.be
  14. Managing Multiple JDK Installations With jEnv: https://reflectoring.io/manage-jdks-with-jenv/
  15. wikipedia: Java version history
  16. 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
  17. JDK 7 GA: http://jdk.java.net/9/
  18. Java 7 - Do we really need <?> in the diamond operator?: http://java.dzone.com/announcements/java-7-do-we-really-need
  19. Java EE 7 - Concurrency in Asynch Servlets tutorial: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/concurrency/Concurrency.html?cid=8501&ssid=0
  20. Java EE 7 - Hello World for MAVEN 3, JAX-RS 2.0 & JSON: http://www.adam-bien.com/roller/abien/entry/hello_javaee_7_with_maven
  21. Java EE7 - Developing a Batch Processing Application: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/BatchProcessing/BatchProcessing.html?cid=8674&ssid=0#section2
  22. ServiceLoader Dynamic Reloading on JEE7 Web Application: http://javaevangelist.blogspot.cz/2013/11/serviceloader-dynamic-reloading-on-jee7.html
  23. JDK 8 GA: http://jdk.java.net/9/
  24. 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
  25. Java 8 Streams peek() API: https://www.baeldung.com/java-streams-peek-api
  26. Java 8 compatible Reflection, but Faster: https://dzone.com/articles/java-reflection-but-faster
  27. Java 8 multiline string example: https://blog.softhints.com/java-8-multiline-string-example/
  28. Life Beyond Java 8: https://dzone.com/articles/life-beyond-java-8
  29. Amazon Releases Corretto 8 GA - A Downstream Distribution of OpenJDK: https://www.infoq.com/news/2019/03/amazon-releases-corretto-8
  30. JDK 9 GA: http://jdk.java.net/9/
  31. 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
  32. New APIs in Java 9 (.vs. Java 8): https://javaalmanac.io/jdk/9/apidiff/8/
  33. Real World Java 9 (WEBINAR): https://dzone.com/articles/real-world-java-9-webinar
  34. A hard look at the state of Java modularization: https://blog.frankel.ch/hard-look-state-java-modularization/
  35. Explicitly Naming Automatic Java Modules: https://dzone.com/articles/explicitly-naming-automatic-java-modules
  36. Java 9 - The Exciting Bits: https://dzone.com/articles/java-9-the-exciting-bits
  37. Protocol Buffers -- Developer Guide: https://developers.google.com/protocol-buffers/docs/overview
  38. The Evolution of the Producer-Consumer Problem in Java: https://dzone.com/articles/the-evolution-of-producer-consumer-problem-in-java
  39. Writing High Performance Java Application in Java 9: https://coderprog.com/writing-high-performance-java-9-app/
  40. JDK 9 is the End of the Road for Some Features: https://www.javacodegeeks.com/2017/01/jdk-9-end-road-features.html
  41. Java 9 Migration Issues and Resolutions: https://www.baeldung.com/java-9-migration-issue
  42. Using external libraries in JShell: https://advancedweb.hu/using-external-libraries-in-jshell/
  43. JDK 10 GA: http://jdk.java.net/10/
  44. 109 New Features In JDK 10: https://www.azul.com/109-new-features-in-jdk-10/
  45. Java 10 - Spring & XML bind: http://joshlong.com/jl/blogPost/java-10.html
  46. Java 10 -- These APIs are as good as gone: https://jaxenter.com/jdk-10-apis-going-away-141439.html
  47. Java10 code examples: http://github.com/askrakesh/examples
  48. JDK 11 GA: http://jdk.java.net/11/
  49. 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
  50. Java Platform, Standard Edition 11 - Troubleshooting Guide: https://docs.oracle.com/en/java/javase/11/troubleshoot/index.html
  51. 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)
  52. 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)
  53. Updates to the Java SE Platform: https://blogs.oracle.com/java/java-se-releases
  54. A Tale of Two Oracle JDKs: http://marxsoftware.blogspot.com/2018/09/a-tale-of-two-oracle-jdks.html
  55. New APIs in Java 11 (.vs. Java 8): https://javaalmanac.io/jdk/11/apidiff/8/
  56. Guide to Java Versions and Features: https://dzone.com/articles/a-guide-to-java-versions-and-features
  57. 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
  58. Time to look beyond Java 8: https://blog.joda.org/2018/09/time-to-look-beyond-oracles-jdk.html
  59. 20 Reasons to Move On from Java 8 : https://dev.to/awwsmm/20-reasons-to-move-on-from-java-8-1dio
  60. Java 11 overview (VIDEOS): https://www.youtube.com/playlist?list=PLX8CzqL3ArzXyA_lJzaNmrFqpLOL4aCEz
  61. 90 New Features and APIs in JDK 11 (Part 2) : https://dzone.com/articles/90-new-features-and-apis-in-jdk-11-part-2
  62. Java 11 - Standardized HTTP Client API: https://dzone.com/articles/java-11-standardized-http-client-api
  63. Using Java Flight Recorder With OpenJDK 11: https://dzone.com/articles/using-java-flight-recorder-with-openjdk-11-1
  64. Should you adopt Java 12 or stick on Java 11? : https://blog.joda.org/2018/10/adopt-java-12-or-stick-on-11.html
  65. Java 11 Released: https://www.infoq.com/news/2018/09/java11-released
  66. Java 11 has Arrived. Is it time to panic?: https://learnprogramming.academy/programming/java-11-has-arrived-is-it-time-to-panic/
  67. Java 11 First Impressions: Are You Ready to Make the Switch?: https://land.overops.com/overops-java-11-recording/
  68. Oracle JDK 11 installer & JAR file association on Windows: https://stackoverflow.com/questions/52536971/oracle-jdk-11-installer-jar-file-association-on-windows
  69. Running JAR file on Windows: https://stackoverflow.com/questions/394616/running-jar-file-on-windows/394628
  70. 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)
  71. API Updates in Java SE 11 (18.9) : https://dzone.com/articles/api-updates-in-java-se-11-189
  72. APIs to Be Removed From Java 11: https://dzone.com/articles/apis-to-be-removed-from-java-11
  73. 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
  74. 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/
  75. Java 11 Features: http://www.journaldev.com/24601/java-11-features
  76. New Classes in Java 11: http://blog.code-cop.org/2019/12/new-classes-in-java-11.html
  77. Java 11's String.repeat() Method in Action - Building repetitive clause in a PreparedStatement with dynamic number of Parameters: https://marxsoftware.blogspot.com/2020/12/jdk11-string-repeat-preparedstatement.html
  78. Single File Source Code With Java 11: https://dzone.com/articles/single-file-source-code-with-java-11 (bash/batch/shell scripts move over, here comes Java "single-file" directly runnable ".java" files)
  79. Getting Started With Java 11 (If You Are Still Using Java 8): https://simply-how.com/getting-started-with-java-11
  80. 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
  81. It’s time! Migrating to Java 11: https://medium.com/criciumadev/its-time-migrating-to-java-11-5eb3868354f9
  82. Move to OpenJDK-11 but compile in Java 8: https://stackoverflow.com/questions/54147275/move-to-openjdk-11-but-compile-in-java-8
  83. What is the --release flag in the Java 9 compiler?: https://stackoverflow.com/questions/43102787/what-is-the-release-flag-in-the-java-9-compiler
  84. Java 1z0-815 (JDK11 programmer) Certification: https://education.oracle.com/java-se-11-developer/pexam_1Z0-819 PREPARE | PRACTICE | EXAM
  85. From Java 8 to Java 11 – Quick Guide: https://codete.com/blog/java-8-java-11-quick-guide/
  86. Fun with Java Backwards Compatibility: https://www.symphonious.net/2019/02/04/fun-with-java-backwards-compatibility/
  87. Java 12 -- New Features and Enhancements Developers Should Know: https://stackify.com/java-12-new-features-and-enhancements-developers-should-know/
  88. Java 12 Released with Experimental Switch Expressions and Shenandoah GC: https://www.infoq.com/news/2019/03/java12-released
  89. Upgrading from Java 8 to Java 12: https://www.infoq.com/articles/upgrading-java-8-to-12
  90. Java 12 - The Teeing Collector: https://dzone.com/articles/java-12-the-teeing-collector
  91. Variance in Java: https://dzone.com/articles/variance-in-java
  92. Busy Developers’ Guide to Java 9, 10, 11, 12, 13, and Above: https://4comprehension.com/busy-developers-guide-to-java-9-10-11-12-13-and-above/
  93. Java Records (JEP 359): https://www.vojtechruzicka.com/java-records/
  94. Java 14 Records -- An Introduction: https://alidg.me/blog/2020/1/31/java14-records
  95. Serializable Records: https://inside.java/2020/07/20/serializablerecords/
  96. Serializing Java 14 Records: https://www.javaspecialists.eu/archive/Issue276.html
  97. Fun with Java Records: https://benjiweber.co.uk/blog/2020/09/19/fun-with-java-records/ | SRC
  98. JDK 14/JEP 305 instanceof Pattern Matching "Smart Casts": httops://marxsoftware.blogspot.com/2020/02/jdk14-instanceof-pattern-matching.html
  99. Spring Tips -- Java 14 (or, Can Your Java Do This?): https://spring.io/blog/2020/03/11/spring-tips-java-14-or-can-your-java-do-this
  100. Java 14 is in Feature-Freeze and Release ramp-down: https://www.infoq.com/news/2019/12/java14-feature-freeze/
  101. Java 14 Released (2020-03-17): https://www.infoq.com/news/2020/03/java14-released/
  102. Java 15 / JDK 15: General Availability: https://mail.openjdk.java.net/pipermail/announce/2020-September/000291.html
  103. Java 15 - the Story So Far: https://www.infoq.com/news/2020/04/java-15-story-so-far/
  104. New language features (Java 8 to Java 15): https://advancedweb.hu/new-language-features-since-java-8-to-15/
  105. A categorized list of all Java and JVM features since JDK 8 to 15: https://advancedweb.hu/a-categorized-list-of-all-java-and-jvm-features-since-jdk-8-to-15/
  106. Java 15 -- Biased locking a goner, but better things "Loom" ahead (with Project Loom): https://www.javaspecialists.eu/archive/Issue282.html
  107. Java 15 Released: https://www.infoq.com/news/2020/09/java15-released/
  108. 67 New Features in JDK 16: https://dzone.com/articles/67-new-features-in-jdk-16
  109. Records and Pattern Matching for Instanceof Finalized in JDK 16: https://www.infoq.com/news/2020/08/java16-records-instanceof/
  110. JDK16 javac xlint Warning about Default Constructors: https://marxsoftware.blogspot.com/2020/08/jdk16-javac-xlint-warning-default-constructors.html
  111. Metaspace in OpenJDK 16: https://lkorinth.github.io/posts/2020-11-27-metaspace.html
  112. JDK 16 checking indexes & ranges of longs: https://marxsoftware.blogspot.com/2020/11/jdk16-check-long-indexes-ranges.html
  113. JDK 16 - Stream to List in one easy call: https://marxsoftware.blogspot.com/2020/12/jdk16-stream-to-list.html
  114. Going Beyond Java 8 -- Pattern Matching for instanceof in JDK 14 .vs. 16: https://dzone.com/articles/going-beyond-java-8-pattern-matching-for-instanceo
  115. What's new in JDK 16 -- Sub-milliseond Max Pause Times: https://malloc.se/blog/zgc-jdk16
  116. Looking into the JDK 16 vector API: https://www.mscharhag.com/java/vector-api
  117. What's New in Java 16: https://www.infoq.com/articles/java-16-new-features/
  118. A categorized list of all Java and JVM features since JDK 8 to 16: https://advancedweb.hu/a-categorized-list-of-all-java-and-jvm-features-since-jdk-8-to-16/
  119. New Features in Java 16: https://www.baeldung.com/java-16-new-features
  120. What We Know about Java 16 and 17 So Far: https://www.infoq.com/news/2020/11/java16-so-far/
  121. Proposed schedule for JDK 17: https://mail.openjdk.java.net/pipermail/jdk-dev/2021-March/005266.html
  122. JDK 17 -- JEP 406 - Pattern Matching for switch (preview): https://openjdk.java.net/jeps/406
  123. JDK 17 -- Hexadecimal Formatting and Parsing: https://marxsoftware.blogspot.com/2020/12/jdk17-hex-formatting-parsing.html
  124. JDK 17 -- Monitoring "Deserialization events" to Improve Application Security: https://inside.java/2021/03/02/monitoring-deserialization-activity-in-the-jdk/
  125. Upgrade to Java 16 or 17: https://www.infoq.com/presentations/upgrade-java16-java17/
  126. Inside Java Newscast -- #6 - Java 17 features & development: https://www.youtube.com/watch?v=Twwpk6vub1M
  127. Internal JDK Elements Strongly Encapsulated in JDK 17: https://www.infoq.com/news/2021/06/internals-encapsulated-jdk17/
  128. Internal packages that will no longer be open by default: https://cr.openjdk.java.net/~mr/jigsaw/jdk8-packages-denied-by-default
  129. Is Java 17 a Glass Half Full? : https://www.infoq.com/news/2021/07/java-17-glass/
  130. JDK 17 rollout -- JEP Café #2 - Sealed Classes: https://inside.java/2021/07/22/jepcafe2/
  131. OpenJDK -- JEP 416 - Reimplement Core Reflection with "Method Handles": https://openjdk.java.net/jeps/416
  132. JDK 17 Security Enhancements: https://seanjmullan.org/blog/2021/09/14/jdk17
  133. The Arrival of Java 17!: https://inside.java/2021/09/14/the-arrival-of-java17/
  134. Java 17, the Next Long-Term Support Release, is Now Available : https://www.infoq.com/news/2021/09/java17-released/
  135. Java 17 released with updates to LTS schedule: https://sdtimes.com/java/java-17-released-with-updates-to-lts-schedule/
  136. The Java Language Specification, Third Edition: http://docs.oracle.com/javase/specs/jls/se5.0/html/j3TOC.html
  137. The JavaTM Virtual Machine Specification - 2nd Edition: http://docs.oracle.com/javase/specs/jvms/se5.0/html/VMSpecTOC.doc.html
  138. Working with Manifest Files - The Basics: http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html
  139. Advanced Java Tutorial: http://www.javacodegeeks.com/2015/09/advanced-java.html
  140. 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/
  141. JVM Architecture 101 -- Get to Know Your Virtual Machine: https://blog.takipi.com/jvm-architecture-101-get-to-know-your-virtual-machine/
  142. 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
  143. JVM Architecture 101 -- Get to Know Your Virtual Machine: https://blog.overops.com/jvm-architecture-101-get-to-know-your-virtual-machine/
  144. 7 JVM Arguments of Highly Effective Applications: https://dzone.com/articles/7-jvm-arguments-of-highly-effective-applications-1
  145. https://stackoverflow.com/questions/1906445/what-is-the-difference-between-jdk-and-jre
  146. Setup Java on Linux sample script: https://gist.github.com/sdmcraft/2c5abbdeccf37e1642e5
  147. JDK 10: http://jdk.java.net/10/
  148. JDK 11: http://jdk.java.net/11/
  149. Building Java 10+ projects on Travis CI: https://www.deps.co/guides/travis-ci-latest-java/
  150. Most commonly available JDKs: https://blog.frankel.ch/common-jdks/
  151. Moving the JDK to a Two Year LTS Cadence: https://blogs.oracle.com/java/post/moving-the-jdk-to-a-two-year-lts-cadence
  152. Amazon Corretto 8: https://dzone.com/articles/amazon-corretto-8-1 (Amazon distribution of the OpenJDK)
  153. Amazon Corretto -- Another OpenJDK (and how to use it): https://dzone.com/articles/amazon-corretto-another-jdk
  154. SAP builds its own Java distribution: https://www.techworld.com.au/article/658340/sap-builds-its-own-java-distribution/
  155. OpenJDK vs OracleJDK — which one to use when: https://medium.com/@sairamkrish/openjdk-vs-oraclejdk-which-one-to-use-when-936ae5315600
  156. Eliminating Java Update Confusion: https://dzone.com/articles/eliminating-java-update-confusion
  157. OpenJDK vs. OracleJDK - which are you using?: https://www.reddit.com/r/java/comments/6g86p9/openjdk_vs_oraclejdk_which_are_you_using/
  158. OracleJDK .vs. OpenJDK and Java JDK Development Process: https://javapapers.com/java/oracle-jdk-vs-openjdk-and-java-jdk-development-process/
  159. Differences between Oracle JDK and OpenJDK: https://stackoverflow.com/questions/22358071/differences-between-oracle-jdk-and-openjdk
  160. OpenJDK - Oracle is better?: https://askubuntu.com/questions/437752/openjdk-oracle-is-better
  161. 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
  162. What is the difference between Oracle JDK and Open JDK?: https://www.quora.com/What-is-the-difference-between-Oracle-JDK-and-Open-JDK
  163. 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
  164. Return of the "OpenJDK Developers' guide": https://www.infoq.com/news/2020/07/openjdk-dev-guide/
  165. Microsoft Introduces Microsoft Build of OpenJDK: https://www.infoq.com/news/2021/04/microsoft-build-of-openjdk/
  166. "package-info.java" example: https://alvinalexander.com/java/jwarehouse/openjdk-8/langtools/src/share/classes/com/sun/javadoc/package-info.java.shtml
  167. The package-info.java File: https://www.baeldung.com/java-package-info
  168. javadoc - The Java API Documentation Generator: https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javadoc.html
  169. 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
  170. What’s package-info.java for?: https://www.intertech.com/Blog/whats-package-info-java-for/
  171. Why is package-info.java useful?: https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful
  172. W3schools -- Packages: https://www.w3schools.com/java/java_packages.asp
  173. Intro to the Java SecurityManager: https://www.baeldung.com/java-security-manager
  174. Retrieving a Class Name in Java: https://www.baeldung.com/java-class-name
  175. What is the difference between canonical name, simple name and class name in Java Class?:https://stackoverflow.com/questions/15202997/what-is-the-difference-between-canonical-name-simple-name-and-class-name-in-jav
  176. Core Java, Volume II -- Advanced Features, by Cay S. Horstmann (BOOK): https://www.oreilly.com/library/view/core-java-volume/9780135167175/ | Ch.9 - Java Platform Module System
  177. Java Modules: http://tutorials.jenkov.com/java/modules.html
  178. Understanding Java 9 Modules: https://www.oracle.com/corporate/features/understanding-java-9-modules.html
  179. Code-First Java Module System Tutorial: https://blog.codefx.org/java/java-module-system-tutorial/
  180. "module-info.java" tutorial: http://tutorials.jenkov.com/java/modules.html
  181. Java Magazine -- "More Java 9" (Sep/Oct 2017): http://www.javamagazine.mozaicreader.com/SeptOct2017#&pageSet=23&page=0&contentItem=0
  182. JDK 9 New Features -- Java Module System - Project Jigsaw: https://www3.ntu.edu.sg/home/ehchua/programming/java/JDK9_NewFeatures.html
  183. Getting Started with Java 9 Module System: https://www.jetbrains.com/help/idea/getting-started-with-java-9-module-system.html
  184. Gradle -- Building Java 9 Modules: https://guides.gradle.org/building-java-9-modules/
  185. Java 9 Modularity -- Patterns and Practices for Developing Maintainable Applications (September 2017): http://shop.oreilly.com/product/0636920049494.do
  186. Java 9 Modules (Part 1) -- Introduction: https://dzone.com/articles/java-9-modules-introduction-part-1
  187. Java 9 Modules (Part 2) -- IntelliJ and Maven: https://dzone.com/articles/java-9-modules-part-2-intellij-and-maven
  188. Java 9 Modules (Part 3) -- Directives: https://dzone.com/articles/java-9-modules-part-3-directives
  189. Java 9 Modules Tutorial: https://examples.javacodegeeks.com/core-java/java-9-modules-tutorial/
  190. 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
  191. Java 9 New Features: https://www.baeldung.com/new-java-9 (incldes a simple Modules example)
  192. Migrating the ServiceLoader to the Java 9 module system: https://blog.frankel.ch/migrating-serviceloader-java-9-module-system/
  193. The State of the Module System: http://openjdk.java.net/projects/jigsaw/spec/sotms/
  194. 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
  195. What "Modules" are about: https://inside.java/2021/09/10/what-are-modules-about/
  196. Packaging Programs in JAR Files: http://docs.oracle.com/javase/tutorial/deployment/jar/index.html
  197. wikipedia: JAR (file format)
  198. What is a JAR file?: http://www.roseindia.net/java/example/java/util/JarFile.shtml
  199. http://thinkitdifferently.wordpress.com/2009/02/18/jar-classpath/
  200. How to run a JAR file: http://www.wikihow.com/Run-a-.Jar-Java-File
  201. 5 things you should know about JARs (in Java 6+): http://www.ibm.com/developerworks/library/j-5things6/
  202. Oracle Lesson -- Packaging Programs in JAR Files: https://docs.oracle.com/javase/tutorial/deployment/jar/
  203. Viewing Contents of a JAR File: https://www.baeldung.com/java-view-jar-contents
  204. wikipedia: WAR file format (Sun)
  205. EAR packaging: http://docs.oracle.com/javaee/1.4/tutorial/doc/Overview5.html
  206. wikipedia: EAR (file format)
  207. 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
  208. wikipedia: Classpath (Java)
  209. How to Tune Java Garbage Collection: http://java.dzone.com/articles/how-tune-java-garbage
  210. 5 Coding Hacks to Reduce GC Overhead: http://java.dzone.com/articles/5-coding-hacks-reduce-gc
  211. 5 ways to force Java garbage collection: https://www.theserverside.com/video/5-ways-to-force-Java-garbage-collection
  212. Jackson Deserialization Vulnerability: https://snyk.io/blog/jackson-deserialization-vulnerability/
  213. Changing a field's type in recent JDKs: https://blog.frankel.ch/changing-field-type-recent-jdks/
  214. How to Read a File in Java: https://www.baeldung.com/reading-file-in-java
  215. How to read file in Java with NIO – BufferedReader: https://mkyong.com/java/how-to-read-file-from-java-bufferedreader-example/
  216. Java 8 Stream – Read a file line by line: https://mkyong.com/java8/java-8-stream-read-a-file-line-by-line/
  217. Java Streams overview: https://dzone.com/articles/java-streams-overview-part-i
  218. Java – Read a file from resources folder: https://mkyong.com/java/java-read-a-file-from-resources-folder
  219. Java – Read File to String: https://howtodoinjava.com/java/io/java-read-file-to-string-examples/
  220. Java – How to read a file: https://mkyong.com/java/java-how-to-read-a-file/
  221. How to read and write Java object to a file: https://mkyong.com/java/how-to-read-and-write-java-object-to-a-file/
  222. 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
  223. Java – Write to File: http://howtodoinjava.com/java/io/java-write-to-file/
  224. How to write to file in Java – BufferedWriter: https://mkyong.com/java/how-to-write-to-file-in-java-bufferedwriter-example/
  225. Java – How to save a String to a File: https://mkyong.com/java/java-how-to-save-a-string-to-a-file/
  226. Java BufferedWriter class: https://www.javatpoint.com/java-bufferedwriter-class
  227. Java – How to create and write to a file: https://mkyong.com/java/java-how-to-create-and-write-to-a-file/
  228. JSoup -- Load a Document from a File: https://jsoup.org/cookbook/input/load-document-from-file
  229. Convert InputStream to BufferedReader: https://stackoverflow.com/questions/5200187/convert-inputstream-to-bufferedreader
  230. How to get an InputStream from a BufferedImage?: https://stackoverflow.com/questions/649186/how-to-get-an-inputstream-from-a-bufferedimage
  231. How to save a BufferedImage as a File: https://stackoverflow.com/questions/12674064/how-to-save-a-bufferedimage-as-a-file
  232. How to convert Byte Array to Image in java?: https://www.tutorialspoint.com/How-to-convert-Byte-Array-to-Image-in-java
  233. JavaDocs -- Serializable: https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html
  234. What is object serialization?: https://stackoverflow.com/questions/447898/what-is-object-serialization
  235. Serialization and Deserialization in Java with Example: https://www.geeksforgeeks.org/serialization-in-java/
  236. Java object serialization - Tutorial: https://www.vogella.com/tutorials/JavaSerialization/article.html
  237. Java - Serialization: https://www.tutorialspoint.com/java/java_serialization.htm
  238. Serializing an Object via a Client/Server Connection: https://www.developer.com/design/serializing-an-object-via-a-client-server-connection/
  239. InsideJava -- Episode 16 “Let's Discuss JDK and Networking” with Michael McMahon & Daniel Fuchs: https://inside.java/2021/04/12/podcast-016/ (JDK 11+ new HTTPClient)
  240. Networking I/O with Virtual Threads - Under the hood: https://inside.java/2021/05/10/networking-io-with-virtual-threads/
  241. Java – How to convert Bytes to Hex: http://www.mkyong.com/java/java-how-to-convert-bytes-to-hex/
  242. Don’t Extract Everything Into a Method: https://dzone.com/articles/dont-extract-everything-into-a-method
  243. A Guide to the Static Keyword in Java: https://www.baeldung.com/java-static
  244. Concurrency: http://java.sun.com/docs/books/tutorial/essential/concurrency/
  245. 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)
  246. Java Thread example: https://www.journaldev.com/1016/java-thread-example
  247. Thread Life Cycle in Java – Thread States in Java: https://www.journaldev.com/1044/thread-life-cycle-in-java-thread-states-in-java
  248. Multithreading in Java: https://www.journaldev.com/1079/multithreading-in-java
  249. Common Concurrency Pitfalls in Java: https://www.baeldung.com/java-common-concurrency-pitfalls
  250. Java - Thread Synchronization: https://www.tutorialspoint.com/java/java_thread_synchronization.htm
  251. Java.lang.Thread.sleep() Method: https://www.tutorialspoint.com/java/lang/thread_sleep_millis.htm
  252. How can we stop a thread in Java?: https://www.tutorialspoint.com/how-can-we-stop-a-thread-in-java
  253. Java Timer, TimerTask, Reminder Class Tutorial with Example: https://crunchify.com/java-timer-and-timertask-reminder-class-tutorials-example/
  254. Java Multithreading - Threadsafe Counter: https://stackoverflow.com/questions/29883719/java-multithreading-threadsafe-counter
  255. Create a counter that increments once a second until a given number of seconds is reached : https://coderanch.com/t/557749/java/Create-counter-increments-number-seconds
  256. Using wait/notify vs Thread.sleep() in Java: https://www.qat.com/using-waitnotify-instead-thread-sleep-java/
  257. Five Ways to Update Fields in a Thread Safe Way - Part 1: https://dzone.com/articles/5-ways-to-thread-safe-update-a-field-in-java
  258. How to Run Multiple Threads Concurrently in Java? ExecutorService Approach: https://crunchify.com/how-to-run-multiple-threads-concurrently-in-java-executorservice-approach/
  259. Introducing Threads in Socket Programming in Java: https://www.geeksforgeeks.org/introducing-threads-socket-programming-java/ (client-server example designed for handling multiple simultaneous clients)
  260. Timer in Java Thread: https://stackoverflow.com/questions/11707066/timer-in-java-thread
  261. Java concurrency (multi-threading) - tutorial: https://www.vogella.com/tutorials/JavaConcurrency/article.html
  262. Java Multithreading & Concurrency Interview Questions and Answers: https://www.journaldev.com/1162/java-multithreading-concurrency-interview-questions-answers
  263. ThreadPoolExecutor – Java Thread Pool Example: https://www.journaldev.com/1069/threadpoolexecutor-java-thread-pool-example-executorservice
  264. Using Thread Dumps: https://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/using_threaddumps.html
  265. wikipedia: Common_Object_Request_Broker_Architecture
  266. 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)
  267. Are CORBA and RMI "dead"?: https://community.oracle.com/thread/1182073
  268. Is CORBA still alive? What about ACE?: https://groups.google.com/forum/#!topic/comp.object.corba/jD6KpFPxWPw
  269. The significance of Java RMI (and CORBA) please?: https://stackoverflow.com/questions/14326901/the-significance-of-java-rmi-please
  270. Is CORBA legacy?: https://stackoverflow.com/questions/1226050/is-corba-legacy
  271. Time Synchronization in Distributed Systems: https://medium.com/distributed-knowledge/time-synchronization-in-distributed-systems-a21808928bc8
  272. Synchronizing clients with a server and with each other (in Distributed Applications): https://gamedev.stackexchange.com/questions/552/synchronizing-clients-with-a-server-and-with-each-other
  273. Object-Oriented Programming: http://cs.smu.ca/~porter/csc/465/notes/oop.html
  274. OOP Basics: http://www.jamesbooth.com/OOPBasics.htm
  275. Inheritance, Polymorphism, and Abstract Classes: http://math.hws.edu/javanotes/c5/s5.html
  276. Oracle docs -- Java OOP - Declaring Member Variables: https://docs.oracle.com/javase/tutorial/java/javaOO/variables.html
  277. In Java, what’s the difference between method overloading and method overriding?: http://www.programmerinterview.com/index.php/java-questions/method-overriding-vs-overloading/
  278. wikipedia: Abstraction
  279. wikipedia: Inheritance (object-oriented programming)
  280. What Is Inheritance?: http://java.about.com/od/objectorientedprogramming/a/inheritance.htm
  281. Inheritance .vs. Composition: http://www.javaworld.com/jw-11-1998/jw-11-techniques.html
  282. wikipedia: Polymorphism (computer science)
  283. wikipedia: Polymorphism in object-oriented programming
  284. How my Dog learned Polymorphism: http://www.javaranch.com/campfire/StoryPoly.jsp
  285. 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
  286. 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
  287. 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
  288. Time To Really Learn Generics -- A Java 8 Perspective: http://nofluffjuststuff.com/magazine/2016/09/time_to_really_learn_generics_a_java_8_perspective
  289. Learning Java, 4th Edition (2013) -- Ch.8 Generics - Generic Methods: http://www.oreilly.com/library/view/learning-java-4th/9781449372477/ch08s09.html
  290. Java Generic Methods: http://tutorials.jenkov.com/java-generics/methods.html
  291. Get Started with Java: https://www.baeldung.com/get-started-with-java-series
  292. OCP Certification – Advanced Java Class Design: https://www.baeldung.com/java-ocp-advanced-class-design
  293. Java - Use polymorphism or bounded type parameters: http://softwareengineering.stackexchange.com/questions/227918/java-use-polymorphism-or-bounded-type-parameters
  294. 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)
  295. Generic Constructors in Java: https://www.baeldung.com/java-generic-constructors
  296. Working With Java 8 Optionals: http://codingjunkie.net/working-with-java8-optionals/
  297. Tired of Null Pointer Exceptions? Consider Using Java SE 8's Optional: http://www.oracle.com/technetwork/articles/java/java8-optional-2175753.html
  298. Should Java 8 getters return nullable optional Optional type? https://stackoverflow.com/questions/26327957/should-java-8-getters-return-optional-type/26328555#26328555
  299. How to Write Better Code with Java 8’s Optional: https://medium.com/swlh/how-to-write-better-code-with-java-8s-optional-b6d862f28862
  300. Working on Null Elegantly with Java Optional: https://medium.com/faun/working-on-null-elegantly-with-java-optional-62f5e65869c5
  301. 26 Reasons Why Using Optional Correctly Is Not Optional: https://dzone.com/articles/using-optional-correctly-is-not-optional
  302. Guide To Optional (available in Java 8+): https://www.baeldung.com/java-optional
  303. Java 8 Optional - Replace your get() calls: https://reversecoding.net/java-8-optional-replace-get-examples/
  304. What's the difference between Objects.requireNonNullElse() and Optional.ofNullable().orElse() methods?: https://stackoverflow.com/questions/46519014/whats-the-difference-between-objects-requirenonnullelse-and-optional-ofnullab
  305. Java's Optional Does Not Supplant All Traditional if-null-else or if-not-null-else Checks: https://marxsoftware.blogspot.com/2021/09/java-optional-vs-traditional-null.html
  306. How Java Optional Evolved Over Time: https://dzone.com/articles/java-optional-api-evolution
  307. var keyword in Java: https://www.codejava.net/java-core/the-java-language/var-keyword-in-java
  308. "var" keyword in Java - examples: https://www.geeksforgeeks.org/var-keyword-in-java/
  309. Java 11 Local Variable Syntax for Lambda Parameters: https://www.baeldung.com/java-var-lambda-params
  310. Java Sort a List by multiple attributes example: https://www.codejava.net/java-core/collections/sorting-a-list-by-multiple-attributes-example
  311. Java language basics: http://developer.ibm.com/tutorials/j-introtojava1/ (good examples of List, ArrayLists, etc)
  312. Finding the Differences Between Two Lists in Java: https://www.baeldung.com/java-lists-difference
  313. How to compare two ArrayLists in Java: https://howtodoinjava.com/java/collections/arraylist/compare-two-arraylists/ (equality check, contains specific items, find additional items, missing items, common items)
  314. Java – Check if Array contains a certain value?: https://www.mkyong.com/java/java-check-if-array-contains-a-certain-value/
  315. How to iterate through a Map in Java?: https://stackoverflow.com/questions/43015098/how-to-iterate-through-a-map-in-java
  316. How to get Map’s key from value in Java: https://www.techiedelight.com/get-map-key-from-value-java/
  317. 10 Examples of HashMap in Java - Programming Tutorial: http://www.java67.com/2013/02/10-examples-of-hashmap-in-java-programming-tutorial.html
  318. Cannot cast from Map<String,Object> to Map<String,List<Map<String,String>>>: https://stackoverflow.com/questions/13382361/cannot-cast-from-mapstring-object-to-mapstring-listmapstring-string
  319. want to create a map<String , Object> ,Object can be String and can be class Object: https://stackoverflow.com/questions/6870973/want-to-create-a-mapstring-object-object-can-be-string-and-can-be-class-obj
  320. Java 8 Streams API: https://blogs.oracle.com/java/java-8-streams-api
  321. Java performance tutorial – How fast are the Java 8 streams?: https://jaxenter.com/java-performance-tutorial-how-fast-are-the-java-8-streams-118830.html
  322. How to Properly Debug Java Streams: https://dzone.com/articles/how-to-properly-debug-java-streams-video
  323. How to debug stream().map(…) with lambda expressions?: https://stackoverflow.com/questions/24541786/how-to-debug-stream-map-with-lambda-expressions
  324. IntelliJ -- Analyze Java Stream operations: https://www.jetbrains.com/help/idea/analyze-java-stream-operations.html
  325. How to debug Java 8 Stream Pipeline - peek() method tutorial: http://www.java67.com/2016/09/java-8-streampeek-example.html
  326. Stream.reduce & Stream.collect methods: https://docs.oracle.com/javase/tutorial/collections/streams/reduction.html
  327. How do I determine whether an array contains a particular value in Java?: https://stackoverflow.com/questions/1128723/how-do-i-determine-whether-an-array-contains-a-particular-value-in-java
  328. Java Stream API was Broken Before JDK10: https://4comprehension.com/java-stream-api-was-broken-before-jdk10/
  329. Java 8 Streams -- An Intro to Filter, Map and Reduce Operations: www.sitepoint.com/java-8-streams-filter-map-reduce/
  330. Java Stream collect() method Examples: https://www.journaldev.com/32457/java-stream-collect-method-examples
  331. How can I get a List from some class properties with Java 8 Stream?: https://stackoverflow.com/questions/30611870/how-can-i-get-a-list-from-some-class-properties-with-java-8-stream
  332. 10 Examples of forEach() method in Java 8: http://www.java67.com/2016/01/how-to-use-foreach-method-in-java-8-examples.html
  333. Java 8 Friday -- 10 Subtle Mistakes When Using the Streams API: https://blog.jooq.org/2014/06/13/java-8-friday-10-subtle-mistakes-when-using-the-streams-api/
  334. String Operations with Java Streams: https://www.baeldung.com/java-stream-operations-on-strings
  335. How to Iterate Over a Stream with Indices: http://www.baeldung.com/java-stream-indices
  336. Java 8 -- Accumulate the elements of a Stream using Collectors: http://www.deadcoderising.com/2017-02-21-java-8-accumulate-your-streams-using-collectors/
  337. A Guide to Streams in Java 8 -- In-Depth Tutorial with Examples: http://stackify.com/streams-guide-java-8/
  338. Java Streams Overview, Part I: https://dzone.com/articles/java-streams-overview-part-i
  339. How to convert a Map to List in Java?: https://stackoverflow.com/questions/1026723/how-to-convert-a-map-to-list-in-java
  340. Java 8 - How to convert String to Map<String,String>?: https://stackoverflow.com/questions/52695410/java-8-how-to-convert-string-to-mapstring-string
  341. Java 8 - Convert Map to List using Collectors.toList() Example: https://www.concretepage.com/java/jdk-8/java-8-convert-map-to-list-using-collectors-tolist-example
  342. Convert a List to a Comma-Separated String in Java 8: https://dzone.com/articles/java-8-convert-list-to-string-comma-separated
  343. Check if one List object contains element from the other: https://stackoverflow.com/questions/11796371/check-if-one-list-contains-element-from-the-other
  344. Java 8 – How to sort list with stream.sorted(): https://mkyong.com/java8/java-8-how-to-sort-list-with-stream-sorted/
  345. Processing Files With Java 8 Streams: https://reflectoring.io/processing-files-using-java-8-streams/
  346. Exception Handling in Java Streams: https://dzone.com/articles/exception-handling-in-java-streams (when you want to use a method that throws a checkedException, you have to do something extra if you want to call it in a lambda)
  347. Think Twice Before Using Java 8 Parallel Streams: https://dzone.com/articles/think-twice-using-java-8
  348. Guide to mapMulti in Stream API: https://www.baeldung.com/java-mapmulti (with real-world Artist' to Album association examples)
  349. A real-world (ShoppingCart) example of a Stream Collector: https://blog.frankel.ch/real-world-stream-collector/
  350. How to Properly Debug Java Streams (VIDEO): https://dzone.com/articles/how-to-properly-debug-java-streams-video
  351. wikipedia: Anonymous function
  352. Core Java Volume I — Fundamentals, 11th ed. by Cay S. Horstmann (BOOK): https://www.oreilly.com/library/view/core-java-volume/9780135167199/ | Ch.6-Interfaces, Lambda Expressions & Inner Classes
  353. Start Using Java Lambda Expressions & Streams: https://www.developer.com/java/start-using-java-lambda-expressions.html
  354. How to start working with Lambda Expressions in Java: https://www.freecodecamp.org/news/learn-these-4-things-and-working-with-lambda-expressions-b0ab36e0fffc/
  355. Java 8 – Powerful Comparison with Lambdas | VIDEOS: https://www.baeldung.com/java-8-sort-lambda
  356. Why the restriction on local variable capture?: http://www.lambdafaq.org/what-are-the-reasons-for-the-restriction-to-effective-immutability/
  357. Why are lambda expressions being added to Java?: http://www.lambdafaq.org/why-are-lambda-expressions-being-added-to-java/
  358. 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
  359. Modifying local variable from inside lambda: https://stackoverflow.com/questions/30026824/modifying-local-variable-from-inside-lambda
  360. Java 8 – Powerful Comparison with Lambdas: http://www.baeldung.com/java-8-sort-lambda
  361. Streams tutorial: https://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/
  362. Lambda Expressions and Functional Interfaces -- Tips and Best Practices: https://www.baeldung.com/java-8-lambda-expressions-tips
  363. Introduction To Pragmatic Functional Java (and how to refactor from traditional imperative coding style): https://dzone.com/articles/introduction-to-pragmatic-functional-java
  364. An Introduction to Atomic Variables in Java: https://www.baeldung.com/java-atomic-variables
  365. How AtomicReference Works: https://dzone.com/articles/atomicreference
  366. Java AtomicReference Example: https://examples.javacodegeeks.com/core-java/util/concurrent/atomic/atomicreference/java-atomicreference-example/
  367. AtomicReference tutorial: http://tutorials.jenkov.com/java-util-concurrent/atomicreference.html
  368. Java Lambda Expressions: http://tutorials.jenkov.com/java/lambda-expressions.html
  369. 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
  370. How to convert a String to a lambda expression?: https://stackoverflow.com/questions/22207447/how-to-convert-a-string-to-a-lambda-expression
  371. Java Lambda Expressions Basics: https://dzone.com/articles/java-lambda-expressions-basics
  372. Hacking Lambda Expressions in Java: https://dzone.com/articles/hacking-lambda-expressions-in-java
  373. lambdaFromString lib: https://github.com/greenjoe/lambdaFromString
  374. Lambda Expressions in Java 8: https://www.geeksforgeeks.org/lambda-expressions-java-8/
  375. Java Lambda Expressions: https://www.programiz.com/java-programming/lambda-expression
  376. Java 8 Lambda Limitations -- Closures: http://dzone.com/articles/java-8-lambas-limitations-closures
  377. Lambda Expressions & Functional Interfaces -- Tips & Best Practices: http://www.baeldung.com/java-8-lambda-expressions-tips
  378. Java Lambda Expressions: http://tutorials.jenkov.com/java/lambda-expressions.html
  379. Modifying local variable from inside lambda: stackoverflow.com/questions/30026824/modifying-local-variable-from-inside-lambda/53350417#53350417
  380. Using Java 8 Lambdas Efficiently: http://www.beyondjava.net/using-java-8-lambdas-efficiently
  381. Exception Handling in Java Streams: https://medium.com/swlh/exception-handling-in-java-streams-5947e48f671c
  382. How to catch splitted String in Java Stream: https://stackoverflow.com/questions/29807947/how-to-catch-splitted-string-in-java-stream
  383. How to convert comma-separated String to List?: https://stackoverflow.com/questions/7488643/how-to-convert-comma-separated-string-to-list
  384. Java 8+ – Convert Stream to List: https://howtodoinjava.com/java8/convert-stream-to-list/
  385. How to convert a Stream into a Map in Java: https://www.geeksforgeeks.org/how-to-convert-a-stream-into-a-map-in-java/
  386. HashMap using Streams & substring: https://stackoverflow.com/questions/52137069/hashmap-using-streams-and-substring
  387. Java 8+ – Join or append stream of strings: https://howtodoinjava.com/java8/join-stream-of-strings/
  388. JDK 8 JavaDocs -- Stream - Collectors: https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html
  389. Oracle technical articles -- Processing Data with Java SE 8 Streams - Part 1: https://www.oracle.com/technical-resources/articles/java/ma14-java-se-8-streams.html
  390. Oracle technical articles -- Processing Data with Java SE 8 Streams - Part 2: https://www.oracle.com/technical-resources/articles/java/architect-streams-pt2.html
  391. Java streams - "filter" in a lambda: https://www.baeldung.com/java-stream-filter-lambda
  392. Lambda Expressions: https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#approach8
  393. wikipedia: Java Management Extensions
  394. wikipedia: Java Database Connectivity
  395. JDBC CRUD ( Create, Read, Update and Delete) example: http;//techmyguru.com/JDBC/index.php?section=5
  396. MySQL and Java JDBC - Tutorial: http://www.vogella.com/articles/MySQLJava/article.html
  397. An Introduction to JDBC, Part 3: http://onjava.com/pub/a/onjava/excerpt/javaentnut_2/index3.html
  398. Spring Data JDBC Generic DAO Implementation - Most Lightweight ORM Ever: http://architects.dzone.com/articles/spring-data-jdbc-generic-dao
  399. 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)
  400. SQL DECIMAL to Java Number: https://stackoverflow.com/questions/35702026/sql-decimal-to-java-number
  401. 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/
  402. Using “LIKE” wildcard in PreparedStatement: https://stackoverflow.com/questions/8247970/using-like-wildcard-in-prepared-statement
  403. Configuring JDBC in TomEE: https://www.tomitribe.com/blog/configuring-jdbc-in-tomee/
  404. MySQL JDBC over SSL problem: https://stackoverflow.com/questions/4663061/mysql-jdbc-over-ssl-problem/23807763
  405. MySQL JDBC Statement Caching: https://vladmihalcea.com/mysql-jdbc-statement-caching/
  406. Persisting fast in database - JDBC: https://medium.com/@jerolba/persisting-fast-in-database-jdbc-76912ec2ef42
  407. What are the advantages of stored procedures? (and how to call them from Java): https://www.tutorialspoint.com/what-are-the-advantages-of-stored-procedures
  408. Difference between Statement vs PreparedStatement vs CallableStatement in Java: https://javarevisited.blogspot.com/2021/05/difference-between-statement-vs-preparedstatement-vs-callablestatement-jdbc-java.html#ixzz6vrQIF5Pv : https://javarevisited.blogspot.com/2021/05/difference-between-statement-vs-preparedstatement-vs-callablestatement-jdbc-java.html
  409. AceQL: https://www.aceql.com/ | Server - SRC | Client - SRC
  410. AceQL Releases Open-Source JDBC-over-HTTP Driver: https://www.infoq.com/news/2021/06/aceql-jdbc-http/
  411. Sun Java Developer Network - EJB: http://java.sun.com/products/ejb/
  412. wikipedia: EJB
  413. What Is an Entity Bean?: http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/EJBConcepts4.html
  414. What Is a Message-Driven Bean?: http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/EJBConcepts5.html
  415. 3 Types of EJB: http://www.java-samples.com/showtutorial.php?tutorialid=122
  416. What's Wrong with the EJB 2 Specification?: http://onjava.com/pub/a/onjava/2001/02/28/ejb.html
  417. Enterprise JavaBeans Fundamentals: http://java.sun.com/developer/onlineTraining/EJBIntro/EJBIntro.html
  418. EJB Transaction: http://www.ucertify.com/article/ejb-transaction.html
  419. Injection of DataSource Example: http://openejb.apache.org/3.0/injection-of-datasource-example.html
  420. Creating and Using Contexts and Dependency Injection (CDI) Events: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/CDI_Events/cdi_events.html
  421. EJB Backend with NetBeans RCP Frontend on Maven: http://netbeans.dzone.com/ejb-backend-netbeans-rcp
  422. The case against annotations: https://blog.softwaremill.com/the-case-against-annotations-4b2fb170ed67
  423. JNLP spec: http://java.sun.com/javase/technologies/desktop/javawebstart/download-spec.html
  424. Java Network Launch Protocol (JNLP) Support: http://www.oracle.com/technetwork/java/javase/index-142562.html#EXAMPLES_WORLDWIND
  425. JNLP API Examples: http://docs.oracle.com/javase/1.5.0/docs/guide/javaws/developersguide/examples.html
  426. Old link for JNLP demos: http://java.sun.com/javase/technologies/desktop/javawebstart/demos.html (*DOWN*)
  427. OpenJNLP: https://sourceforge.net/projects/openjnlp/
  428. Deploying Software with JNLP and Java Web Start: https://www.oracle.com/technical-resources/articles/javase/ds-jnlp-javawebstart.html
  429. What is Java Web Start and how is it launched? : https://java.com/en/download/help/java_webstart.html
  430. Running a Java Web Start Application: https://docs.oracle.com/javase/tutorial/deployment/webstart/running.html
  431. Deploying a Java Web Start Application: https://docs.oracle.com/javase/tutorial/deployment/webstart/deploying.html
  432. Java Web Start & JNLP: http://www.programix.com/JavaWebStart/JavaWebStartPresentation.html
  433. Java WebStart Is Dead -- What Should We Do Now?: http://www.slideshare.net/HendrikEbbers/java-webstart-is-dead-what-should-we-do-now
  434. Java Web Start will die! -- OpenWebStart in inubation: https://dev.karakun.com/webstart/
  435. What to do when Java SE 11 removes JNLP: https://opensource.com/article/19/4/migrating-jnlp-java-se-11
  436. jPRO - Java in the Browser (once again): https://www.jpro.one | DOCS | DEMO | SRC (cross-browser plugin/extension/add-on, similar to OpenWebStart but with commercial support/pricing)
  437. Installing a Java Application as a Windows Service: http://dzone.com/articles/installing-a-java-application-as-a-windows-service
  438. What is the status of SwingLabs (SwingX) post acquisition: https://stackoverflow.com/questions/6818528/what-is-the-status-of-swinglabs-swingx-post-acquisition
  439. swing-bug 0.4 -- Making JCarousel sexier with Effects: http://web.archive.org/web/20071015205235/http://blogofbug.com/2007/03/
  440. 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/
  441. 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/
  442. 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/
  443. : http://web.archive.org/web/20071205015241/http://www.blogofbug.com/2007/03/28/janimatedlist-minor-change-demo-source-code/
  444. BlogOfBug -- Carousel Menu (a la Apple TV): http://web.archive.org/web/20071215200236/http://www.blogofbug.com/2007/01/
  445. 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/
  446. 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/
  447. BlogOfBug -- Java Carousel Part 1 - Layout and Animation: http://web.archive.org/web/20071015205222/http://blogofbug.com/2006/12/#post-27
  448. BlogOfBug -- Java Dock Component: http://web.archive.org/web/20070705084521/http://www.blogofbug.com/2007/01/11/java-dock-component/
  449. jlGUI -- Java Music Player: http://www.javazoom.net/jlgui/documents.html (Winamp clone in Java)
  450. Griffon framework: http://griffon-framework.org/ (multi-paradigm Desktop Application framework inspired by Grails for Groovy-based WebApps)
  451. How to center a Swing frame or dialog: http://www.java2s.com/Code/Java/Swing-JFC/Howtocenteraframeordialog.htm
  452. A Visual Guide to Layout Managers: https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html
  453. Swing -- Nimbus Cross-platform Look & Feel: https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html
  454. Handling Images in a Java GUI Application: http://netbeans.org/kb/docs/java/gui-image-display.html
  455. Designing an Advanced Java Form Using the GridBag Customizer: http://netbeans.org/kb/docs/java/gbcustomizer-advanced.html?intcmp=925655
  456. Connecting to Oracle Database from NetBeans IDE 7.0: http://netbeans.org/kb/docs/ide/oracle-db.html?intcmp=925655
  457. How do I add key listener event handler to JTextField?: http://www.kodejava.org/examples/224.html
  458. React to the ENTER key in a Textfield: http://www.rgagnon.com/javadetails/java-0253.html
  459. Programmatically clicking a GUI button in Java Swing: http://stackoverflow.com/questions/5109274/programmatically-clicking-a-gui-button-in-java-swing
  460. 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
  461. Minesweeper In Java (Swing + AWT): https://www.tutorialflow.com/generalexamples/minesweeper-in-java/
  462. Java Programming Tutorial -- Programming Graphical User Interface (GUI): http://www.ntu.edu.sg/home/ehchua/programming/java/j4a_gui.html
  463. What Future Java Releases Mean for Legacy Desktop Apps: http://dzone.com/articles/what-the-future-java-releases-will-mean-for-legacy
  464. 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
  465. ON-SCREEN KEYBOARD FOR YOUR JAVA SWING SOFTWARE: http://www.mindfusion.eu/java-keyboard.html
  466. Introduction to Event Listeners: http://docs.oracle.com/javase/tutorial/uiswing/events/intro.html
  467. Swing CardLayout: help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.wb.swing.doc.user%2Fhtml%2Flayoutmanagers%2Fswing%2Fcardlayout.html
  468. How to add row in JTable?: https://stackoverflow.com/questions/3549206/how-to-add-row-in-jtable
  469. A JButton listener example: https://alvinalexander.com/java/jbutton-listener-pressed-actionlistener
  470. JPanel doesn't update until resize Jframe: https://stackoverflow.com/questions/11069807/jpanel-doesnt-update-until-resize-jframe
  471. 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
  472. Check valid enum values before using enum: https://stackoverflow.com/questions/1509614/check-valid-enum-values-before-using-enum/2546726#2546726
  473. Anonymous Classes in Java: https://www.baeldung.com/java-anonymous-classes
  474. [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
  475. The state of JVM desktop frameworks - intro: https://blog.frankel.ch/state-jvm-desktop-frameworks/1/
  476. The state of JVM desktop frameworks - Swing: https://blog.frankel.ch/state-jvm-desktop-frameworks/2/ | SRC
  477. JavaFX: http://javafx.com/samples/index.html
  478. 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)
  479. Why and when you should use JPA: https://vladmihalcea.com/why-and-when-use-jpa/
  480. Using EJB Lite and JPA in a Java SE Application: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/EJBLiteAndJPAInJavaSE/EJBLiteAndJPAInJavaSE.html
  481. Looking Forward to JPA 2.0 -- What's New: http://java.dzone.com/articles/looking-forward-jpa-20
  482. Looking Forward To JPA 2.0 - Part 2: http://java.dzone.com/articles/looking-forward-to-jpa-20-part
  483. 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
  484. The abstract schema type is unknown: https://stackoverflow.com/questions/18089699/the-abstract-schema-type-is-unknown
  485. PRO EJB 3.0 attention Mike Keith and Merrick Schincariol: https://coderanch.com/t/318551/java/PRO-EJB-attention-Mike-Keith
  486. Managing databases with Eclipse and the Database Tools tutorial: https://www.vogella.com/tutorials/EclipseDataToolsPlatform/article.html
  487. 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)
  488. 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
  489. Netbeans plugins -- Jeddict - JPA Modeler: http://plugins.netbeans.org/plugin/53057/jpa-modeler
  490. MinuteProject -- JPA1/JPA2 Swing Desktop GUI - Reverse Engineering Tool: https://javacodesamples.wordpress.com/2011/02/04/jpa2-reverse-engineering-tool/
  491. MinuteProject 4.x -- JPA2 -- Lazuly showcase: https://minuteproject.blogspot.com/2011/06/minuteproject-4-jpa2-lazuly-showcase.html
  492. Object-Relational Mappings - Generating JPA Entities: http://docs.oracle.com/cd/E14545_01/help/oracle.eclipse.tools.orm.doc/html/files/genJPAEntities.html
  493. 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
  494. Can I auto create database from JPA?: http://ubuntuforums.org/showthread.php?t=1023198
  495. JPQL tutorial: https://thoughts-on-java.org/jpql/
  496. A Beginner's Guide to JPA and Hibernate Cascade Types: http://java.dzone.com/articles/beginners-guide-jpa-and
  497. 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/
  498. Java EE 7 - Applying JPA to Stored Procedures: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/Stored_Proc/StoredProcedures.html
  499. A Beginner’s Guide to JPA’s "persistence.xml": https://www.thoughts-on-java.org/jpa-persistence-xml/
  500. Optimistic locking in JPA/Hibernate: https://blog.arnoldgalovics.com/optimistic-locking-in-jpa-hibernate/
  501. 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
  502. 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/
  503. What is the Difference Between JPA and Hibernate?: http://www.javaguides.net/2018/12/what-is-difference-between-jpa-and-hibernate.html
  504. What is the Difference Between OpenJPA, EclipseLink & Hibernate?: https://thoughts-on-java.org/difference-jpa-hibernate-eclipselink/
  505. JPA tutorials: http://www.javaguides.net/p/jpa-tutorial-java-persistence-api.html
  506. Introduction to JPA & Hibernate including examples: https://www.slideshare.net/ecosio/introduction-to-jpa-and-hibernate-using
  507. Java Persistence API (JPA) Step By Step (SLIDES): https://www.slideshare.net/junyuo/java-persistence-api-jpa-step-by-step-presentation
  508. JPA Performance Benchmark (JPAB): https://www.jpab.org
  509. JPA Join Types: https://www.baeldung.com/jpa-join-types
  510. JPA & SQL injection prevention: https://www.baeldung.com/sql-injection
  511. CapCourse #161 -- The Java Persistence API: http://www.capcourse.com/161_Outline_21.html | DOWNLOAD
  512. CapCourse #162 -- Java EE Persistence: http://www.capcourse.com/162_Outline_21.html
  513. A JPQL Terminal: http://www.capcourse.com/Library/JPQLTerminal/index.html
  514. JSF, JPA, and EJB: http://www.capcourse.com/Library/JSF+EJB/JSF+EJB_50.pdf
  515. Configuring and mapping database tables to JPA entities: https://nullbeans.com/configuring-and-mapping-database-tables-to-jpa-entity-classes/
  516. JPA Tutorial - JPA OneToMany Mapping Table Example: http://www.java2s.com/Tutorials/Java/JPA/0810__JPA_OneToMany_Mapping_Table.htm
  517. JPA Set Mapping: https://www.javatpoint.com/jpa-set-mapping
  518. 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/
  519. 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/
  520. @ManyToOne JPA & Hibernate association best practices: https://vladmihalcea.com/manytoone-jpa-hibernate/
  521. JPA -- WHERE clause (JPQL / Criteria API): https://www.objectdb.com/java/jpa/query/jpql/where
  522. JPA counting its subclass for one to many relationship: https://stackoverflow.com/questions/41109769/jpa-counting-its-subclass-for-one-to-many-relationship
  523. JPA Tutorial - JPA Query COUNT Example: http://www.java2s.com/Tutorials/Java/JPA/4325__JPA_Query_In_OneToMany.htm
  524. JPA Tutorial - JPA Query COUNT Example: http://www.java2s.com/Tutorials/Java/JPA/4510__JPA_Query_COUNT.htm
  525. JPA Tutorial - JPA OneToMany Mapping Table Example: http://www.java2s.com/Tutorials/Java/JPA/0810__JPA_OneToMany_Mapping_Table.htm
  526. JPA Tutorial - JPA Query Date Parameters Example: http://www.java2s.com/Tutorials/Java/JPA/4030__JPA_Query_Date_Parameters.htm
  527. Ternary Associations – Modelling Associations between 3 Entities: https://thorben-janssen.com/ternary-associations/
  528. How to map Date and Timestamp with JPA and Hibernate: https://vladmihalcea.com/date-timestamp-jpa-hibernate/
  529. How to map a PostgreSQL ARRAY (enum) to a Java List with JPA and Hibernate: https://vladmihalcea.com/postgresql-array-java-list/
  530. JPA Criteria Metamodel Generation and Usage Guide: https://vladmihalcea.com/jpa-criteria-metamodel/
  531. How to change an attribute before INSERT and UPDATE: https://thorben-janssen.com/change-before-persist/
  532. The best way to use Java 14+ Records with JPA & Hibernate: https://vladmihalcea.com/java-records-jpa-hibernate/
  533. Java Records – How to use them with Hibernate and JPA: https://thorben-janssen.com/java-records-hibernate-jpa/
  534. JDK 14 Records for Spring: https://dzone.com/articles/jdk-14-records-for-spring-devs
  535. Why Java's Records Are Better* Than Lombok's @Data and Kotlin's Data Classes: https://nipafx.dev/java-record-semantics/
  536. Spring Data JPA -- Query Projections: https://thorben-janssen.com/spring-data-jpa-query-projections/
  537. Implement a Distributed Database to Your Java Application that's JPA-compatible (using "Interference Open Cluster" project, aka. io.cluster): https://dzone.com/articles/an-introduction-to-interference-implement-a-distri | SRC
  538. JPA AttributeConverter – A Beginner’s Guide: https://vladmihalcea.com/jpa-attributeconverter/
  539. Querying JPA Entities with JPQL and Native SQL: https://www.oracle.com/technical-resources/articles/vasiliev-jpql.html
  540. Migrating from Hibernate Criteria Search API to JPA Criteria API: https://thorben-janssen.com/migration-criteria-api/
  541. Migrating from JPA 2.x to 3.0: https://thorben-janssen.com/migrating-jpa-2-x-to-3-0/
  542. IntelliJ -- JPA Buddy plugin: https://plugins.jetbrains.com/plugin/15075-jpa-buddy
  543. Persisting fast in database - JPA: https://medium.com/@jerolba/persisting-fast-in-database-1af4a281e3a
  544. http://www.hibernate.org/license
  545. Hibernate Made Easy: http://jpa.ezhibernate.com/Javacode/learn.jsp?tutorial=24goodhibernatejpabook
  546. @DiscriminatorFormular – Modeling Single Table Inheritance Without a Discriminator: https://thorben-janssen.com/discriminatorformular/
  547. JPetStore lives on as the official example of typical usage of iBatis framework: http://sourceforge.net/projects/ibatisjpetstore/
  548. IBATIS: http://ibatis.apache.org/ (RETIRED)
  549. EclipseLink -- Annotation Extensions Reference: https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/annotations_ref.htm#CACGCEIJ
  550. JPA Entities and/vs DTOs: https://stackoverflow.com/questions/5216633/jpa-entities-and-vs-dtos
  551. The best way to map a projection query to a DTO (Data Transfer Object) with JPA and Hibernate: https://vladmihalcea.com/the-best-way-to-map-a-projection-query-to-a-dto-with-jpa-and-hibernate/
  552. Entities or DTOs – When should you use which projection?: https://thoughts-on-java.org/entities-dtos-use-projection/
  553. What is DTO equivalent term for objects returned from DAL?: https://stackoverflow.com/questions/46091178/what-is-dto-equivalent-term-for-objects-returned-from-dal/46175582#46175582
  554. Data Transfer Object (DTO) and Data Access Objects (DAO) concepts and Model View Controller (MVC): https://stackoverflow.com/questions/14366001/dto-and-dao-concepts-and-mvc
  555. DataNucleus Access Platform 3.1: http://www.datanucleus.org/products/accessplatform_3_1/index.html
  556. CXF module-info.java package names (for use with Java 1.9+): https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=85475385
  557. Embracing a Modular Java Platform -- Apache CXF on Java 10: https://dzone.com/articles/embracing-modular-java-platform-apache-cxf-on-java
  558. ROME RSS Parser (former Sun page): https://web.archive.org/web/20070706121841/https://rome.dev.java.net/
  559. Build Java Application for Mobile Devices: http://www.youtube.com/watch?v=RZJQlIxusq
  560. Will Google's Android ever support .NET: http://stackoverflow.com/questions/214615/will-google-android-ever-support-net/214632#214632
  561. The Most Popular Java Tools for Every Phase of Development: http://dzone.com/articles/research-most-popular-java-tools-for-every-phase-o
  562. How do I add the Java API documentation to Eclipse?: https://stackoverflow.com/questions/4600172/how-do-i-add-the-java-api-documentation-to-eclipse
  563. JDK 7 -- javadoc - The Java API Documentation Generator: https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#author
  564. How to Write Doc Comments for the Javadoc Tool: https://www.oracle.com/technetwork/articles/java/index-137868.html
  565. How to write, generate and use Javadoc in Eclipse?: https://www.tutorialspoint.com/How-to-write-generate-and-use-Javadoc-in-Eclipse
  566. java.util.formatter: https://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html (good JavaDoc example)
  567. 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)
  568. 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)
  569. Good example of Javadoc: https://stackoverflow.com/questions/1079713/good-example-of-javadoc
  570. How to Write Doc Comments for the Javadoc Tool: http://java.sun.com/j2se/javadoc/writingdoccomments/ (old Sun link)
  571. Usage of @see in JavaDoc?: https://stackoverflow.com/questions/5011291/usage-of-see-in-javadoc
  572. Javadoc Tutorial: http://www.mcs.csueastbay.edu/~billard/se/cs3340/ex7/javadoctutorial.html
  573. 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
  574. 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
  575. 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
  576. Can't generate javadoc in eclipse: https://stackoverflow.com/questions/15434955/cant-generate-javadoc-in-eclipse
  577. JDK - Collections class (clean Javadoc example): http://www.docjar.net/html/api/java/util/Collections.java.html
  578. Apache Ant - DefaultLogger (clean Javadoc example): http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/DefaultLogger.java?view=co
  579. Apache Ant - DirectoryScanner (clean Javadoc example): http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/DirectoryScanner.java?view=markup
  580. Java - Documentation Comments: https://www.tutorialspoint.com/java/java_documentation.htm
  581. How Do I Document Packages in Java?: https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java
  582. How to insert creation date in JavaDoc: https://stackoverflow.com/questions/29380477/how-to-insert-creation-date-in-javadoc
  583. Java's @version %I%, %G% auto-generation and git: https://stackoverflow.com/questions/40622695/version-i-g-and-git (this was a feature of SCCS version control system, but would need to be changed to Git Attributes for variable-based replacements like $Date$ or something similar to work with GIT)
  584. Inheriting Javadoc Method Comments: https://dzone.com/articles/inheriting-javadoc-method-comments (using the {@inheritDoc} template)
  585. A Guide to Formatting Code Snippets in Javadoc: https://reflectoring.io/howto-format-code-snippets-in-javadoc/ (using {@code code goes here} markup, with <pre> tags if indentation and whitespace needs to be preserved)
  586. Linking to an external URL in Javadoc?: https://stackoverflow.com/questions/1082050/linking-to-an-external-url-in-javadoc
  587. JEP 413 -- Code Snippets in Java API Documentation: https://openjdk.java.net/jeps/413 (linkable, regex-ready replacement for "inline code" within comments typically using "<pre>" tags and/or "@code" comments)
  588. New Javadoc Tags @apiNote, @implSpec, and @implNote: https://nipafx.dev/javadoc-tags-apiNote-implSpec-implNote/
  589. Linking to an External URL in Javadoc: https://www.baeldung.com/javadoc-linking-external-url
  590. JDK 18 -- Code Snippets in Java API Documentation: https://marxsoftware.blogspot.com/2021/09/jdk-18-code-snippets-in-java-api.html
  591. Add a Reference to Method Parameters in Javadoc: https://www.baeldung.com/javadoc-reference-method-parameter
  592. Manage multiple Java SDKs with SDKMAN! with ease: https://blog.codeleak.pl/2020/01/manage-multiple-java-sdks-with-sdkman.html
  593. The JVM Architecture Explained: http://dzone.com/articles/jvm-architecture-explained
  594. Introduction to Java Bytecode: https://dzone.com/articles/introduction-to-java-bytecode
  595. Snyk JVM Ecosystem Report 2021 Finds Increased Usage of Java 11 in Production : https://www.infoq.com/news/2021/07/snyk-jvm-2021/
  596. 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
  597. Invoking a Private Method in Java: https://www.baeldung.com/java-call-private-method
  598. Why doGet(), doPost() Methods are “protected”?: https://stackoverflow.com/questions/14556304/why-doget-dopost-methods-are-protected
  599. Oracle Java specs -- Chapter 4 - The class File Format: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html
  600. Java – How to list all files in a directory?: https://www.mkyong.com/java/java-how-to-list-all-files-in-a-directory/
  601. Java, List only subdirectories from a directory, not files: https://stackoverflow.com/questions/5125242/java-list-only-subdirectories-from-a-directory-not-files/5125258
  602. Java NIO, get all subfolders of some folder: https://stackoverflow.com/questions/38269073/java-nio-get-all-subfolders-of-some-folder
  603. Quickly creating URIs with UriBuilder (BuilderPattern): https://blog.sebastian-daschner.com/entries/creating-uris-with-uribuilder
  604. Java SE 6 API Docs - Properties class: http://docs.oracle.com/javase/6/docs/api/java/util/Properties.html
  605. 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
  606. Java's “os.name” for Windows 10?: https://stackoverflow.com/questions/31909107/javas-os-name-for-windows-10
  607. StringBuffer to File - Need Example: https://coderanch.com/t/391312/java/StringBuffer-File
  608. Arrays in Java: https://introcs.cs.princeton.edu/java/14array/
  609. How to convert Object array to String array in Java: https://stackoverflow.com/questions/1018750/how-to-convert-object-array-to-string-array-in-java
  610. Java Program to Check if An Array Contains a Given Value: https://www.programiz.com/java-programming/examples/array-contains-value
  611. How to use comparison operators like >, =, < on BigDecimal: https://stackoverflow.com/questions/34677644/how-to-use-comparison-operators-like-on-bigdecimal
  612. Java Recursion: https://www.programiz.com/java-programming/recursion
  613. Recursion in Java: https://www.javatpoint.com/recursion-in-java
  614. Java Fibonacci examples: https://www.mkyong.com/java/java-fibonacci-examples/
  615. Java - format double value as dollar amount: https://stackoverflow.com/questions/13791409/java-format-double-value-as-dollar-amount#13791422
  616. I need to convert an int variable to double: https://stackoverflow.com/questions/13252903/i-need-to-convert-an-int-variable-to-double
  617. Advanced Java Tutorial list: http://www.javacodegeeks.com/2015/09/advanced-java.html
  618. Invoke methods of an object using reflection: http://javadb.com/invoke-methods-of-an-object-using-reflection
  619. Java dynamic function (method) calling through Generics/Reflection: https://stackoverflow.com/questions/3050967/java-dynamic-function-calling
  620. 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
  621. Calling a method named “string” at runtime in Java and C: https://stackoverflow.com/questions/2882948/calling-a-method-named-string-at-runtime-in-java-and-c
  622. Java Reflection example tutorial: https://www.journaldev.com/1789/java-reflection-example-tutorial
  623. Non-Repeating Random(s) http://www.dreamincode.net/code/snippet2165.htm
  624. Generate random numbers : http://technojeeves.com/joomla/index.php/free/65-generate-random-numbers
  625. Java Write To File: http://www.roseindia.net/java/example/java/io/java-write-to-file.shtml
  626. How to write to file in Java using BufferedWriter: https://beginnersbook.com/2014/01/how-to-write-to-file-in-java-using-bufferedwriter/
  627. Java – Write to File: https://howtodoinjava.com/java/io/java-write-to-file/
  628. Easy way to write contents of a Java InputStream to an OutputStream: https://stackoverflow.com/questions/43157/easy-way-to-write-contents-of-a-java-inputstream-to-an-outputstream
  629. How to convert InputStream to OutputStream in Java: https://attacomsian.com/blog/java-convert-inputstream-to-outputstream
  630. Managing Metadata (File and File Store Attributes): http://docs.oracle.com/javase/tutorial/essential/io/fileAttr.html
  631. 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
  632. 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
  633. Playing video (in Java) using JMF, JavaFX or VLCj: http://stackoverflow.com/questions/11097174/playing-video-using-jmf
  634. Is there a Java API for mp4 files?: http://stackoverflow.com/questions/3015393/is-there-a-java-api-for-mp4-files
  635. Inspect a video file with xuggler Java lib: https://examples.javacodegeeks.com/desktop-java/xuggler/inspect-a-video-file-with-xuggler/
  636. Extracting metadata of a Media files with JAVE: http://varuntayur.wordpress.com/2014/08/08/extracting-metadata-of-a-media-files-with-jave/
  637. How to Extract Meta-data from Media file in Android: http://mrbool.com/how-to-extract-meta-data-from-media-file-in-android/28130
  638. Getting Started with FFMPEG-Java: http://fmj-sf.net/ffmpeg-java/getting_started.php
  639. jNotify for file directory monitoring/change listening: http://stackoverflow.com/questions/4941869/directory-listener-in-java
  640. How to watch the file system for changes in Java 7 (JDK 7) : http://java.dzone.com/news/how-watch-file-system-changes
  641. https://web.archive.org/web/20110714194906/http://www.stripesframework.org/display/stripes/JQuery's+Uploadify+with+Stripes
  642. 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/
  643. AJAX file upload example with JSP: https://web.archive.org/web/20120229040346/http://www.devedup.com/ajaxfileupload/
  644. Handling Form-based File Upload with Java Servlet or JSP (that supports WAP): http://www.developershome.com/wap/wapUpload/wap_uploacd.asp?page=jsp
  645. Java regular expression patterns: http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html#sum
  646. 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/
  647. When to use AtomicReference in Java?: https://stackoverflow.com/questions/3964211/when-to-use-atomicreference-in-java
  648. 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
  649. Java Version 1.5.0 or 5.0?: https://docs.oracle.com/javase/1.5.0/docs/relnotes/version-5.0.html
  650. Introduction to Java 5 (SLIDES): https://www.slideshare.net/sandeeprawat94/introduction-to-java-64792837
  651. 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
  652. 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)
  653. Java -- Curiosity Mars rover: https://twitter.com/java/status/777618329749954562
  654. JDK & macOS: https://dzone.com/articles/jdk-amp-macos
  655. MacOS Java version handling script: https://gist.github.com/dbuschman7/6688de9c00371766599746d747a11f89
  656. The Anatomy of ct.sym — How javac Ensures Backwards Compatibility: https://www.morling.dev/blog/the-anatomy-of-ct-sym-how-javac-ensures-backwards-compatibility/
  657. Java Application Remote Debugging: https://www.baeldung.com/java-application-remote-debugging
  658. jmap - Memory Map: https://docs.oracle.com/javase/6/docs/technotes/tools/share/jmap.html
  659. 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
  660. How to Set Classpath for Java on Windows and Linux: http://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html
  661. Error -- Could not find or load main class: https://stackoverflow.com/questions/7485670/error-could-not-find-or-load-main-class
  662. 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
  663. Oracle docs -- Defining Methods: https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html
  664. Overriding vs. Overloading in Java: https://www.programcreek.com/2009/02/overriding-and-overloading-in-java-with-examples/
  665. Object Ordering: https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html
  666. Java Socket Programming Examples: https://cs.lmu.edu/~ray/notes/javanetexamples/
  667. Fixing 7 Common Java Exception Handling Mistakes: https://dzone.com/articles/fixing-7-common-java-exception-handling-mistakes
  668. Best way to check whether a certain exception type was the cause (of a cause, etc ...) in a nested exception?:: https://stackoverflow.com/questions/610628/best-way-to-check-whether-a-certain-exception-type-was-the-cause-of-a-cause-et
  669. Best Practice -- Catching and re-throwing Java Exceptions: https://www.ibm.com/support/pages/best-practice-catching-and-re-throwing-java-exceptions
  670. SYNTACTICAL ERRORS in Java: https://www.dummies.com/programming/java/syntactical-errors-in-java/
  671. Exception Handling & Assertion: http:/www.ntu.edu.sg/home/ehchua/programming/java/j5a_exceptionassert.html
  672. Exceptions in Java: https://www.geeksforgeeks.org/exceptions-in-java/
  673. Java NullPointerException Avoidance and Enhancement Tactics: https://marxsoftware.blogspot.com/2021/02/java-nullpointerexception-avoidance-and.html
  674. How to resolve "java.lang.NullPointerException": http://www.java-tips.org/java-se-tips/java.lang/a-small-tip-on-string-to-avoid-nullpointerexce.html
  675. A small tip on String objects to avoid NullPointerException: http://www.java-tips.org/java-se-tips/java.lang/a-small-tip-on-string-to-avoid-nullpointerexce.html
  676. How to Avoid NullPointerExceptions (NPE)?: http://isagoksu.com/2009/development/java/how-to-avoid-nullpointerexceptions-npe/
  677. How to check if array element is null to avoid NullPointerException in Java: http://stackoverflow.com/questions/425439/how-to-check-if-array-element-is-null-to-avoid-nullpointerexception-in-java
  678. How to check whether an Integer is null or zero in Java?: https://stackoverflow.com/questions/41183668/how-to-check-whether-an-integer-is-null-or-zero-in-java
  679. Converting a "Stack Trace" to a String in Java: https://www.baeldung.com/java-stacktrace-to-string
  680. 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
  681. Java.io.RandomAccessFile.close() Method: http://www.tutorialspoint.com/java/io/randomaccessfile_close.htm
  682. Java BigInteger example: http://www.roseindia.net/java/java-biginteger/java-biginteger.shtml
  683. BigDecimal .vs. BigInteger: https://www.baeldung.com/java-bigdecimal-biginteger
  684. Why You Should Never Use Float and Double for Monetary Calculations: https://dzone.com/articles/never-use-float-and-double-for-monetary-calculatio
  685. Double vs. BigDecimal?: https://stackoverflow.com/questions/3413448/double-vs-bigdecimal
  686. Caution -- Double to BigDecimal in Java: https://www.javaworld.com/article/2073176/caution--double-to-bigdecimal-in-java.html
  687. What Every Computer Scientist Should Know About Floating-Point Arithmetic: https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
  688. JVM Ecosystem Report 2018: https://res.cloudinary.com/snyk/image/upload/v1539774333/blog/jvm-ecosystem-report-2018.pdf

See Also

Applet | Servlet | JEE/JSP | J2ME | JavaFX | JavaScript | Android | Kotlin | Groovy | Scala | JUnit