Difference between revisions of "Java"
(→JPA) |
(→JPA) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 43: | Line 43: | ||
<ref>'''Java Is Still Free: https://docs.google.com/document/d/1nFGazvrCvHMZJgFstlbzoHjpAVwv5DEdnaBr_5pKuHo/preview#heading=h.p3qt2oh5eczi | [https://www.infoq.com/presentations/panel-java-free VIDEO]'''</ref> | <ref>'''Java Is Still Free: https://docs.google.com/document/d/1nFGazvrCvHMZJgFstlbzoHjpAVwv5DEdnaBr_5pKuHo/preview#heading=h.p3qt2oh5eczi | [https://www.infoq.com/presentations/panel-java-free VIDEO]'''</ref> | ||
<ref>JetBrains' 25 Things We Love About Java: https://blog.jetbrains.com/idea/2020/05/25-things-we-love-about-java/ ([https://www.oracle.com/java/moved-by-java/ Java's 25th birthday celebration] took place in 2020)</ref> | <ref>JetBrains' 25 Things We Love About Java: https://blog.jetbrains.com/idea/2020/05/25-things-we-love-about-java/ ([https://www.oracle.com/java/moved-by-java/ Java's 25th birthday celebration] took place in 2020)</ref> | ||
− | |||
− | |||
<ref>Java Platform Evolution: https://dev.java/evolution/</ref> | <ref>Java Platform Evolution: https://dev.java/evolution/</ref> | ||
Line 321: | Line 319: | ||
* JDK 19: http://jdk.java.net/19/ | [https://openjdk.java.net/projects/jdk/19/ OpenJDK 18] | * JDK 19: http://jdk.java.net/19/ | [https://openjdk.java.net/projects/jdk/19/ OpenJDK 18] | ||
− | + | <ref>Java 19 - The Best Java Release? - Inside Java Newscast #27: https://inside.java/2022/06/16/insidejava-newscast-027/</ref> | |
== Specifications == | == Specifications == | ||
Line 354: | Line 352: | ||
<ref>JVM Architecture 101 -- Get to Know Your Virtual Machine: https://blog.overops.com/jvm-architecture-101-get-to-know-your-virtual-machine/</ref> | <ref>JVM Architecture 101 -- Get to Know Your Virtual Machine: https://blog.overops.com/jvm-architecture-101-get-to-know-your-virtual-machine/</ref> | ||
<ref>7 JVM Arguments of Highly Effective Applications: https://dzone.com/articles/7-jvm-arguments-of-highly-effective-applications-1</ref> | <ref>7 JVM Arguments of Highly Effective Applications: https://dzone.com/articles/7-jvm-arguments-of-highly-effective-applications-1</ref> | ||
+ | <ref>Using jenv to select Java version on macOS: https://akrabat.com/using-jenv-to-select-java-version-on-macos/ (NOTE: can be done at the "local" i.e. current Terminal CLI window/prompt, or, "global" to change the default JVM for the entire OS and all applications)</ref> | ||
+ | <ref>How to fix ''java.lang.UnsupportedClassVersionError: Unsupported major.minor version'': https://stackoverflow.com/questions/10382929/how-to-fix-java-lang-unsupportedclassversionerror-unsupported-major-minor-versi</ref> | ||
==== GraalVM ==== | ==== GraalVM ==== | ||
Line 664: | Line 664: | ||
* [[wikipedia: Java Native Interface]] (JNI) | * [[wikipedia: Java Native Interface]] (JNI) | ||
− | |||
* Java Native Interface (JNI): https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html | * Java Native Interface (JNI): https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html | ||
− | + | <ref>'''Guide to JNI (Java Native Interface): https://www.baeldung.com/jni'''</ref> | |
+ | <ref>Call a C function from Java: https://stackoverflow.com/questions/5963266/call-c-function-from-java</ref> | ||
+ | |||
+ | ==== JNA ==== | ||
+ | |||
+ | * [[wikipedia: Java Native Access]] (JNA) | ||
* Introduction to JNA: https://riptutorial.com/java/example/18621/introduction-to-jna | * Introduction to JNA: https://riptutorial.com/java/example/18621/introduction-to-jna | ||
− | + | <ref>Does Java 18 finally have a better alternative to JNI?: https://developer.okta.com/blog/2022/04/08/state-of-ffi-java</ref> | |
=== OOP === | === OOP === | ||
Line 1,185: | Line 1,189: | ||
<ref>MinuteProject 4.x -- JPA2 -- Lazuly showcase: https://minuteproject.blogspot.com/2011/06/minuteproject-4-jpa2-lazuly-showcase.html</ref> | <ref>MinuteProject 4.x -- JPA2 -- Lazuly showcase: https://minuteproject.blogspot.com/2011/06/minuteproject-4-jpa2-lazuly-showcase.html</ref> | ||
<ref>IntelliJ -- JPA Buddy plugin: https://plugins.jetbrains.com/plugin/15075-jpa-buddy</ref> | <ref>IntelliJ -- JPA Buddy plugin: https://plugins.jetbrains.com/plugin/15075-jpa-buddy</ref> | ||
+ | <ref>How to implement an AttributeConverter to support custom types: https://thorben-janssen.com/jpa-attribute-converter/</ref> | ||
+ | <ref>JPA 2.0 - Why AccessType is Relevant: https://dzone.com/articles/12-feb-jpa-20-why-accesstype</ref> | ||
+ | |||
==== OpenJPA ==== | ==== OpenJPA ==== | ||
Line 1,271: | Line 1,278: | ||
== Tools == | == Tools == | ||
− | * jEnv: http://www.jenv.be | [https://github.com/gcuisinier/jenv SRC] (manage your Java environment variables on a per-project basis without setting JAVA_HOME) | + | * jEnv: http://www.jenv.be | [https://github.com/gcuisinier/jenv SRC] (manage your Java environment variables on a per-project basis without setting JAVA_HOME)<ref>jEnv docs -- Manage your Java environment: https://www.jenv.be</ref> |
+ | <ref>Configuring jEnv the "right" way: https://developer.bring.com/blog/configuring-jenv-the-right-way/</ref> | ||
+ | <ref>Managing Multiple JDK Installations With jEnv: https://reflectoring.io/manage-jdks-with-jenv/</ref> | ||
* SDKman: http://sdkman.io/ (manage the JDK/JRE versions installed from a single tool) | * SDKman: http://sdkman.io/ (manage the JDK/JRE versions installed from a single tool) | ||
* Bck2Brwsr - Java to JavaScript compiler: http://wiki.apidesign.org/wiki/Bck2Brwsr (takes bytecode and converts it either ahead-of-time, during compilation, just-in-time in a browser; into appropriate JavaScript code which does the same thing) | * Bck2Brwsr - Java to JavaScript compiler: http://wiki.apidesign.org/wiki/Bck2Brwsr (takes bytecode and converts it either ahead-of-time, during compilation, just-in-time in a browser; into appropriate JavaScript code which does the same thing) | ||
Line 1,652: | Line 1,661: | ||
* What is “String args[]”? parameter in main method Java: https://stackoverflow.com/questions/890966/what-is-string-args-parameter-in-main-method-java#890980 | * What is “String args[]”? parameter in main method Java: https://stackoverflow.com/questions/890966/what-is-string-args-parameter-in-main-method-java#890980 | ||
* Java -- Check if command line arguments are null: https://stackoverflow.com/questions/3868878/java-check-if-command-line-arguments-are-null | * Java -- Check if command line arguments are null: https://stackoverflow.com/questions/3868878/java-check-if-command-line-arguments-are-null | ||
− | * How to set or change the default Java (JDK) version on OS X?: https://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x/44169445#44169445<ref>JDK & macOS: https://dzone.com/articles/jdk-amp-macos</ref><ref>MacOS Java version handling script: https://gist.github.com/dbuschman7/6688de9c00371766599746d747a11f89</ref> | + | * How to set or change the default Java (JDK) version on Mac OS X?: https://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x/44169445#44169445<ref>JDK & macOS: https://dzone.com/articles/jdk-amp-macos</ref><ref>MacOS Java version handling script: https://gist.github.com/dbuschman7/6688de9c00371766599746d747a11f89</ref> |
* Multiple Java versions on OS X, and their paths: http://dowhatimean.net/2009/08/multiple-java-versions-on-os-x | * Multiple Java versions on OS X, and their paths: http://dowhatimean.net/2009/08/multiple-java-versions-on-os-x | ||
+ | * How to manage multiple Java versions in MacOS - completely using ''Homebrew'' & ''jenv'' (Updated 2021 + macOS Big Sur): https://chamikakasun.medium.com/how-to-manage-multiple-java-version-in-macos-e5421345f6d0 | ||
* Make Old Java Applications Fully Snow Leopard Compatible: http://neosmart.net/blog/2009/make-old-java-applications-fully-snow-leopard-compatible/ | * Make Old Java Applications Fully Snow Leopard Compatible: http://neosmart.net/blog/2009/make-old-java-applications-fully-snow-leopard-compatible/ | ||
Latest revision as of 03:18, 28 July 2022
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
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.
Contents
|
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]
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]
1
2
3
4
- Java version archives: https://www.oracle.com/technetwork/java/archive-139210.html (versions 1.1-1.4 of the JRE/JDK are still available to download)[14]
5
Java SE's JRE/JDK 1.5 was released on 2004-09-30.
- Java platform - Standard Edition 5: https://docs.oracle.com/javase/5/docs/ | JAVADOCS | JRE | JDK
6
Java SE's JRE/JDK 1.8 was released on 2006-12-11.
- Java platform - Standard Edition 6: https://docs.oracle.com/javase/6/docs/ | JAVADOCS | JRE | JDK | OpenJDK
7
Java SE's JRE/JDK 1.7 was released on 2011-07-07.
- Java platform - Standard Edition 7: https://docs.oracle.com/javase/7/docs/ | JAVADOCS | JRE | JDK | OpenJDK[16]
8
Java SE's JRE/JDK 1.8 was released on 2014-03-18.
- Java platform - Standard Edition 8: https://docs.oracle.com/javase/8/ | JAVADOCS | JRE | JDK | OpenJDK[22][23]
- The Top 5 New Features in Java EE 8: https://dzone.com/articles/the-top-5-new-features-in-java-ee-8
- JλVλ 8 (A Comprehensive Look) : https://dzone.com/articles/jλvλ-8-a-comprehensive-look
- Java 8 in anger: http://trishagee.github.io/presentation/java8_in_anger/
- What's Up With Java EE 8? (Part 1): http://java.dzone.com/articles/whats-java-ee-8
- What's Up With Java EE 8? (Part 2): http://java.dzone.com/articles/whats-java-ee-8-part-2
- Java SE 8 -- Creating an HTTP Link Checker with Java: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/httpThreadLink/HttpClient.html
- How many threads are spawned in parallelStream in Java 8?: https://stackoverflow.com/questions/30802463/how-many-threads-are-spawned-in-parallelstream-in-java-8
- 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
9
Java SE's JRE/JDK 1.9 was released on 2017-09-21.
- Java platform - Standard Edition 9: https://docs.oracle.com/javase/9/ | JAVADOCS | JRE | JDK | OpenJDK[28][29]
- What we know so far about Java 9: http://www.baeldung.com/java-9
- State of Java - official Java 9 Roadmap updates from Oracle (2015): http://www.slideshare.net/trishagee/2015-java-update-and-roadmap-jug-sevilla
- Real World Java 9: https://trishagee.github.io/presentation/real_world_java_9/[31]
- The Java Modularity Story: http://architects.dzone.com/articles/java-modularity-story (coming in Java EE 9 or available now through OSGI)[32][33]
- Java 9 -- The Good, the Bad, and Private Interface Methods: https://dzone.com/articles/java-9-the-good-the-bad-and-private-interface-meth[34]
- Java8 Streams vs. Java9 Decorators: https://dzone.com/articles/streams-vs-decorators
- Java 9 -- Collections Improvement: https://dzone.com/articles/java-9-collections-improvements
- 9 Best Practices to Handle Exceptions in Java: https://dzone.com/articles/9-best-practices-to-handle-exceptions-in-java
- The Essential Java 9 Feature You Probably Never Heard Of : https://dzone.com/articles/the-essential-java-9-feature-you-probably-never-he
- How Java 9 And Project Jigsaw May Break Your Code: http://blog.codefx.org/java/dev/how-java-9-and-project-jigsaw-may-break-your-code/
- JDK 9 Is the End of the Road for Some Features: https://dzone.com/articles/jdk-9-is-the-end-of-the-road-for-some-features
- More Power to Interface in Java 9: https://dzone.com/articles/more-power-to-interface-in-java9
- Java 9 -- An Intro to HTTP/2 Support: https://dzone.com/articles/an-introduction-to-http2-support-in-java-9
- What Is Project Valhalla?: https://dzone.com/articles/what-is-project-valhalla (value types that act as primitives to enable abstraction & performance not require devs to give up one or the other)[35]
- JDK 9/10/11 -- Side Effects from += on Java String: http://marxsoftware.blogspot.com/2018/06/JDK-8204322.html
- Using Google's Protocol Buffers With Java: https://dzone.com/articles/using-googles-protocol-buffers-with-java
- Protocol Buffer Basics - Java: https://developers.google.com/protocol-buffers/docs/javatutorial[36]
- The Incredible Shrinking Java Platform: https://dzone.com/articles/the-incredible-shrinking-java-platform
10
Java SE 10's JRE/JDK 1.10 was released on 2018-03-20.
- Java platform - Standard Edition 10: https://docs.oracle.com/javase/10/ | JAVADOCS | JRE | JDK | OpenJDK[43]
- 109 New Features in JDK 10: https://dzone.com/articles/109-new-features-in-jdk-10[44]
- Java 10 Released: https://www.infoq.com/news/2018/03/Java10GAReleased
- Java 10 Released -- 10 New Features Devs Should Know: https://dzone.com/articles/java-10-released-10-new-features-devs-should-know
- Java 10 Immutable/Unmodifiable Stream API Collectors: https://4comprehension.com/java-immutable-unmodifiable-stream-api-collectors/
- Unlocking "Intersection Types" with var in Java 10: https://blog.codefx.org/java/intersection-types-var/
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.
- Java platform - Standard Edition 11: https://docs.oracle.com/en/java/javase/11/ | JRE | JDK | JAVADOCS | OpenJDK[48][49][50][51][52][53][54]
- Oracle's Java 11 trap - Use OpenJDK instead!: https://blog.joda.org/2018/09/do-not-fall-into-oracles-java-11-trap.html
- Difference between OpenJDK and AdoptOpenJDK: https://stackoverflow.com/questions/52431764/difference-between-openjdk-and-adoptopenjdk (flowchart of which JDK version to choose, depending on your individual/project/company needs)[56][57]
- Java 11 Will Include More Than Just Features: https://blog.takipi.com/java-11-will-include-more-than-just-features/
- Getting Ready for Java 11: https://dzone.com/articles/getting-ready-for-java-11
- APIs To Be Removed from Java 11: http://marxsoftware.blogspot.com/2018/08/apis-to-be-removed-from-java-11.html
- Java 11 String API Updates: https://4comprehension.com/java-11-string-api-updates/
- All You Need To Know For Migrating To Java 11: https://blog.codefx.org/java/java-11-migration-guide/
- Java 11 released: https://www.infoq.com/news/2018/09/java11-released
- Clean Architecture with Java 11: https://medium.com/slalom-engineering/clean-architecture-with-java-11-f78bba431041
[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.
- Definitive Guide To Java 12: http://blog.codefx.org/java/java-12-guide/
- Definitive Guide To Switch Expressions In Java 12: https://blog.codefx.org/java/switch-expressions
- The Brief but Complicated History of JDK 12's String::transform Method: http://marxsoftware.blogspot.com/2018/12/jdk12-string-transform.html
- The Complete Guide to the Java SE 12 Extended Switch Statement/Expression: https://www.infoq.com/articles/java-12-switch-expression
13
Java SE 13's combined JRE/JDK was released on 2019-09-25.
- Java 13 String API Updates: https://4comprehension.com/java-13-string-api-updates/
- Text Blocks Come to Java 13 (long-awaited multiline strings): https://blogs.oracle.com/javamagazine/text-blocks-come-to-java
14
Java SE 14's combined JRE/JDK was released on 2020-03-25.
- Better NPE Messages in JDK 14: https://marxsoftware.blogspot.com/2019/10/better-npe-messages-in-jdk-14.html
- A Guide to jpackage CLI "cross-platform installer tool generator" in Java 14: https://www.baeldung.com/java14-jpackage
- Java 14 Feature Spotlight -- Records: https://www.infoq.com/articles/java-14-feature-spotlight/
[93] [94] [95] [96] [97] [98] [99] [100] [101]
15
Java SE 15's combined JRE/JDK was released on 2020-09-25.
- What's new in JDK 15: https://malloc.se/blog/zgc-jdk15
[102] [103] [104] [105] [106] [107]
16
Java SE 16's combined JRE/JDK was released on 2021-03-25.
- Oracle Announces Java 16: https://www.oracle.com/news/announcement/oracle-announces-java-16-031621.html
- JDK 16 for the record(s): https://inside.java/2021/03/11/video-for-the-records/
[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.
- Towards OpenJDK 17: https://cl4es.github.io/2020/12/06/Towards-OpenJDK-17.html
[120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137]
18
- JDK 18: http://jdk.java.net/18/ | OpenJDK 18
[138] [139] [140] [141] [142] [143] [144]
19
- JDK 19: http://jdk.java.net/19/ | OpenJDK 18
Specifications
- wikipedia: Java Community Process#List of JSRs
- The Java® Language Specification - Java SE 7 Edition: http://docs.oracle.com/javase/specs/jls/se7/html/[146]
- The Java® Virtual Machine Specification - Java SE 7 Edition: http://docs.oracle.com/javase/specs/jvms/se7/html/[147]
- JAR spec: http://docs.oracle.com/javase/1.5.0/docs/guide/jar/jar.html[148]
Language
As a language, Java is comprised of 4 main components:
- J2SE - Java 2 Standard Edition and is normally for developing desktop applications, forms the core/base API.
- J2EE - Java 2 Enterprise Edition for applications which run on servers, for example web sites.
- 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.
- 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).
- Java Primitive Data Types: http://www.tutorialspoint.com/java/java_basic_datatypes.htm
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.
- VM Options Explorer: https://chriswhocodes.com/vm-options-explorer.html
- wikipedia: List of Java virtual machines
[151] [152] [153] [154] [155] [156]
GraalVM
- GraalVM: https://www.graalvm.org/
- The GraalVM frenzy: https://medium.com/@jponge/the-graalvm-frenzy-f54257f5932c
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).
- JRE latest: 1.9 | 1.8 | 1.7 | 1.6 | 1.5
- What is the difference between the JRE and the JDK, JRE and J2SE?: https://www.java.com/en/download/faq/techinfo.xml
JDK
Java Development Kit (JDK) contains everything the JRE does but also adds required tooling for developing and packaging Java applications. It includes:
- appletviewer - for viewing Java applets
- javac - Java compiler
- java - Java interpreter
- javap - Java disassembler
- javah - for C header files
- javadoc - for creating HTML files
- jdb - Java debugger
- JDK latest: 1.11 | 1.10 | 1.9 | 1.8 | 1.7 | 1.6 | 1.5 | 1.4 | 1.3 | 1.2 | 1.1
- Oracle JVM download using curl/wget: https://gist.github.com/hgomez/4697585 (useful for command-line automation of Java downloads or server updates)[158]
- Oracle JDK -- Migration guide: https://docs.oracle.com/en/java/javase/17/migrate/getting-started.html
[159] [160] [161] [162] [163] [164]
OpenJDK
OSS version of the now commercial Oracle JDK.
- OpenJDK: http://openjdk.java.net/
- Amazon Correto -- OpenJDK: https://aws.amazon.com/corretto/ (Amazon's OpenJDK implementation)[165][166]
- SAP Machine: https://sap.github.io/SapMachine/ (SAP's OpenJDK implementation)[167]
[168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178]
Packaging
Packages
System & speficication for adding Package-level comments.
- Oracle Java tutorials -- Packages: https://docs.oracle.com/javase/tutorial/java/package/index.html
- Oracle Java tutorials -- "package-info.java": https://docs.oracle.com/javase/specs/jls/se7/html/jls-7.html#jls-7.4.1
[179] [180] [181] [182] [183] [184] [185] [186] [187] [188]
Modules
- OpenJDK quick start on Modules: https://openjdk.java.net/projects/jigsaw/quick-start
- wikipedia: Java Platform Module System
- Java Platform Module System (BOOK): https://livebook.manning.com/book/the-java-module-system/about-this-book/
- Update on the state of Java modularization: https://blog.frankel.ch/update-state-java-modularization/ (+3 years of progress -- Sep 2017 .vs. Jan 2019 .vs. Oct 2020)
[189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208]
JAR
- Java Application Archive (JAR): http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html[209][210][211]
- Eclipse - Create JAR file in Java & Eclipse: http://viralpatel.net/blogs/2008/12/create-jar-file-in-java-eclipse.html[212]
- NetBeans - Packaging a Distributable JAR: http://wiki.netbeans.org/PackagingADistributableJavaApp[213][214]
- Sign & Verify a JAR File (official example): https://docs.oracle.com/javase/8/docs/technotes/tools/windows/jarsigner.html#sthref155
[222] [223] </ref>The Future of Java Applets: https://www.algosome.com/articles/future-of-java-applets.html</ref> [224] [225] [226] [227]
WAR
- Web Application Archive (WAR): http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/WCC3.html[228]
EAR
- Enterprise Application Archive (EAR): http://docs.oracle.com/javaee/5/tutorial/doc/bnaby.html#indexterm-47 [229][230][231]
- Packaging Utility Classes or Library JAR Files in a Portable J2EE Application: http://java.sun.com/j2ee/verified/packaging.html
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. [232]
- How to Set Classpath for Java on Windows, Unix and Linux: http://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html
Garbage Collection
- Garbage Collection -- A Brief Introduction: https://dzone.com/articles/garbage-collection-a-brief-introduction
Security
- 10 Java security best practices: https://snyk.io/blog/10-java-security-best-practices/
Operators
- Java Operators: http://download.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html
- Bitwise Operators and Bit Masks: http://vipan.com/htdocs/bitwisehelp.html
File I/O
- Java File I/O: https://docs.oracle.com/javase/tutorial/essential/io/
- Everything you need to know about "Java & File handling": https://www.marcobehler.com/guides/java-files
[238] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256]
Serialization
- Java Object Serialization: https://docs.oracle.com/javase/8/docs/technotes/guides/serialization/index.html | Serializable Objects
- Introduction to Java Serialization: https://www.baeldung.com/java-serialization
- Understand the serialVersionUID: https://www.mkyong.com/java-best-practices/understand-the-serialversionuid/
[257] [258] [259] [260] [261] [262]
Network I/O
- Introduction to the Java HTTP Client: https://openjdk.java.net/groups/net/httpclient/intro.html
- Posting with Java HttpClient: https://www.baeldung.com/java-httpclient-post
- Do a Simple HTTP Request in Java: https://www.baeldung.com/java-http-request
Primitives
Bytes
- Convert String to Byte[] array: http://www.javadb.com/convert-string-to-byte-array[265]
Money
- Introducing JSR 354 - The Money & Currency API by Wim van Haaren and Jeroen Burggraaf: https://www.youtube.com/watch?v=uasi71dWWVQ | SLIDES
Currency
- JDK 8 -- JavaDocs - Currency class: https://docs.oracle.com/javase/8/docs/api/java/util/Currency.html
- Java Money and the Currency API - JUnit testing tutorial: https://www.baeldung.com/java-money-and-currency
Proxy
- Java Networking and Proxies: https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html
- The AJAX XmlHttpProxy Client for Java: https://web.archive.org/web/20120510102905/http://weblogs.java.net/blog/gmurray71/archive/2006/07/the_xmlhttpprox.html
- Restricting Access to your AJAX Services: https://web.archive.org/web/20110809161111/http://weblogs.java.net/blog/gmurray71/archive/2006/08/restricting_acc.html
- Accessing External Resources With the XMLHttpProxy Client: https://ajax.dev.java.net/xmlhttpproxy.html
- Configure HTTP/HTTPS Proxy Settings Java: https://memorynotfound.com/configure-http-proxy-settings-java/
Methods
Static
- Static/Class methods: http://www.leepoint.net/notes-java/flow/methods/50static-methods.html
Hash Code
- On Generating Identity Hash Codes: https://alidg.me/blog/2020/7/15/hash-code
JavaBeans
- JavaBean vs EJB: http://java.sys-con.com/node/36515
Threads
- Concurrency (multi-threading) in Java: http://docs.oracle.com/javase/tutorial/essential/concurrency/[268]
- Exploring Java - Chapter 6, Threads: http://oreilly.com/catalog/expjava/excerpt/index.html
- Introduction to Java threads - A quick tutorial on how to implement threads in Java: http://www.javaworld.com/javaworld/jw-04-1996/jw-04-threads.html
- Comprehensive Java Threads tutorial: http://www.freejavaguide.com/java-threads-tutorial.pdf
[269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288]
- Creating and Analyzing Java Heap Dumps: https://reflectoring.io/create-analyze-heapdump/
- Take thread dumps from a JVM: https://helpx.adobe.com/experience-manager/kb/TakeThreadDump.html
- jstackSeries.sh: https://github.com/cqsupport/jstackSeries.sh/blob/master/jstackSeries.sh (take thread dumps for analysis to find application performance problems)
- FastThread: https://fastthread.io/ (analysis tool for Thread Dumps)
RMI
- Oracle Java -- Remote Method Invocation (RMI) - Distributed Computing for Java: https://www.oracle.com/java/technologies/javase/remote-method-invocation-distributed-computing.html
- Oracle, "Learning Java" trails -- RMI - An Overview of RMI Applications: https://docs.oracle.com/javase/tutorial/rmi/overview.html
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.
- CORBA: http://www.corba.org/
[295] [296] [297] [298] [299] [300] [301] [302]
jwebserver
- OpenJDK -- JDK 18 - Simple Web Server (JEP 408): https://openjdk.java.net/jeps/408
- Java 18 Simple Web Server: https://javadevcentral.com/java-18-simple-web-server
JNI
- wikipedia: Java Native Interface (JNI)
- Java Native Interface (JNI): https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html
JNA
- wikipedia: Java Native Access (JNA)
- Introduction to JNA: https://riptutorial.com/java/example/18621/introduction-to-jna
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:
- Natural - use the terminology of the problem, not the terminology of a computer
- Reliable - Modular construction puts knowledge and responsibility where they belong (each component to be tested/validated independently)
- Reusable - Properly designed class Objects can form reusable components
- Maintainable - Software components may change or even be replaced completely (if done, it should be transparent to rest of system)
- Extendable - Permits easy addition of new functionality, as the user's needs change over time.
- Timely - Quicker development times from parallel development of independent but related classes by independent developers
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[310] (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).[311]
- Abstract classes vs. interfaces: http://www.javaworld.com/javaqa/2001-04/03-qa-0420-abstract.html
- interface vs abstract class: http://mindprod.com/jgloss/interfacevsabstract.html
- When to use Interfaces: http://java.dzone.com/articles/programming-when-use
- Evolution of Interfaces in History of Java: https://dzone.com/articles/evolution-of-interface-in-history-of-java
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. [312]
- Inheritance: http://docs.oracle.com/javase/tutorial/java/concepts/inheritance.html[313]
- What is Inheritance in Java and OOP Tutorial - ExampleRead more: http://javarevisited.blogspot.com/2012/10/what-is-inheritance-in-java-and-oops-programming.html[314]
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). [315][316]
- Polymorphism and Java - What to do when switch statements start reappearing in your code: http://www.javaworld.com/javaworld/javatips/jw-javatip30.html
- Tutorial 5 - Inheritance & Polymorphism: http://home.cogeco.ca/~ve3ll/jatutor5.htm[317][318]
Abstract
- Difference between Abstract Class and Interface in Java: https://www.geeksforgeeks.org/difference-between-abstract-class-and-interface-in-java/
Interface
- Static and Default Methods in Interfaces in Java: https://www.baeldung.com/java-static-default-methods
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.
- Oracle Java tutorial -- Type Inference and Generic Methods: http://docs.oracle.com/javase/tutorial/java/generics/genTypeInference.html
[321] [322] [323] [324] [325] [326] [327] [328]
Optional
- Understanding, Accepting, and Leveraging Optional in Java: https://dzone.com/articles/understanding-accepting-and-leveraging-optional-in (to avoid dreaded NPEs)
- Optional Parameters in Java - Common Strategies and Approaches: https://stackify.com/optional-parameters-java/
[329] [330] [331] [332] [333] [334] [335] [336] [337] [338] [339] [340]
Type-inference
- Java 10 Local Variable Type-Inference: https://developer.oracle.com/java/jdk-10-local-variable-type-inference.html
Collections
- Java - Collections: https://docs.oracle.com/javase/8/docs/technotes/guides/collections/index.html[344][345]
- "Eclipse Collections" wrapper lib: https://www.eclipse.org/collections/ (lib that adds additional features to OOTB Java Collections)[346]
Lists
- ArrayList vs. LinkedList vs. Vector: http://java.dzone.com/articles/arraylist-vs-linkedlist-vs
- Java Stack (legacy Collection data type) – Stack In Java: http://www.journaldev.com/13401/java-stack
- List Interface in Java with Examples: http://www.geeksforgeeks.org/list-interface-java-examples/
Sets
- Collections - Set interface in Java: https://docs.oracle.com/javase/tutorial/collections/interfaces/set.html
- How to initialize HashSet values by construction?: https://stackoverflow.com/questions/2041778/how-to-initialize-hashset-values-by-construction
Maps
- JAVA's version of Associative Arrays - Map Classes: http://www.faqs.org/docs/javap/c12/s3.html[350]
- HashMap example in Java: http://www.java-samples.com/showtutorial.php?tutorialid=369
- The Map Interface: http://java.sun.com/docs/books/tutorial/collections/interfaces/map.html
- HashMap vs. TreeMap vs. HashTable vs. LinkedHashMap: http://java.dzone.com/articles/hashmap-vs-treemap-vs
- Working With Maps Using Streams: http://www.baeldung.com/java-maps-streams
[351] [352] [353] [354] [355] [356] [357]
Streams
- New and Enhanced APIs That Take Advantage of Lambda Expressions and Streams in Java SE 8: https://docs.oracle.com/javase/8/docs/technotes/guides/language/lambda_api_jdk8.html | JAVADOCS
- Processing Data with Java SE 8 Streams: Part 1 | Part 2
- Java 8 Streams API: https://blogs.oracle.com/java/java-8-streams-api
- How to Reuse Java Streams: https://dzone.com/articles/how-to-replay-java-streams
[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]
Lambda Expressions
Lambda Expressions are a new feature in Java 8 that allow "anonymous functions" to simplify Java development syntax.
- Java 8 - Lambda Expressions: http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html[392]
- Lambda Expressions in Java 8: https://dzone.com/articles/lambda-expression-in-java8
- Train Wreck Pattern – A much improved implementation in Java 8 (using Lambdas): http://java.dzone.com/node/139613/
[393] [394] [395] [396] [397] [398] [399] [400] [401] [402] [403] [404] [405] [406] [407] [408] [409] [410] [411] [412] [413] [414] [415] [416] [417] [418] [419] [420] [421] [422] [423] [424] [425] [426] [427] [428] [429] [430] [431] [432] [433] [434] [435] [436]
Records
- Records Come to Java: https://blogs.oracle.com/javamagazine/post/records-come-to-java
- Java 14 - "record" keyword: https://www.baeldung.com/java-record-keyword
- Java Records – A Beginner’s Guide: https://vladmihalcea.com/java-records-guide/
JMX
- Oracle -- Java Lessons - Overview of the JMX Technology: https://docs.oracle.com/javase/tutorial/jmx/overview/index.html
- JDK Mission Control 8 released: https://www.infoq.com/news/2021/04/jdk-mission-control-8-released/
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").
- JNDI: http://www.oracle.com/technetwork/java/jndi/
- The JNDI Tutorial: http://java.sun.com/products/jndi/tutorial/
- JNDI.properties in Netbeans: http://www.theserverside.com/discussions/thread.tss?thread_id=39121
- JNDI - Resource Injection: http://download.oracle.com/javaee/5/tutorial/doc/bncjk.html
- Accessing Derby database using JNDI: http://weblogs.java.net/blog/2006/01/17/accessing-derby-using-jndi
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. [442]
- JDBC Driver List: http://www.soapui.org/Working-with-soapUI/jdbc-driver-list.html
- JDBC(TM) Database Access tutorials: http://docs.oracle.com/javase/tutorial/jdbc/
- JDBC - Quick Guide: http://www.tutorialspoint.com/jdbc/jdbc-quick-guide.htm[443][444]
- Learn JDBC in 10 minutes – JDBC Tutorial: http://www.raima.com/jdbc-tutorial/[445]
- How to Close JDBC Resources Properly – Every Time: http://blog.shinetech.com/2007/08/04/how-to-close-jdbc-resources-properly-every-time/
- Prepared Statements in JDBC: http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html (the way to prevent SQL injection in Java)[446]
[447] [448] [449] [450] [451] [452] [453] [454] [455] [456] [457] [458] [459]
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.[460][461][462][463]
There are three types of Enterprise Java Beans namely:
- Session Beans - implements portions of application code in middleware and to simplifies access (two types: Stateless or Stateful)
- Entity Beans - business object in a persistent storage mechanism (i.e. Data Access Object)
- Message driven beans - allows J2EE applications to process messages asynchronously (acts as a JMS listener)[464]
- wikipedia: Enterprise JavaBean
- EJB 3.1 spec: http://jcp.org/aboutJava/communityprocess/final/jsr318/ | 2.1[465]
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.
- EJB 3.0 Metadata Annotations Reference: http://download.oracle.com/docs/cd/E13222_01/wls/docs100/ejb30/annotations.html
- EJB 3.0 - Annotations Cheat Sheet: http://www.fnogol.de/media/ejb3.0-anno-cheat-1.2.2.pdf
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.
- See page: Servlet
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.
- See page: JSP
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
- JNLP File Syntax: http://docs.oracle.com/javase/1.5.0/docs/guide/javaws/developersguide/syntax.html[473][474]
- Launching Web Start applications: https://blogs.oracle.com/java-platform-group/entry/launching_web_start_applications | DEMOS[475][476]
- Java Web Start (JNLP) Tutorial: http://www.mkyong.com/java/java-web-start-jnlp-tutorial-unofficial-guide/
- IcedTea: https://openjdk.java.net/projects/icedtea/
- OpenWebStart: https://openwebstart.com/ (replaces prior "baked in" Java Web Start)
[477] [478] [479] [480] [481] [482] [483] [484] [485] [486] [487]
Batch
- Batch Applications for the Java Platform (JSR-000352): http://jcp.org/aboutJava/communityprocess/final/jsr352/
- Introducing JSR-352 - Batch Applications for the Java Platform: http://www.planetjones.co.uk/blog/25-05-2013/introducing-jsr-352-java-batch-ee-7.html
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
- JAVA - Creating a GUI With JFC/Swing: http://java.sun.com/docs/books/tutorial/uiswing/
- Java Swing Tutorials: http://www.roseindia.net/java/example/java/swing/
- Using the Desktop API in Java SE 6: http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/
- Create hyperlink with browsing support. : http://jajatips.blogspot.com/2009/04/create-hyperlink-with-desktop.html
- Make Your Swing App Go Native: http://today.java.net/pub/a/today/2004/01/29/swing.html
- Internationalizing a GUI Form: http://netbeans.org/kb/docs/java/gui-automatic-i18n.html?intcmp=925655
- SwingX: https://github.com/arotenberg/swingx | DOWNLAOD (salvaged just before java.net went down)[489]
- BlogOfBug -- Cascade & 3D Carousel (DEMOS): | DOWNLOAD
[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]
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.
JMF
- Java Media Framework (JMF) download: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140239.html (formerly: http://java.sun.com/products/java-media/jmf)
- Complete Example—Deploying Java Media Framework as Java Extension: http://download.oracle.com/javase/1,5.0/docs/guide/plugin/developer_guide/extensions_example.html
Frameworks
- Java Data Objects (JDO) .vs. Java Persistence Architechture (JPA): http://db.apache.org/jdo/jdo_v_jpa.html
JPA
Java Persistence API (JPA) provides a POJO persistence model for object-relational mapping.
- Java Persistence Architechture (JPA): http://www.oracle.com/technetwork/java/javaee/tech/persistence-jsp-140049.html
- Jakarta Persistence 2.2: https://jakarta.ee/specifications/persistence/2.2/ (JPA was renamed to Jakarta Persistence Architecture)
- Jakarta Persistence API 3.0: https://projects.eclipse.org/projects/ee4j.jpa/releases/3.0-jakarta-persistence-api | SRC | DOWNLOAD | DOCS
- JPA Reference Guide (for JBoss Application Server 7): https://docs.jboss.org/author/display/AS7/JPA+Reference+Guide
- Object-Relational Mappings - Generating JPA Entities: http://docs.oracle.com/cd/E14545_01/help/oracle.eclipse.tools.orm.doc/html/files/genJPAEntities.html
- Migrating legacy Hibernate applications to OpenJPA and EJB 3.0: http://www.ibm.com/developerworks/websphere/techjournal/0708_vines/0708_vines.html[533]
- Getting Started with JPA 2 Tutorial: http://syshex.wordpress.com/2011/09/10/jpa_getting_started_part1/[534][535]
- JPA 2 Tutorial – Many To Many example: http://syshex.wordpress.com/2012/12/17/jpa-2-relationships-many-to-many/[536]
- Generate JPA 2 Entities from existing Database: https://stackoverflow.com/questions/5833329/generate-jpa-2-entities-from-existing-database
- JPA - Quick Guide: https://www.tutorialspoint.com/jpa/jpa_quick_guide.htm
- Pro JPA 2 in Java EE 8 BOOK): http://www.apress.com/9781484234198 | SRC | O'Reilly/SafariOnline (by Mike Keith, a lead on Eclipse foundation's JakartaEE & JPA projects)
- JPA's Nasty "Unknown abstract schema type" Error: https://dzone.com/articles/the-nasty-jpa-unknown-abstract (JPA requires all SQL or more appropriately, its JPQL, to use the name of the Entity class not the Database name, unless explicitly told how to find the database name using the @Name attribute)
[537] [538] [539] [540] [541] [542] [543] [544][545][546] [547] [548] [549] [550] [551] [552] [553] [554] [555] [556] [557] [558] [559] [560] [561] [562] [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] [592] [593] [594] [595] [596] [597] [598] [599] [600]
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.
- OpenJPA: http://openjpa.apache.org | DOCS
- OpenJPA Docs -- Chapter 2 - Why JPA?: http://openjpa.apache.org/builds/3.1.0/apache-openjpa/docs/jpa_overview_why.html
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.[603]
See also: Hibernate
- Sessions and transactions: https://www.hibernate.org/42.html
- Chapter 1 - Hibernate Tutorial: http://docs.jboss.org/hibernate/stable/core/reference/en/html/tutorial.html
- Learn Hibernate Quickly - Simplified Java Persistence with Hibernate & JPA: http://www.theserverside.com/tip/Learn-Hibernate-Quickly-Simplified-Java-Persistence-with-Hibernate-JPA
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).[606]
- MyBatis: http://blog.mybatis.org/ (formerly iBatis[607])
EclipseLink
- EclipseLink: https://www.eclipse.org/eclipselink/
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).
- Object Relational Mapping, Persistence and Caching for Java: http://cayenne.apache.org/
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.
- How to fetch a one-to-many DTO projection with JPA and Hibernate: https://vladmihalcea.com/one-to-many-dto-projection-hibernate/
[609] [610] [611] [612] [613] [614]
JDO
Java Data Objects (JDO) is a standard interface-based Java model abstraction of persistence.
- Java Data Objects (JDO): http://www.oracle.com/technetwork/java/index-jsp-135919.html
DataNucleus
DataNucleus Access Platform is the leading open source implementation of JDO. The latest version of Access Platform also supports JPA v2.0.[615]
- DataNucleus: http://www.datanucleus.org/
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.
- Apache CXF: http://cxf.apache.org
- wikipedia: Apache CXF
- MVC the XML way with CXF JAX-RS: http://sberyozkin.blogspot.com/2009/05/mvc-xml-way-with-cxf-jax-rs.html
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.
- Project ROME: https://rometools.github.io/rome/[618]
- Reading/Parsing RSS and Atom feeds in Java with Rome: http://www.codingpedia.org/ama/reading-parsing-rss-and-atom-feeds-with-rome/
Tools
- jEnv: http://www.jenv.be | SRC (manage your Java environment variables on a per-project basis without setting JAVA_HOME)[619]
- SDKman: http://sdkman.io/ (manage the JDK/JRE versions installed from a single tool)
- Bck2Brwsr - Java to JavaScript compiler: http://wiki.apidesign.org/wiki/Bck2Brwsr (takes bytecode and converts it either ahead-of-time, during compilation, just-in-time in a browser; into appropriate JavaScript code which does the same thing)
- Java version Tester: http://javatester.org/version.html
- Java Beautifier: http://codebeautify.org/javaviewer (turn non-whitespaced/tabbed snippets into properly tabbed/spaced Java code)
- Get the Java Development Kit (JDK): http://java.simpler.ca/
- JaCoLine - Java Command Line Inspector: https://jacoline.dev/inspect (can tell differences/incompatibilities between Java command-line commands)
- JD - Java Decompiler: http://jd.benow.ca/ (reverse-engineer .class files)
- DJ Decompiler: http://neshkov.com/
- Java analytical decompiler: http://www.reversed-java.com/fernflower/
- JAD (the original Java Archive Decomplier): http://www.varaneckas.com/jad (supports only up to JDK 1.4)
- Java Decompiler: http://java.decompiler.free.fr/ (modern support up to JDK 1.6.26)
- C to Java converter: http://www.soften.ktu.lt/~stonis/c2java/index.html
- Java/Javascript Socket Bridge (2-way JS): http://stephengware.com/projects/#jsb
- Codename ONE: http://www.codenameone.com/ (Java to Objective-C for iOS, Java to Dalvik for Android and Java to J2ME for Blackberry, Symbian, etc bytecode compiler) [622][623]
- Open Web Start (OWS): https://openwebstart.com/ (OSS replacement for Java Web Start) | DOWNLOAD
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.
- How to download Javadoc to read offline?: https://stackoverflow.com/questions/6986993/how-to-download-javadoc-to-read-offline
- Documentation Comment Specification for the Standard Doclet: https://docs.oracle.com/en/java/javase/11/docs/specs/doc-comment-spec.html
- Sun/Oracle - JavaDoc FAQ: http://www.oracle.com/technetwork/java/javase/documentation/index-137483.html
- Basic Javadoc guide: https://www.codeproject.com/articles/658382/basic-javadoc-guide
- Programmer's Guide to "Snippets" (code/usage examples in JavaDocs): https://docs.oracle.com/en/java/javase/18/code-snippet/index.html
- JDK 8 - javadoc - How to Write Doc Comments for the Javadoc Tool: http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html | EXAMPLE
- How to generate Javadoc from command line: https://stackoverflow.com/questions/4592396/how-to-generate-javadoc-from-command-line#4592447
- Get source jar files attached to Eclipse for Maven-managed dependencies: https://stackoverflow.com/questions/310720/get-source-jar-files-attached-to-eclipse-for-maven-managed-dependencies[625]
[626] [627] [628] [629] [630] [631] [632] [633] [634] [635] [636] [637] [638] [639] [640] [641] [642] [643] [644] [645] [646] [647] [648] [649] [650] [651] [652] [653] [654] [655]
Resources
- Adopt OpenJDK: https://adoptopenjdk.net/ (pre-built platform-specific OpenJDK binaries)[656]
- OpenJDK: http://openjdk.java.net (OpenJDK source code)[657] | JDK8 | JDK9
- Oracle Java (DOCS) -- Chapter 6 - The Java Virtual Machine Instruction Set: https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-6.html[658]
- JVM Ecosystem Report 2021: https://snyk.io/jvm-ecosystem-report-2021/ | PDF[659]
- Java Design Patterns: http://java-design-patterns.com/patterns/
- Java Design Patterns with examples: https://www.journaldev.com/1827/java-design-patterns-example-tutorial
- JPA Performance Benchmark -- results comparison: https://www.jpab.org/All/All/All.html
- Controlling Access to Members of a Class: https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html[665][666][667]
- Awesome JAVA: https://github.com/akullpp/awesome-java (curated list of awesome Java frameworks, libraries & software)
- Java API design checklist: http://theamiableapi.com/2012/01/16/java-api-design-checklist/
- Google's Java Style Guide: http://google-styleguide.googlecode.com/svn/trunk/javaguide.html
- ByteBuddy: https://bytebuddy.net/#/ (code generation and manipulation library for creating and modifying Java classes during the runtime of a Java application and without the help of a compiler)[668]
- Core Java (JDK 9+), volume 1 - Fundamentals, 11 ed. (BOOK): https://learning.oreilly.com/library/view/core-java-volume/9780135167199/ | EXAMPLE - Ch.7, Tips for Exceptions
- Core Java (JDK 9+), volume 2 - Advanced topics, 11th ed. (BOOK): https://learning.oreilly.com/library/view/core-java-volume/9780135167175/ | EXAMPLE - Ch.9, Java Platform Module System
- Maven Central: https://search.maven.org/
- MVN reppository - OSS Java libs & packages: https://mvnrepository.com/open-source (top packages/libs)
- Top Java Packages: https://www.programcreek.com/java-api-examples/?action=top_java_packages
- Java EE Code Samples & Apps: http://www.oracle.com/technetwork/java/javaee/documentation/code-139018.html
- 99 Problems in Java: http://github.com/shekhargulati/99-problems (good interview or school prep exercises)
- In28minutes -- Learn Java Programming: https://github.com/in28minutes/java-a-course-for-beginners
- WickedCool JAVA (book source code): http://www.wickedcooljava.com/downloads.jsp
- Computing Concepts with Java Essentials, 3rd Edition - source code: http://www.horstmann.com/ccj.html (I used 2nd edition in 1st yr. CS)
- Beginning Java EE 5 - from novice to professional: http://books.google.ca/books?id=VA85R10as0IC&pg=PA184&lpg=PA184&dq=java+ee5+MVC+pattern&source=bl&ots=gzhAogvr6s&
- Core Java: http://refcardz.dzone.com/refcardz/core-java
- Java EE 6 Annotations (cheat sheet): https://blogs.oracle.com/geertjan/entry/java_ee_6_cheat_sheet
- Java Design Patterns Reference and Examples: http://www.fluffycat.com/Java-Design-Patterns/
- Java programming course (NTU): https://www.ntu.edu.sg/home/ehchua/programming/java/j2_basics.html
- Top 30 E-Learning options for Java -- Tutorials for Beginners, Intermediate, and Advanced Programmers: https://stackify.com/java-tutorials/
- Learn Java in French - Développons en Java: http://www.jmdoudoux.fr/java/dej/indexavecframes.htm
- Compile Time Error Messages: http://mindprod.com/jgloss/compileerrormessages.html
- Java Application Vulnerabilities -- What They Are and How to Fix Them: https://dzone.com/storage/assets/6652488-dzone-rc248-javaapplicationvulerabilities.pdf
- 4 More Techniques for Writing Better Java: https://dzone.com/articles/4-more-techniques-for-writing-better-java
- Java Functional Interfaces (CHEATSHEET): https://dzone.com/articles/cheatsheet-java-functional-interfaces
- 11 great Java tricks from dev.java team: https://blogs.oracle.com/javamagazine/post/java-11-tricks-generics-inheritance-jshell
- jpcap -- a network packet capture library for applications written in Java: http://jpcap.sourceforge.net/
- Java SASL API: http://download.oracle.com/javase/1.5.0/docs/guide/security/sasl/sasl-refguide.html
- The Keyboard JAVA Class: http://duke.csc.villanova.edu/jss1/bookResources/keyboard.jsp
- Mapping SQL and Java Types: http://download.oracle.com/javase/1.3/docs/guide/jdbc/getstart/mapping.html
- Mapping of java.sql.Types to SQL types: http://publib.boulder.ibm.com/infocenter/cscv/v10r1/index.jsp?topic=%2Fcom.ibm.cloudscape.doc%2Frrefjdbc20377.html\
- Java Audio Demos: http://ptolemy.berkeley.edu/java/audio/index.html
- Solving the XML (and JSON) Problems with Jackson: https://dzone.com/articles/solving-the-xml-problem-with-jackson (two formats, one fast & easy to use library)
- Open Source Social Networking Applications Written in Java: http://twit88.com/blog/2007/11/18/java-open-source-social-networking-applications/
- Open Source Collaborative Filtering Written in Java: http://www.manageability.org/blog/stuff/open-source-collaborative-filter-in-java
- Open Source Web Crawlers Written in Java: http://www.manageability.org/blog/stuff/open-source-web-crawlers-java
- Open Source Personal Agent Systems Written In Java: http://www.manageability.org/blog/stuff/open-source-agent-java
- Open Source Graph or Network Visualization Written in Java: http://www.manageability.org/blog/stuff/open-source-graph-network-visualization-in-java
- Open Source Grid, Cluster & Cloud Computing Frameworks Written in Java: http://www.manageability.org/blog/stuff/open-source-grid-cluster-java
- Open Source EAI solutions Written In Java: http://www.manageability.org/blog/stuff/open-source-messaging-integration-transformation-routing-java
- Open Source Rule Engines Written In Java: http://www.manageability.org/blog/stuff/rule_engines
- Open Source Automated Testing Tools Written in Java: http://www.manageability.org/blog/stuff/open-source-automated-test-tools-written-in-java
- x-ray -- Statistics and analytics for blogs: http://java.net/projects/x-ray/
- PartyBand - Repertoire and gig organizer for bands and musicians: http://netbeans.dzone.com/nb-partyband-gig-management
- Assorted JAVA Code Fragments: http://ww0.java4.datastructures.net/source/?_notoolbar
Tutorials
- OpenJDK Developers' Guide: http://openjdk.java.net/guide/
- Oracle -- About the Java Technology tutorial: http://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html (how Java compilation works in diagrams)
- Java tutorial for beginners: http://www.benchresources.net
- Core Java tutorial: http://www.thejavageek.com/core-java/
- Java Programming forums: http://www.javaprogrammingforums.com/
- CodeGym - Java forum: https://codegym.cc/help
- Interactive Console Applications in Java: http://dzone.com/articles/interactive-console-applications-in-java
- How do I compile for compatibility with older versions of Java?: http://www.veryant.com/support/phpkb/question.php?ID=57 (use the -jo compiler command line option in order to specify options to be passed to the Java compiler such as:"-source" and "-target")
- Compile recursively with javac: http://stas-blogspot.blogspot.ca/2010/01/compile-recursively-with-javac.html
- 4 free ways to hot-swap code on the JVM: https://sites.google.com/a/athaydes.com/renato-athaydes/posts/4freewaystohot-swapcodeonthejvm
- Packaging JAVA Programs in JAR Files - Setting an Application's Entry Point: http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html
- Creating an Executable jar File: http://www.skylit.com/javamethods/faqs/createjar.html
- Java - Build an executable jar file by referencing your dependencies: http://alvinalexander.com/blog/post/java/how-build-executable-jar-file-reference-dependencies
- Creating a jar File in Eclipse: http://www.cs.utexas.edu/~scottm/cs307/handouts/Eclipse%20Help/jarInEclipse.htm
- Java Tip 120 - Execute self-extracting JARs: http://www.javaworld.com/javaworld/javatips/jw-javatip120.html
- Difference between this and super keywords in Java: http://java67.blogspot.ca/2013/06/difference-between-this-and-super-keyword-java.html
- The Principles of Java Application Performance Tuning: http://java.dzone.com/articles/principles-java-application
- Locating resources in Java: http://littletutorials.com/2008/03/26/locating-resources-in-java/
- Java resource loading explained. Absolute and relative names. Difference between ClassLoader and Class resource loading: http://www.thinkplexx.com/learn/howto/java/system/java-resource-loading-explained-absolute-and-relative-names-difference-between-classloader-and-class-resource-loading
- JNLP - Creating the Web Page That Launches the Application: http://java.sun.com/j2se/1.5.0/docs/guide/javaws/developersguide/launch.html
- NetBeans Platform -- JNLP & static codebase: http://puces-blog.blogspot.com/2009/10/netbeans-platform-jnlp-static-codebase.html
- Understanding MANIFEST files: https://www.baeldung.com/java-jar-manifest
- How to fix "Failed to load Main-Class manifest attribute from JAR" error: http://javarevisited.blogspot.com/2013/01/how-to-fix-failed-to-load-main-class-manifest-attribute-jar-java-eclipse.html
- Bad class file, Class file has wrong version in Java: http://www.developerfeed.com/bad-class-file-class-file-has-wrong-version-java
- Class Casting Is a Discriminating Anti-Pattern: http://www.yegor256.com/2015/04/02/class-casting-is-anti-pattern.html
- How to Compile a Class at Runtime with Java 8 and 9: https://blog.jooq.org/2018/04/03/how-to-compile-a-class-at-runtime-with-java-8-and-9/
- Getting Started with Quarkus: https://www.infoq.com/articles/getting-started-with-quarkus/
- Java 8 List All Files In Directory – Six Examples: https://howtodoinjava.com/java8/java-8-list-all-files-example/[669][670][671]
- Get file name from URL: https://stackoverflow.com/questions/605696/get-file-name-from-url[672]
- A Beginner’s Guide on how to create, load, and use Properties: http://resources.mdbitz.com/2009/09/java-property-files-a-beginners-guide-on-how-to-create-load-and-use-properties/
- Reading .properties file from JAR in /META-INF: http://www.coderanch.com/t/382171/java/java/Reading-properties-file-jar-META
- Load a properties file: http://www.rgagnon.com/javadetails/java-0434.html
- Loading Java Properties Files: http://viralpatel.net/blogs/2009/10/loading-java-properties-files.html
- How to Use ResourceBundle.getBundle to get Properties Value at Runtime in Java?: http://crunchify.com/how-to-use-resourcebundle-getbundle-to-get-properties-value-at-runtime-in-java/
- How to escape the equals sign in properties files: http://stackoverflow.com/questions/2406975/how-to-escape-the-equals-sign-in-properties-files[673][674]
- How to download image from any web page in Java: https://stackoverflow.com/questions/5882005/how-to-download-image-from-any-web-page-in-java
- Load Java Image inside package from a class in a different package: https://stackoverflow.com/questions/12153590/load-java-image-inside-package-from-a-class-in-a-different-package
- Reading/Loading an Image: https://docs.oracle.com/javase/tutorial/2d/images/loadimage.html
- Difference between String object & string literal: https://stackoverflow.com/questions/3297867/difference-between-string-object-and-string-literal
- Easy String padding: http://www.rgagnon.com/javadetails/java-0448.html
- The Do's and Don’ts of Java Strings: https://dzone.com/articles/the-dos-and-donts-of-java-strings
- Replace a character at a specific index in a string?: https://stackoverflow.com/questions/6952363/replace-a-character-at-a-specific-index-in-a-string
- Comprehensive Guide to Java String Formatting (%s replacements): https://dzone.com/articles/java-string-formatting
- Is there functionality to generate a random character in Java?: https://stackoverflow.com/questions/2626835/is-there-functionality-to-generate-a-random-character-in-java
- How do I programmatically determine operating system in Java?: https://stackoverflow.com/questions/228477/how-do-i-programmatically-determine-operating-system-in-java[675]
- File.separator vs FileSystem.getSeparator() vs System.getProperty(“file.separator”)?: https://stackoverflow.com/questions/8075373/file-separator-vs-filesystem-getseparator-vs-system-getpropertyfile-separato
- Why can't I do assignment outside a method?: https://stackoverflow.com/questions/12062481/why-cant-i-do-assignment-outside-a-method (you can but only in constructor or in static variable with code block declared static)
- String concatenation .vs. StringBuilder append .vs. good ol' "+" operator: http://www.pellegrino.link/2015/08/22/string-concatenation-with-java-8.html (HINT: append wins by speed/performance, by a wide margin)
- Difference between StringBuilder and StringBuffer: https://stackoverflow.com/questions/355089/difference-between-stringbuilder-and-stringbuffer (StringBuilder is intended as a drop in replacement for StringBuffer where synchronisation is not required)
- The Most Efficient Way to Dump a StringBuilder to File: https://www.genuitec.com/dump-a-stringbuilder-to-file/[676]
- Java can finally join strings: https://www.mscharhag.com/java/java-8-string-join
- Replace \n and \r\n with
in java: https://stackoverflow.com/questions/3056834/replace-n-and-r-n-with-br-in-java - The StringBuilder Class: https://docs.oracle.com/javase/tutorial/java/data/buffers.html
- String.Join vs. StringBuilder -- which is faster?: https://stackoverflow.com/questions/585860/string-join-vs-stringbuilder-which-is-faster#585897 (but apparently join is better for a single String into multi-String array replacement, but not for other more complex looping, in that case stick to "append"... which works out "cleaner code"-wise)
- How to capitalize the first letter of word in a string using Java?: https://stackoverflow.com/questions/5725892/how-to-capitalize-the-first-letter-of-word-in-a-string-using-java
- Java enum example: https://mkyong.com/java/java-enum-example/
- Implementing Simple State Machines with Java Enums: https://www.baeldung.com/java-enum-simple-state-machine
- Sort objects in ArrayList by date?: https://stackoverflow.com/questions/5927109/sort-objects-in-arraylist-by-date
- Iterate Through a Range of Dates in Java: https://www.baeldung.com/java-iterate-date-range
- How to iterate through range of Dates in Java?: https://stackoverflow.com/questions/4534924/how-to-iterate-through-range-of-dates-in-java
- Java - Recursion examples: http://www.toves.org/books/java/ch18-recurex/[682][683][684]
- Useful Java Code Snippets for Developers: http://viralpatel.net/blogs/2009/05/20-useful-java-code-snippets-for-java-developers.html
- Java – How to get current date time – Date() and Calendar(): http://www.mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/
- Comparing Dates in Java: http://www.roseindia.net/java/example/java/util/CompareDate.shtml
- How do I add or subtract a date?: http://www.kodejava.org/examples/24.html
- DateFormat and SimpleDateFormat Examples (date format parsing/conversion): http://javatechniques.com/blog/dateformat-and-simpledateformat-examples/
- Oracle to Java data object mappings: http://docs.oracle.com/cd/B19306_01/java.102/b14188/datamap.htm
- Oracle and Java time: http://infolab.stanford.edu/~ullman/fcdb/oracle/or-time.html
- INSERT Timestamp Oracle: http://stackoverflow.com/questions/5420833/insert-timestamp-oracle
- Java String to java.sql.Date example: http://www.java-examples.com/java-string-java.sql.date-example
- How to convert java.sql.Date to java.util.Date: http://java67.blogspot.ca/2012/12/how-to-convert-sql-date-to-util-date.html
- Construct java.sql.Timestamp from Java String: http://www.java2s.com/Code/Java/Database-SQL-JDBC/ConstructjavasqlTimestampfromstring.htm
- Create a GUID in Java: https://stackoverflow.com/questions/2982748/create-a-guid-in-java
- How to format a Java string with leading zero?: https://stackoverflow.com/questions/4051887/how-to-format-a-java-string-with-leading-zero[685][686]
- Invoking Methods through reflection: https://docs.oracle.com/javase/tutorial/reflect/member/methodInvocation.html
[688] [689] [690] [691] [692] [693]
- Generating Unique Random Numbers in Java: http://java.about.com/od/javautil/a/uniquerandomnum.htm[694][695]
- Get a Field’s Annotations Using Reflection: https://www.baeldung.com/java-get-field-annotations | SRC
- How to Use Icons: http://docs.oracle.com/javase/tutorial/uiswing/components/icon.html
- Showing an Image in a ToolTip: http://www.javareference.com/jrexamples/viewexample.jsp?id=83
- Images - ImageIcon: http://leepoint.net/notes-java/GUI-lowlevel/graphics/45imageicon.html
- Action, AbstractAction: http://leepoint.net/notes-java/GUI/events/actions.html
- Inversion of Control Containers and the Dependency Injection pattern (CDI): http://martinfowler.com/articles/injection.html
- Inject Java Properties in Java EE Using CDI: http://piotrnowicki.com/2012/06/inject-java-properties-in-java-ee-using-cdi/
- How to call EJB3 from JSP, Servlet and stand alone application: http://biese.wordpress.com/2008/02/20/how-to-call-ejb3-from-jsp-servlet-and-stand-alone-application/
- Creating an Enterprise Application with EJB 3.1: http://netbeans.org/kb/docs/javaee/javaee-entapp-ejb.html
- A Detailed Guide to Enterprise Java Beans w/Code Examples: https://stackify.com/enterprise-java-beans/?
- Java - working with URLs: http://download.oracle.com/javase/tutorial/networking/urls/
- How to extract parameters from a given URL: https://stackoverflow.com/questions/5902090/how-to-extract-parameters-from-a-given-url
- Python vs. Java - HTTP GET Request Complexity: http://coreygoldberg.blogspot.com/2008/09/python-vs-java-http-get-request.html
- How to Retry Operation n Number of Times in Java?: http://crunchify.com/how-to-retry-operation-n-number-of-times-in-java/
- How to write a Web Crawler in Java. Part-1: http://viralpatel.net/blogs/2009/04/how-to-write-a-web-crawler-in-java.html
- Converting Java Objects to Byte Array, JSON and XML: http://java.dzone.com/articles/converting-java-objects-byte
- Converting Java Maps to Lists: https://dzone.com/articles/converting-java-maps-to-lists?utm_source=Top 5&utm_medium=email&utm_campaign=Top 5 2018-05-183
- RSS Feeds with java tutorial: http://www.vogella.de/articles/RSSFeed/article.html
- How to read XML file in Java – (DOM Parser): http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/
- How to read XML file in Java – (SAX Parser): http://www.mkyong.com/java/how-to-read-xml-file-in-java-sax-parser/
- XML and Java - Parsing XML using Java Tutorial: http://www.java-samples.com/showtutorial.php?tutorialid=152
- Web Application Development with JSP and XML, Part I -- Fast Track JSP: http://java.sun.com/developer/technicalArticles/xml/WebAppDev/
- Most efficient method to iterate over all elements in a org.w3c.dom.Document in JAVA?: http://stackoverflow.com/questions/5386991/java-most-efficient-method-to-iterate-over-all-elements-in-a-org-w3c-dom-docume
- Generate an XML Document from an Object Model with JAXB 2: http://www.devx.com/Java/Article/34069
- Create File in Java: http://www.roseindia.net/java/example/java/io/CreateFile.shtml
- Java "file write" (or "file save") methods: http://www.devdaily.com/java/java-file-save-write-text-binary-data
- AJAX file upload progress for Java using commons-fileupload and prototype: http://www.ioncannon.net/programming/38/ajax-file-upload-progress-for-java-using-commons-fileupload-and-prototype/
- Create a zip archive in Java : http://devharbor.blogspot.ca/2009/01/create-zip-archive-in-java.html
- Unzip file via java.util.zip package from .NET code: http://blogs.msdn.com/sergeim/archive/2009/04/04/unzip-file-via-java-util-zip-package-from-net-code.aspx
- Unzip File Into Directory: http://www.java2s.com/Tutorial/Java/0180__File/unzipFileIntoDirectory.htm
- Decompress a zip file using ZipFile: http://www.java2s.com/Tutorial/Java/0180__File/DecompressazipfileusingZipFile.htm
- Compressing and Decompressing Data Using Java APIs: http://java.sun.com/developer/technicalArticles/Programming/compression/
- Using Apache POI to Read Excel: https://dzone.com/articles/using-apache-poi-to-read-excel
- Getting the filenames of all files in a Folder (Directory): http://stackoverflow.com/a/5694398
- Java check file exists test: https://alvinalexander.com/java/java-file-exists-directory-exists
- Java get File/Folder metadata: http://stackoverflow.com/questions/10824027/get-the-metadata-of-a-file[701]
- How to retrieve/extract metadata information from audio files using Java and Apache Tika API?: http://dzone.com/articles/how-retrieveextract-metadata
- Java Extract EXIF data from Images (JPEG/GIF/PNG, etc): http://drewnoakes.com/code/exif/
- Extract metadata from Videos in Java: http://www.javaworld.com/article/2075282/java-se/program-multimedia-with-jmf--part-2.html[702][703][704][705][706][707][708][709]
- Watching a Directory for Changes: http://docs.oracle.com/javase/tutorial/essential/io/notification.html[710][711]
- How to check if directory is empty in Java: http://www.mkyong.com/java/how-to-check-if-directory-is-empty-in-java/
- File Upload Using Java: https://web.archive.org/web/20080223083118/http://cit3.cdn.swin.edu.au/utilities/upload/File_Upload_Using_Java.html
- How to copy directory in Java: http://www.mkyong.com/java/how-to-copy-directory-in-java/
- Java ZIP file manipulation: http://www.java-examples.com/java-zip
- Reading and writing text files in Java: http://www.javapractices.com/topic/TopicAction.do?Id=42
- Converting Between a Filename Path and a URL: http://www.exampledepot.com/egs/java.io/File2Uri.html
- Java – Path vs File: https://www.baeldung.com/java-path-vs-file
- Accepting both File paths and URLs in Java: http://stackoverflow.com/questions/7866526/accepting-both-file-paths-and-url-in-java
- Taming Tiger - Concurrent Collections: http://www.devshed.com/c/a/Java/Taming-Tiger-Concurrent-Collections/
- Java SE 7 - Reviewing JVM Performance Command Line Tools: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/JavaJCMD/index.html
- Capture and record sound into WAV file with Java Sound API: https://www.codejava.net/coding/capture-and-record-sound-into-wav-file-with-java-sound-api
- Sending Emails in Java using GMail ID: http://viralpatel.net/blogs/2009/08/sending-emails-in-java-using-gmail-id.html
- Example -- Basic Authentication with JAX-WS: http://docs.sun.com/app/docs/doc/819-3669/6n5sg7cgd?a=view
- LDAP Authentication in Java: http://java.sun.com/products/jndi/tutorial/ldap/security/ldap.html
- Using the Java Persistence API in Desktop Applications: http://java.sun.com/developer/technicalArticles/J2SE/Desktop/persistenceapi/?feed=JSC
- Building a Java Desktop Database Application: http://netbeans.org/kb/docs/java/gui-db.html
- Make Your Swing App Go Native: http://today.java.net/pub/a/today/2004/01/05/swing.html
- How to load properties files into Spring and expose to the Java classes: http://codingbone.wordpress.com/2010/02/28/how-to-load-properties-files-into-spring-and-expose-to-the-java-classes/
- Understanding and using Java MIDI audio: http://www.ibm.com/developerworks/library/it/it-0801art38/
- Improve your programs with practical audio: http://www.javaworld.com/javaworld/jw-06-1998/jw-06-sound.html
- Spring + J2EE @PostConstruct and @PreDestroy example: http://www.mkyong.com/spring/spring-postconstruct-and-predestroy-example/
- Java Thread lifecycle: http://www.tutorialspoint.com/java/java_multithreading.htm
- Multi-threaded Java tutorial: http://tutorials.jenkov.com/java-concurrency/index.html
- Another Multi-threaded Java tutorial: http://www.vogella.com/tutorials/JavaConcurrency/article.html
- How CAS (Compare And Swap) in Java works for Multi-threaded coding: http://java.dzone.com/articles/how-cas-compare-and-swap-java
- Common Concurrency Pitfalls in Java: https://www.baeldung.com/java-common-concurrency-pitfalls
- Multi-Threaded programming problem - RejectedExecutionHandler: https://www.baeldung.com/java-rejectedexecutionhandler
- Error running Java class with main method -- "java.lang.NoClassDefFoundError: How to resolve – Part 1: http://javaeesupportpatterns.blogspot.ca/2012/06/javalangnoclassdeffounderror-how-to.html
- 3 ways to solve java.lang.NoClassDefFoundError in Java J2EE: http://javarevisited.blogspot.com/2011/06/noclassdeffounderror-exception-in.html
- Launch4j: http://www.informit.com/guides/content.aspx?g=java&seqNum=361
- AppStart: http://code.google.com/p/appstart/
- Convert Java to EXE: http://www.excelsior-usa.com/articles/java-to-exe.html (when to and when not to)
- EXE Launcher for Java Desktop Application: http://www.codeproject.com/Articles/115090/EXE-Launcher-for-Java-Desktop-Application
- Launching Another Application from Java: http://www.devx.com/tips/Tip/23213
- Execute an external program in Java: http://www.rgagnon.com/javadetails/java-0014.html
- Running a Java Class as a Subprocess: https://dzone.com/articles/running-a-java-class-as-a-subprocess
- How to Integrate with the Desktop Class: http://docs.oracle.com/javase/tutorial/uiswing/misc/desktop.html
- Sexy Swing App – The Unified Toolbar: http://explodingpixels.wordpress.com/2008/05/02/sexy-swing-app-the-unified-toolbar/
- How It’s Made - Youtube player in Java: http://revolucionlibrary.wordpress.com/2009/03/04/how-its-made-youtube-player-in-java/
- Interact with YouTube from Java: http://www.javalobby.org/java/forums/t103917.html
- Swing YouTube Player: https://blogs.oracle.com/geertjan/entry/swing_youtube_player
- Creating and Using Contexts and Dependency Injection (CDI) Interceptors: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/CDI_Interceptor/cdi_interceptor.html
- Split a string using String.split(): http://www.rgagnon.com/javadetails/java-0438.html[716][717]
- Create Java project with Maven Example: http://examples.javacodegeeks.com/enterprise-java/maven/create-java-project-with-maven-example/
- Watch out for these 10 common pitfalls of experienced Java developers & architects: http://zeroturnaround.com/rebellabs/watch-out-for-these-10-common-pitfalls-of-experienced-java-developers-architects/
- Open or Close a CD/DVD drive in Windows with Java & VBS: http://www.rgagnon.com/javadetails/java-0574.html
- How to Use Timer in Java: http://www.javaprogrammingforums.com/java-se-api-tutorials/883-how-use-timer-java.html
- Yet Another Java Service Wrapper (YAJSW): http://yajsw.sourceforge.net/ (includes chart that compares various Service Wrappers)
- What is Timer and TimerTask in Java – Tutorial Example: http://javarevisited.blogspot.com/2013/02/what-is-timer-and-timertask-in-java-example-tutorial.html
- Java Timer and TimerTask Example Tutorial: http://www.journaldev.com/1050/java-timer-and-timertask-example-tutorial
- What is Daemon thread in Java and Difference to Non daemon thread - Tutorial Example: http://javarevisited.blogspot.ca/2012/03/what-is-daemon-thread-in-java-and.html
- Silent mode execution for Java programs: http://stackoverflow.com/questions/2902656/silent-mode-execution-with-java-exe
- Running a Java Application as a Windows Service – Part 1: http://benjsicam.me/blog/running-a-java-application-as-a-windows-service-part-1-tutorial/
- Running a Java Application as a Windows Service – Part 2: http://benjsicam.me/blog/running-a-java-application-as-a-windows-service-part-2-tutorial/
- Running a Java Application as a Windows Service – Part 3: http://benjsicam.me/blog/running-a-java-application-as-a-windows-service-part-3-tutorial/
- Java8 - The missing tutorial: https://github.com/shekhargulati/java8-the-missing-tutorial
- How to Migrate to JDK8: http://www.youtube.com/watch?v=s6yfZ-efnRA
- Easy Tricks for JPA, Spring and Hibernate: http://java.dzone.com/articles/easy-tricks-jpa-spring-and
- An Opinionated Guide to Modern Java - Web Development: http://www.voxxed.com/blog/2015/02/an-opinionated-guide-to-modern-java-part-3-web-development/
- Reading/Writing Compressed and (regular) Not Compressed Files in Java: http://java.dzone.com/articles/readingwriting-compressed-and
- 13 Decks Java Developers Must See to Stay Updated: http://dzone.com/articles/13-decks-java-developers-must-see-to-stay-updated
- Calling Stored Procedures from Spring Data JPA: http://dzone.com/articles/calling-stored-procedures-from-spring-data-jpa
External Links
- wikipedia: Java (programming language)
- wikipedia: Write once, run anywhere
- wikipedia: James Gosling
- wikipedia: Criticism of Java
- wikipedia: List of installation software
- Java Specification Participation Agreement: http://jcp.org/aboutJava/communityprocess/JSPA2.pdf
- Runescape, the most famous Java game: https://www.reddit.com/r/java/comments/2x3lxh/runescape_the_most_famous_java_game/
- Java runs remote-controlled Mars rover: https://www.cnet.com/news/java-runs-remote-controlled-mars-rover/ (NASA uses the Sun Microsystems software to operate a robot in search of signs of water and life--and a virtual version that people can toy with online)
- Red Hat to maintain OpenJDK 8 and OpenJDK 11: https://www.infoworld.com/article/3389878/red-hat-to-maintain-openjdk-8-and-openjdk-11.html[719]
- Real differences between “java -server” and “java -client”?: https://stackoverflow.com/questions/198577/real-differences-between-java-server-and-java-client
- What is the difference between JRE,JVM and JDK?: http://www.javabeat.net/2013/02/what-is-the-difference-between-jrejvm-and-jdk/
- JDK/JRE/JVM/Java SDK | What do they all mean?: http://stackoverflow.com/questions/2277275/jdk-jre-jvm-java-sdk-what-do-they-all-mean-sometimes-you-can-develop-with-jre
- Application Development - The Life and Times of Java and James Gosling: http://www.eweek.com/c/a/Application-Development/The-Life-and-Times-of-Java-and-James-Gosling-746438/
- The Java History Timeline: http://www.oracle.com/technetwork/java/javase/overview/javahistory-timeline-198369.html
- How The JVM Spec Came To Be: http://www.infoq.com/presentations/gosling-jvm-lang-summit-keynote
- Java Naming Conventions: http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html
- Common Java job interview questions: http://groups.google.com/group/openid4java/browse_thread/thread/f7cca2c2dacc74c4#
- Java Interview Questions for 2 to 3 years experience - Answered: http://java67.blogspot.sg/2012/10/java-interview-questions-for-2-to-3-4-years-experienced.html
- Sun/Oracle guide to Naming a Package: https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html
- My legal domain name is not a legal Java package name: https://stackoverflow.com/questions/12945365/my-legal-domain-name-is-not-a-legal-java-package-name
- A short summary of Java coding best practices: https://medium.com/@rhamedy/a-short-summary-of-java-coding-best-practices-31283d0167d3
- Launching Java Applications Programmatically: http://www.eclipse.org/articles/Article-Java-launch/launching-java.html
- Browsing URLs and opening files: http://www.davidc.net/programming/java/browsing-urls-and-opening-files
- Launch a java program as a Windows EXE file: http://www.rgagnon.com/javadetails/java-0588.html
- Getting the Current Working Directory in Java: https://stackoverflow.com/questions/4871051/getting-the-current-working-directory-in-java#7603444
- From Runtime.exec() to ProcessBuilder: http://www.java-tips.org/java-se-tips/java.util/from-runtime.exec-to-processbuilder-3.html
- When Runtime.exec() won't: http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html
- What is “String args[]”? parameter in main method Java: https://stackoverflow.com/questions/890966/what-is-string-args-parameter-in-main-method-java#890980
- Java -- Check if command line arguments are null: https://stackoverflow.com/questions/3868878/java-check-if-command-line-arguments-are-null
- How to set or change the default Java (JDK) version on Mac OS X?: https://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x/44169445#44169445[725][726]
- Multiple Java versions on OS X, and their paths: http://dowhatimean.net/2009/08/multiple-java-versions-on-os-x
- How to manage multiple Java versions in MacOS - completely using Homebrew & jenv (Updated 2021 + macOS Big Sur): https://chamikakasun.medium.com/how-to-manage-multiple-java-version-in-macos-e5421345f6d0
- Make Old Java Applications Fully Snow Leopard Compatible: http://neosmart.net/blog/2009/make-old-java-applications-fully-snow-leopard-compatible/
- javac - Java programming language compiler: http://download-llnw.oracle.com/javase/1.4.2/docs/tooldocs/windows/javac.html[727]
- JAVA "Hello World!" for Microsoft Windows: http://download.oracle.com/javase/tutorial/getStarted/cupojava/win32.html
- Essentials, Part 1, Lesson 1 -- Compiling & Running a Simple Program: http://www.oracle.com/technetwork/java/compile-136656.html
- Running a Java Program from Command Prompt: http://www.skylit.com/javamethods/faqs/javaindos.html
- Compiling and Running a Java Program Using the Command Line: http://www.mtholyoke.edu/courses/srollins/cs325-f03/web/command.html
- Compiling, Running and Debugging Java Programs: http://www.cs.swarthmore.edu/~newhall/unixhelp/debuggingtips_Java.html
- Top 10 Java Debugging Tips: https://stackify.com/java-debugging-tips/
- Debugging Java GUI Apps: http://er4z0r.blogspot.com/2008/06/debugging-java-gui-apps.html
- A Java Scanner class example: http://alvinalexander.com/java/edu/pj/pj010005 (read input from users via interactive command-line)
- Java Command-Line Interfaces (Part 1) -- Apache Commons CLI: https://dzone.com/articles/java-command-line-interfaces-part-1-apache-commons
- "javac" Option '-d' - Specifying Output Directory: http://www.herongyang.com/Java-Tools/javac-Option-d-Specifying-Output-Directory.html
- How to run command-line or execute external application from Java: http://www.linglom.com/2007/06/06/how-to-run-command-line-or-execute-external-application-from-java/
- How to execute jar file with a external dependency using command line on Windows?: http://stackoverflow.com/questions/26551718/how-to-execute-jar-file-with-a-external-dependency-using-command-line-on-windows#26552470
- Understanding Class Members: https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
- Java static keyword: https://www.javatpoint.com/static-keyword-in-java
- Java for Beginners -- Static Variables - What Are They?: https://www.caveofprogramming.com/java/java-for-beginners-static-variables-what-are-they.html
- What does the 'static' keyword do in a class?: https://stackoverflow.com/questions/413898/what-does-the-static-keyword-do-in-a-class
- Java -- when to use static methods: https://stackoverflow.com/questions/2671496/java-when-to-use-static-methods
- Java Singletons Using Enum: http://dzone.com/articles/java-singletons-using-enum
- Don’t Extract Everything Into a Method: http://dzone.com/articles/dont-extract-everything-into-a-method
- Java's use of the Single Responsibility Principle Explained: http://tidyjava.com/single-responsibility-principle-explained/
- Java Excel API Tutorial: http://www.andykhan.com/jexcelapi/tutorial.html
- Calling REST Web Services from Java: http://www.dr-chuck.com/csev-blog/000364.html
- How to access REST services? (in JAVA): http://xml.nig.ac.jp/tutorial/rest/index.html#l2.2
- Java and XML Web Services -- SOAP: http://onjava.com/pub/a/onjava/excerpt/java_xml_2_ch2/index.html
- The Easiest Java XML Binding: http://www.oksima.biz/index.php/articles/52-flex/187-the-easiest-java-xml-binding
- Processing XML with Java: A Guide to SAX, DOM, JDOM, JAXP, and TrAX: http://www.exforsys.com/tech-articles/xml-tools/processing-xml-with-java-a-guide-to-sax-dom-jdom-jaxp-and-trax.html
- Simple Java DOM XML Example: http://www.genedavis.com/library/xml/java_dom_xml_creation.jsp
- Introduction to XML and XML With Java: http://www.totheriver.com/learn/xml/xmltutorial.html
- Prefer System.lineSeparator() to System.getProperty("line.separator") or "\r\n" variants, for Writing System-Dependent Line Separator Strings in Java: https://dzone.com/articles/prefer-systemlineseparator-for-writing-system-depe
- Java Hashmap: http://www.javadeveloper.co.in/java/java-hashmap.html
- How to use of HashMap (access key/value pairs): http://www.java-tips.org/java-se-tips/java.util/how-to-use-of-hashmap.html
- ArrayList - Getting an Element: http://www.java2s.com/Tutorial/Java/0140__Collections/GettinganElement.htm
- How to sort ArrayList in descending order in Java: https://beginnersbook.com/2013/12/sort-arraylist-in-descending-order-in-java/[736]
- How to use Collections.sort() in Java ? (Specific situation): https://stackoverflow.com/questions/16425127/how-to-use-collections-sort-in-java-specific-situation
- Comparator Interface in Java with Examples: https://www.geeksforgeeks.org/comparator-interface-java/
- Creating instance list of different objects: https://stackoverflow.com/questions/11073539/creating-instance-list-of-different-objects
- Oracle Reveals Plans for NetBeans, Glassfish, and VirtualBox: http://java.dzone.com/news/oracle-reveals-plans-netbeans
- Java is Pass-by-Value, Dammit!: http://www.javadude.com/articles/passbyvalue.htm
- PHP on Java -- Best of Both Worlds?: http://www.infoq.com/news/2007/10/php-java-stack
- Searching for a better indexOf: http://pzemtsov.github.io/2019/04/13/searching-for-better-indexof.html
- String.replaceAll() caveat: http://www.danielschneller.com/2008/02/stringreplaceall-caveat.html
- Java - Regular Expressions: http://www.tutorialspoint.com/java/java_regular_expressions.htm
- JAVA -- Application Deployment: http://www.technicalfacilitation.com/get.php?link=deployment
- How to detect OS in Java – System.getProperty(”os.name”) : http://www.mkyong.com/java/how-to-detect-os-in-java-systemgetpropertyosname/
- The Essentials of Filters: http://java.sun.com/products/servlet/Filters.html
- 10 Reasons We Need Java 3.0: http://onjava.com/pub/a/onjava/2002/07/31/java3.html
- Use NetBeans IDE 6.7 to Combine JAR Files Into a Single JAR File: http://java.sun.com/developer/technicalArticles/java_warehouse/single_jar/
- Asynchronous HTTP and Comet architectures: http://www.javaworld.com/javaworld/jw-03-2008/jw-03-asynchhttp.html?page=1
- Servlet -- Session bind listener: http://www.java2s.com/Code/Java/Servlets/ServletSessionbindlistener.htm
- JAVA Lesson -- All About Sockets: http://java.sun.com/docs/books/tutorial/networking/sockets/index.html
- Example -- An HTTP Server (single-file, self-contained): http://dev.fyicenter.com/Interview-Questions/Socket-6/Example_An_HTTP_Server.html
- Java Get System, User and all types of valuable info -- Examples: http://www.roseindia.net/java/java-get-example/index.shtml
- Uploading Image File Through JSP Code To Server: http://www.astahost.com/info.php/Uploading-Image-File-Jsp-Code-Server_t9883.html
- Why Java and .NET will continue to compete: http://blogs.techrepublic.com.com/programming-and-development/?p=2088&tag=nl.e055
- Java Technologies for Web Applications: http://java.sun.com/developer/technicalArticles/tools/webapps_1/
- Java Enumeration and Iterators: http://www.tech-recipes.com/rx/1181/java-enumeration-and-iterators/
- How do I convert string into InputStream?: http://www.kodejava.org/examples/265.html
- How do I convert from int to Long in Java?: https://stackoverflow.com/questions/1302605/how-do-i-convert-from-int-to-long-in-java
- Convert Character into a String: http://www.roseindia.net/java/java-conversion/CharToString.shtml
- How to Type cast convert double to integer: http://www.javaprogrammingforums.com/java-code-snippets-tutorials/314-how-type-cast-convert-double-integer.html
- How to convert String object to Boolean Object?: https://stackoverflow.com/questions/1538755/how-to-convert-string-object-to-boolean-object
- Parsing and Formatting Dates in Java: http://tutorials.jenkov.com/java-date-time/parsing-formatting-dates.html
- Why extends is evil: http://www.javaworld.com/javaworld/jw-08-2003/jw-0801-toolbox.html
- Java Exception Handling examples in OSS projects: https://www.programcreek.com/2020/10/java-exception-handling-in-open-source-projects/
[738] [739] [740] [741] [742] [743]
- How to avoid NullPointer Exceptions in JAVA: http://isagoksu.com/2009/development/java/how-to-avoid-nullpointerexceptions-npe/
[744] [745][746] [747] [748] [749] [750]
- When clean code intended to help security can do the opposite: https://community.microfocus.com/t5/Security-Research-Blog/When-clean-code-intended-to-help-security-can-do-the-opposite/ba-p/2742847?utm_campaign=00164296 (don't use "try-with-resources" on methods that "throw" exceptions)
- How to set null value in Java JDBC PreparedStatement: http://www.blog.openshell.in/2012/03/java-essential-tips-how-to-set-null-value-in-java-jdbc-preparedstatement/
- Top 5 Most Important Features in JavaFX 1.2: http://blogs.sun.com/javafx/entry/top_5_most_important_features
- The basics of Java class loaders: http://www.javaworld.com/javaworld/jw-10-1996/jw-10-indepth.html
- Java Cryptography Extension (JCE) - Reference Guide: http://java.sun.com/j2se/1.4.2/docs/guide/security/jce/JCERefGuide.html
- Convert String to Boolean: http://www.javadb.com/convert-string-to-boolean
- Convert Boolean to String: http://www.javadb.com/convert-boolean-to-string
- Apache HTTPClient -- Retrieving Content with a Conditional GET: http://www.discursive.com/books/cjcook/reference/http-webdav-sect-cond-get.html
- Read a file into a string: http://snippets.dzone.com/posts/show/1335
- A Simple Way to Read an XML File in Java: http://www.developertutorials.com/tutorials/java/read-xml-file-in-java-050611/page1.html
- How to read XML file in Java: http://www.java-tips.org/java-se-tips/javax.xml.parsers/how-to-read-xml-file-in-java.html
- How to Read File in One Line in JDK 7 or Java 8: http://javarevisited.blogspot.com/2015/02/how-to-read-file-in-one-line-java-8.html#ixzz3TW35ovOu: http://javarevisited.blogspot.ca/2015/02/how-to-read-file-in-one-line-java-8.html
- Top 5 Java Performance Metrics to Capture in Enterprise Applications: http://java.dzone.com/articles/top-5-java-performance-metrics
- javac - Java programming language compiler: http://java.sun.com/javase/6/docs/technotes/tools/windows/javac.html
- Java JNI Tutorial - getting the pid of the current running java process: http://www.hex.ro/wb/pages/projects/java-jni-tutorial.php
- What are native methods in Java and where should they be used?: https://stackoverflow.com/questions/18900736/what-are-native-methods-in-java-and-where-should-they-be-used (run "C program" from within Java)
- New System Tray Functionality in Java SE 6: http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/systemtray/
- JOptionPane: http://java.sun.com/javase/6/docs/api/javax/swing/JOptionPane.html
- JList: http://www.java2s.com/Tutorial/Java/0240__Swing/UsingJList.htm
- Swing's Threading Policy: http://java.sun.com/javase/6/docs/api/javax/swing/package-summary.html#threading
- How to Make Dialogs: http://java.sun.com/docs/books/tutorial/uiswing/components/dialog.html
- List Dialog: http://java.sun.com/docs/books/tutorial/uiswing/examples/components/index.html#ListDialog
- Using Top-Level Containers: http://java.sun.com/docs/books/tutorial/uiswing/components/toplevel.html
- How to Use File Choosers: http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html
- J2EE Swing - File Chooser (also see many related examples below): http://www.java2s.com/Code/Java/Swing-JFC/FileChooserDemo4.htm
- J2EE Swing - File Tree (also see many related examples below): http://www.java2s.com/Code/Java/Swing-JFC/FileTree.htm
- How to create executable jar file with NetBeans IDE: http://www.micheledallatorre.it/blog/2008/10/26/how-to-create-executable-jar-file-with-netbeans-ide/
- Using an Uneditable Combo Box: http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html#uneditable
- How to Use SpringLayout: http://java.sun.com/docs/books/tutorial/uiswing/layout/spring.html
- How to Write a Focus Listener: http://java.sun.com/docs/books/tutorial/uiswing/events/focuslistener.html
- Combo Box operation in Java Swing: http://www.roseindia.net/java/example/java/swing/AddRemoveItemFromCombo.shtml
- Validation with Java and XML Schema, Part 1: http://www.javaworld.com/javaworld/jw-09-2000/jw-0908-validation.html?page=1
- Swing - How to add a Listener to the JLabel: http://forums.sun.com/thread.jspa?threadID=663735&messageID=3888711
- How to Use Combo Boxes: http://life.csu.edu.au/java-tut/uiswing/components/combobox.html
- Open and Save Dialogs in Swing: http://javaboutique.internet.com/tutorials/thinlettwo/index-3.html
- Saving Text from an Editor Pane: http://www.herongyang.com/Swing/JEditorPane-Save-Text-from-Editor-Pane.html
- Using the J2EE Connector Architecture and SOAP to Build Web-Service-Ready Enterprise Applications, Part 2: http://developers.sun.com/appserver/reference/techart/j2ee_soap_part2.html
- Echoing an XML File with the SAX Parser: http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPSAX3.html
- The Java XML Validation API: http://www.ibm.com/developerworks/java/library/x-javaxmlvalidapi.html?ca=drs
- Large number of XML examples: http://www.java2s.com/Code/Java/XML/CatalogXML.htm
- A Simple Way To Read An XML File In Java: http://www.developertutorials.com/tutorials/java/read-xml-file-in-java-050611/page1.html
- Replace a line or word in a file: http://www.java.happycodings.com/Core_Java/code69.html
- How do I convert a String to a long with Java?: http://www.devdaily.com/java/edu/qanda/pjqa00011.shtml
- Conversion from long to String: http://www.java-tips.org/java-se-tips/java.lang/conversion-from-long-to-string.html
- HashMap in Java: http://www.dzone.com/links/r/hashmap_in_java.html
- Simplest possible Java HashMap Example: http://www.java-examples.com/?q=simple-java-hashmap-example
- Java HashMap tutorials: http://www.developerzone.biz/index.php?option=com_content&task=view&id=90&Itemid=36
- HashMap example in Java: http://www.java-samples.com/showtutorial.php?tutorialid=369
- Convert XML file to XML String in java: http://sacrosanctblood.blogspot.com/2008/07/convert-xml-file-to-xml-string-in-java.html
- Writing a DOM Document to an XML File: http://www.exampledepot.com/egs/javax.xml.transform/WriteDom.html
- Java For-each Loop (before and after): http://leepoint.net/notes-java/flow/loops/foreach.html
- How does the Java 'for each' loop work?: https://stackoverflow.com/questions/85190/how-does-the-java-for-each-loop-work
- Smartly load your properties: http://www.javaworld.com/javaworld/javaqa/2003-08/01-qa-0808-property.html
- Java Technology and XML-Part 3 -- Performance Improvement Tips: http://java.sun.com/developer/technicalArticles/xml/JavaTechandXML_part3/
- Java and XML Basics, Part 3 : http://www.devarticles.com/c/a/XML/Java-and-XML-Basics-3/
- How to Use Hibernate in a NetBeans Platform Application: http://netbeans.dzone.com/how-to-nb-hibernate
- The Lifecycles of Enterprise Beans: https://docs.oracle.com/javaee/6/tutorial/doc/giplj.html
- What is Java Generic Bounded Types and how to use Generic Bounded Types: http://www.java2s.com/Tutorials/Java/Java_Language/8040__Java_Generic_Constraints.htm
- How to override equals method in Java: https://stackoverflow.com/questions/8180430/how-to-override-equals-method-in-java#8180925
- How Java 10 changes the way we use Anonymous Inner Classes: https://medium.com/the-java-report/how-java-10-changes-the-way-we-use-anonymous-inner-classes-b3735cf45593
- A First Look at Java 11 "inline classes": https://www.infoq.com/articles/inline-classes-java/
- Loading properties file from java package: http://stackoverflow.com/questions/333363/loading-properties-file-from-java-package
- JDK9 -- Execute Java Code Like Unix Shell Script: http://dzone.com/articles/jdk9-execute-java-code-like-unix-shell-script
- How to REST?! - Example: Authentication Service: http://javadevs.blogspot.com/2007/07/how-to-rest-example-authentication.html
- Programming Networked Applications: http://www.javacoffeebreak.com/books/extracts/javanotesv3/c10/s5.html
- Protocol Design - TCP and command-line: http://jan.newmarch.name/distjava/protocol/lecture.html
- As Oracle Sues Google Over Java, Developers Move to Other Languages: http://www.devx.com/Java/Article/45527?comment=42069-0#comment42069-0
- Ten Amazing Java Applications: http://java.dzone.com/tips/ten-amazing-java-applications
- Deploying Swing Applications on the Desktop: http://taubler.com/articles/article_Deploying_Swing_Applications_on_the_Desktop?id=1
- Take Charge of Desktop Integration with Java SE 6: http://www.devx.com/Java/Article/30861/1954?pf=true
- Java Swings Well with Hybrid Web/Desktop Applications: http://taubler.com/articles/article_Java_Swings_Well_with_Hybrid_Web_Desktop_Applications?id=4
- How to make a desktop application in Java that doesn't suck: http://blogs.oreilly.com/digitalmedia/2005/02/how-to-make-a-desktop-applicat.html
- Building a Java Desktop Database Application: http://netbeans.org/kb/docs/java/gui-db.html
- Reading in a *.csv file and loading the data into an Array: http://www.daniweb.com/forums/thread17262.html
- Splash Screen Beginner Tutorial: http://wiki.netbeans.org/Splash_Screen_Beginner_Tutorial?intcmp=925655
- Jakarta Commons HttpClient: http://www.informit.com/guides/content.aspx?g=java&seqNum=43
- Center a Dialog Box, Frame or Window in Java: http://blog.codebeach.com/2008/02/center-dialog-box-frame-or-window-in.html
- Oracle Outlines Plans for Java Platform : http://www.oracle.com/us/corporate/press/173712?msgid=3-2517886426
- XML Configuration for Java Program: http://twit88.com/blog/2007/09/18/xml-configuration-for-java-program/
- Do a graceful shutdown of your Java Application when Ctr-C, Kill…: http://twit88.com/blog/2007/09/27/do-a-graceful-shutdown-of-your-java-application-when-ctr-c-kill/
- Understanding System.exit: http://twit88.com/blog/2008/08/20/java-understanding-systemexit/
- Shutdown Hook in Tomcat using ServletContextListener: http://twit88.com/blog/2008/07/29/shutdown-hook-in-tomcat-using-servletcontextlistener/
- Serialize Java Object to JSON String: http://twit88.com/blog/2007/11/20/serialize-java-object-to-json-string/
- Java – Use JSON for Data Transfer: http://twit88.com/blog/2007/10/22/java-use-json-for-data-transfer/
- Sending a POST Request Using a URL: http://www.exampledepot.com/egs/java.net/Post.html
- Make HTTP POST Or GET Request From Java: http://www.aviransplace.com/2008/01/08/make-http-post-or-get-request-from-java/
- Java Cookie Support: http://download.oracle.com/javase/1.5.0/docs/guide/deployment/deployment-guide/cookie_support.html
- HttpClient and FileUpload: http://www.theserverside.com/news/1365153/HttpClient-and-FileUpload
- How do I do a date add or substract?: http://www.kodejava.org/examples/24.html
- Get Cookie value and set cookie value: http://www.java2s.com/Code/Java/Apache-Common/GetCookievalueandsetcookievalue.htm
- Using a Swing Worker Thread: http://java.sun.com/products/jfc/tsc/articles/threads/threads2.html
- Schedule task periodically: http://www.java-tips.org/java-se-tips/java.lang/schedule-task-periodically.html
- Play with Flickr API in Java !: http://java4ever.blogspot.com/2008/08/play-with-flickr-api-in-java.html
- Java full screen image viewer: http://www.anyexample.com/programming/java/java_full_screen_image_viewer.xml
- Simple JAVA Database GUI in Netbeans: http://netbeans.org/kb/docs/java/gui-db.html
- JAVA Persistence API Desktop app: http://java.sun.com/developer/technicalArticles/J2SE/Desktop/persistenceapi/
- Real-Time Charts on the Java Desktop: http://netbeans.dzone.com/news/real-time-charts-java-desktop
- Apache is being forced into a Java Fork: http://www.zdnet.com/blog/open-source/apache-is-being-forced-into-a-java-fork/7945?tag=nl.e539
- Gosling, Java's creator, joins Google: http://www.zdnet.com/blog/open-source/gosling-javas-creator-joins-google/8578?tag=nl.e539
- Play Audio File using Java: http://codeglobe.blogspot.com/2009/04/play-audio-file-using-java.html
- Moving to App Engine 1.4.0 for Java webapps: http://www.dev-articles.com/article/Moving+to+App+Engine+1.4.-251002
- Yahoo! Astrology API (Java integration): http://codeglobe.blogspot.com/2009/07/yahoo-astrology-api-java.html
- Twitter Search is Now 3x Faster: http://engineering.twitter.com/2011/04/twitter-search-is-now-3x-faster_1656.html
- Building Java Web services with NetBeans 7: http://www.theserverside.com/tip/Building-Java-Web-services-with-NetBeans-7
- A Simple Multithreaded Web Server - Java simple HTTP server: http://java-servlet-jsp-web.blogspot.com/2009/06/simple-multithreaded-web-server-java.html
- Quick Mail using Java Mail API: http://www.codeproject.com/KB/java/Java_Mail.aspx?msg=1520181
- The char data type in Java: http://www.cafeaulait.org/course/week2/24.html
- How to send PUT, DELETE HTTP request in HttpURLConnection? Looks like not working: http://stackoverflow.com/questions/1051004/how-to-send-put-delete-http-request-in-httpurlconnection-looks-like-not-working
- Create your own JAVA Web Search application: http://www.codexperiments.com/java/2011/01/create-your-own-web-search-application/
- Connection Pooling in a Java Web Application with Glassfish and NetBeans IDE: http://netbeans.dzone.com/connection-pooling-glassfish-nb
- Using Swings Timer to replace ImageIcons: http://www.javareference.com/jrexamples/viewexample.jsp?id=71
- Image Buffering: http://www.java2s.com/Code/Java/2D-Graphics-GUI/ImageBuffering.htm
- Replacing a ImageIcon: http://stackoverflow.com/questions/4295971/replacing-a-imageicon
- Validate a URL in Java: http://obscuredclarity.blogspot.com/2011/10/validate-url-in-java.html
- Java isEmail: http://tech.chitgoks.com/2008/05/22/java-isemail/
- Java Image Manipulation – Part 1: http://www.dreamincode.net/forums/topic/162748-java-image-manipulation-part-1-loading/
- Application Development - Java Death Debunked - 10 Reasons It's Still Hot: http://www.eweek.com/c/a/Application-Development/Java-Death-Debunked-10-Reasons-Its-Still-Hot-629361/
- Article Series - Migrating Spring Applications to Java EE 6 (Part 1 of 4): http://howtojboss.com/2012/04/17/article-series-migrating-spring-applications-to-java-ee-6-part-1/
- ECLIPSE defect - JDK7 Permission Denied with Sockets when using VPN: http://www.java.net/node/703177
- NETBEANS bug - Newly installed NetBeans won't connect to network: http://netbeans.org/bugzilla/show_bug.cgi?id=200826
- Top 10 Java Stories of 2012: https://blogs.oracle.com/java/entry/top_java_stories_of_2012
- Homeland Security Says Kill Your Java Now! (overreaction?): http://www.schrockinnovations.com/homeland-security-says-kill-your-java-now-overreaction/
- Homeland Security still advises disabling Java, even after update: http://news.cnet.com/8301-1009_3-57563951-83/homeland-security-still-advises-disabling-java-even-after-update/
- Set Chrome to Run Flash, Java and Other Plug-Ins On-Demand Only: http://lifehacker.com/5685352/set-chrome-to-run-flash-and-other-plug+ins-on+demand-only
- Flash and Java to be click-to-play in future Firefox: http://www.extremetech.com/computing/126083-flash-and-java-to-be-click-to-play-in-future-firefox
- Confirmed -- Java only fixed one of the two bugs: http://immunityproducts.blogspot.ca/2013/01/confirmed-java-only-fixed-one-of-two.html
- Java update 'doesn't prevent silent exploits at all': http://www.zdnet.com/java-update-doesnt-prevent-silent-exploits-at-all-7000010422/
- STUDY - Java open-source frameworks are a business risk: http://www.zdnet.com/java-open-source-frameworks-are-a-business-risk-study-7000010617/
- Java Errors: "UnsupportedClassVersionError... bad major version at offset=x": http://stevehealy.org/techblog/?p=48
- Check If a String Is Numeric in Java: https://www.baeldung.com/java-check-string-number
- java.math.BigInteger: http://www.leepoint.net/notes-java/data/numbers/10biginteger.html[753][754]
- Choosing data type for monetary Calculation (In Java)— Float ? Double ? Or Bigdecimal: https://medium.com/@vaibhav0109/choosing-data-type-for-monetary-calculation-in-java-float-double-or-bigdecimal-ac6f52e57740
- Java EE 8 Wishlist: http://java.dzone.com/articles/my-java-ee-8-wishlist
- 10 Most Useful Java Best Practice Quotes for Java Developers: http://viralpatel.net/blogs/most-useful-java-best-practice-quotes-java-developers/
- 10 things you're doing wrong in Java: https://towardsdatascience.com/10-things-youre-doing-wrong-in-java-7608e2f050c7
- Top 10 most common Java performance problems: http://info.appdynamics.com/rs/appdynamics/images/Top-10-Java-Performance-Problems.pdf
- Oracle hasn't killed Java -- but there's still time: http://www.infoworld.com/d/application-development/oracle-hasnt-killed-java-theres-still-time-247823
- Get real - Oracle is strengthening -- not killing -- Java: http://www.infoworld.com/t/java-programming/get-real-oracle-strengthening-not-killing-java-248109
- Java -- Rumours of my demise are greatly exaggerated: https://www.youtube.com/watch?v=fmM-L9hWmRI | SLIDES
- Ten subtle best practices when coding Java: http://jaxenter.com/ten-subtle-best-practices-when-coding-java-108043.html
- Java .vs. JavaScript differences in Comic form: http://leftoversalad.tumblr.com/post/103503118002
- Java Doesn’t Suck – You’re Just Using it Wrong: http://www.jamesward.com/2014/12/03/java-doesnt-suck-youre-just-using-it-wrong
- 11 Mistakes that Come Back to Bite (even) Experienced Java Developers: http://java.dzone.com/articles/11-mistakes-come-back-bite
- Why do many software engineers not like Java?: http://www.quora.com/Why-do-many-software-engineers-not-like-Java
- Dysfunctional programming in Java 4 - No nulls allowed from dysfunctional to functional: https://blog.usejournal.com/dysfunctional-programming-in-java-4-no-nulls-allowed-88e8735475a
- Java's 20 Years Of Innovation: http://www.forbes.com/sites/oracle/2015/05/20/javas-20-years-of-innovation/
- Having Fun with Java's Null: http://mufid.github.io/blog/2015/null/
- How do we write a Java program which says, "sorry" in an infinite loop?: http://www.quora.com/How-do-we-write-a-Java-program-which-says-sorry-in-an-infinite-loop
- Top 10 Useful, Yet Paranoid, Java Programmer Techniques: https://dzone.com/articles/top-10-useful-yet-paranoid-java-programmer-techniq
- Top 10 Causes of Java EE Enterprise Performance Problems: http://java.dzone.com/articles/top-10-causes-java-ee
- Jersey File Upload Example: http://www.dzone.com/links/r/jersey_file_upload_example.html
- Real-world JAVA interview questions you should be able to answer as a Java Dev: http://java.dzone.com/articles/real-world-java-interview
- Java Byte Code Engineering: http://dzone.com/articles/byte-code-engineering-1
- 13 Decks Java Developers Must See to Stay Updated: http://dzone.com/articles/13-decks-java-developers-must-see-to-stay-updated
- 7 Habits of Super Productive Java Developers: http://dzone.com/articles/7-habits-of-super-productive-java-developers (#1-Tools, #2-TDD, #3-CI/CD/Dependency Management, #4-Productivity, #5-Automation, #6-Pair-Programming/PD, #7-OSS)
- Java Legacy Hairball - Refactoring Case Study: http://dzone.com/articles/java-legacy-hairball-refactoring-case-study
- Proposal for "Java Policy Files" Crafting Process: http://dzone.com/articles/proposal-for-a-java-policy-files-crafting-process (securing Java APIs, System, Environment & Logs)
- Java Developer resource guide: https://cdn2.hubspot.net/hubfs/207384/BuildBetter Assets/BuildBetter 2.2.pdf
- Java Magazine - Mar/Apr 2017: http://www.javamagazine.mozaicreader.com/MarApr2017/ (coverage of JavaFX GUIs, Oracle JET, MQTT, Java certification quiz, etc)
- Five (tongue-in-cheek) Feature Suggestions to Make Java Great Again: https://dzone.com/articles/five-features-to-make-java-even-better
- 11 Simple Java Performance Tuning Tips: https://dzone.com/articles/11-simple-java-performance-tuning-tips
- How Memory Leaks Happen in Java Apps: https://dzone.com/articles/how-memory-leaks-happen-in-java-apps
- Java Memory Leaks - Tools, Fixes, and More: https://dzone.com/articles/what-to-do-about-java-memory-leaks-tools-fixes-and
- Memory Leaks in Java -- A Cautionary Tale and Gentle Introduction to Preventing Memory Errors: https://blog.soshace.com/memory-leaks-in-java-a-cautionary-tale-and-gentle-introduction-to-preventing-memory-errors/
- What's the difference between SoftReference and WeakReference in Java?: https://stackoverflow.com/questions/299659/whats-the-difference-between-softreference-and-weakreference-in-java
- Weak, Soft, and Phantom References in Java (and Why They Matter): https://dzone.com/articles/weak-soft-and-phantom-references-in-java-and-why-they-matter
- Java Scale-First ExecutorService -- Myth or Reality?: https://dzone.com/articles/java-scale-first-executorservice-myth-or-reality
- Java -- The Strategy Pattern: https://dzone.com/articles/java-the-strategy-pattern
- 3 Things Every Java Developer Should Stop Doing: https://dzone.com/articles/3-things-every-java-developer-should-stop-doing
- Yet 4 More Techniques for Writing Better Java: https://dzone.com/articles/yet-4-more-techniques-for-writing-better-java
- How to Create an Immutable Class in Java: https://dzone.com/articles/how-to-create-an-immutable-class-in-java
- The Developer's Guide to Collections: https://dzone.com/articles/a-deep-dive-into-collections
- 5 Annotations Every Java Developer Should Know : https://dzone.com/articles/5-annotations-every-java-developer-should-know
- 5 More Hidden Secrets in Java: https://dzone.com/articles/5-more-hidden-secrets-in-java
- Correct use of static imports in Java: https://stackoverflow.com/questions/6864834/correct-use-of-static-imports-in-java
- Java Recognized as the DZone community's favorite Programming Language of 2020: https://blogs.oracle.com/java/java-recognized-as-the-favorite-programming-language (in the year of its 25th anniversary, Java showing no signs of slowing down)
- Why Java Is so Young After 25 Years - An Architect’s Point of View: https://dzone.com/articles/why-java-is-so-young-after-25-years-an-architects
- Supreme Court Rules Google's Use of Java API Was Fair Use: https://www.infoq.com/news/2021/04/java-api-fair-use/
- Java is criminally underhyped: https://jackson.sh/posts/2021-04-java-underrated/
- Standardizing Native Java - Aligning GraalVM and OpenJDK: https://www.infoq.com/articles/native-java-aligning/
- Ten Optimization Tricks to Make Your Java Application Run Faster: https://medium.com/javarevisited/ten-optimization-tricks-to-make-your-java-application-run-faster-9742f568ed6f
- Reduce Carbon Dioxide Emissions with Serverless and Kubernetes Native Java : https://www.infoq.com/articles/reduce-CO2-with-serveless/
References
- ↑ TIOBE programming language index: http://www.tiobe.com/index.php/paperinfo/tpci/
- ↑ About.com - What is Java?: http://java.about.com/od/gettingstarted/a/whatisjava.htm
- ↑ 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
- ↑ wikipedia: Design pattern (computer science)
- ↑ The History of Java Technology: http://www.oracle.com/technetwork/java/javase/overview/javahistory-index-198355.html
- ↑ The Java™ programming language: http://www.outbacksoftware.com/java/java.html
- ↑ Java history: http://www.freejavaguide.com/history.html
- ↑ Oracle Java SE Support Roadmap: https://www.oracle.com/technetwork/java/java-se-support-roadmap.html
- ↑ 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
- ↑ 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)
- ↑ Java Is Still Free: https://docs.google.com/document/d/1nFGazvrCvHMZJgFstlbzoHjpAVwv5DEdnaBr_5pKuHo/preview#heading=h.p3qt2oh5eczi | VIDEO
- ↑ 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)
- ↑ Java Platform Evolution: https://dev.java/evolution/
- ↑ wikipedia: Java version history
- ↑ 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
- ↑ JDK 7 GA: http://jdk.java.net/9/
- ↑ Java 7 - Do we really need <?> in the diamond operator?: http://java.dzone.com/announcements/java-7-do-we-really-need
- ↑ Java EE 7 - Concurrency in Asynch Servlets tutorial: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/concurrency/Concurrency.html?cid=8501&ssid=0
- ↑ 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
- ↑ Java EE7 - Developing a Batch Processing Application: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/BatchProcessing/BatchProcessing.html?cid=8674&ssid=0#section2
- ↑ ServiceLoader Dynamic Reloading on JEE7 Web Application: http://javaevangelist.blogspot.cz/2013/11/serviceloader-dynamic-reloading-on-jee7.html
- ↑ JDK 8 GA: http://jdk.java.net/9/
- ↑ 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
- ↑ Java 8 compatible Reflection, but Faster: https://dzone.com/articles/java-reflection-but-faster
- ↑ Java 8 multiline string example: https://blog.softhints.com/java-8-multiline-string-example/
- ↑ Life Beyond Java 8: https://dzone.com/articles/life-beyond-java-8
- ↑ Amazon Releases Corretto 8 GA - A Downstream Distribution of OpenJDK: https://www.infoq.com/news/2019/03/amazon-releases-corretto-8
- ↑ JDK 9 GA: http://jdk.java.net/9/
- ↑ 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
- ↑ New APIs in Java 9 (.vs. Java 8): https://javaalmanac.io/jdk/9/apidiff/8/
- ↑ Real World Java 9 (WEBINAR): https://dzone.com/articles/real-world-java-9-webinar
- ↑ A hard look at the state of Java modularization: https://blog.frankel.ch/hard-look-state-java-modularization/
- ↑ Explicitly Naming Automatic Java Modules: https://dzone.com/articles/explicitly-naming-automatic-java-modules
- ↑ Java 9 - The Exciting Bits: https://dzone.com/articles/java-9-the-exciting-bits
- ↑ State of Valhalla: Pt.1 - Road to Valhalla | Pt.2 - Language Model | Pt.3 - VM Model
- ↑ Protocol Buffers -- Developer Guide: https://developers.google.com/protocol-buffers/docs/overview
- ↑ The Evolution of the Producer-Consumer Problem in Java: https://dzone.com/articles/the-evolution-of-producer-consumer-problem-in-java
- ↑ Writing High Performance Java Application in Java 9: https://coderprog.com/writing-high-performance-java-9-app/
- ↑ JDK 9 is the End of the Road for Some Features: https://www.javacodegeeks.com/2017/01/jdk-9-end-road-features.html
- ↑ Java 9 Migration Issues and Resolutions: https://www.baeldung.com/java-9-migration-issue
- ↑ Using external libraries in JShell: https://advancedweb.hu/using-external-libraries-in-jshell/
- ↑ Java 9+ modules – Java Platform Module System (JPMS) basics: https://jaxenter.com/java-9-modules-jpms-basics-135885.html
- ↑ JDK 10 GA: http://jdk.java.net/10/
- ↑ 109 New Features In JDK 10: https://www.azul.com/109-new-features-in-jdk-10/
- ↑ Java 10 - Spring & XML bind: http://joshlong.com/jl/blogPost/java-10.html
- ↑ Java 10 -- These APIs are as good as gone: https://jaxenter.com/jdk-10-apis-going-away-141439.html
- ↑ Java10 code examples: http://github.com/askrakesh/examples
- ↑ JDK 11 GA: http://jdk.java.net/11/
- ↑ 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
- ↑ Java Platform, Standard Edition 11 - Troubleshooting Guide: https://docs.oracle.com/en/java/javase/11/troubleshoot/index.html
- ↑ 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)
- ↑ 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)
- ↑ Updates to the Java SE Platform: https://blogs.oracle.com/java/java-se-releases
- ↑ A Tale of Two Oracle JDKs: http://marxsoftware.blogspot.com/2018/09/a-tale-of-two-oracle-jdks.html
- ↑ New APIs in Java 11 (.vs. Java 8): https://javaalmanac.io/jdk/11/apidiff/8/
- ↑ Guide to Java Versions and Features: https://dzone.com/articles/a-guide-to-java-versions-and-features
- ↑ 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
- ↑ Time to look beyond Java 8: https://blog.joda.org/2018/09/time-to-look-beyond-oracles-jdk.html
- ↑ 20 Reasons to Move On from Java 8 : https://dev.to/awwsmm/20-reasons-to-move-on-from-java-8-1dio
- ↑ Java 11 overview (VIDEOS): https://www.youtube.com/playlist?list=PLX8CzqL3ArzXyA_lJzaNmrFqpLOL4aCEz
- ↑ 90 New Features and APIs in JDK 11 (Part 2) : https://dzone.com/articles/90-new-features-and-apis-in-jdk-11-part-2
- ↑ Java 11 - Standardized HTTP Client API: https://dzone.com/articles/java-11-standardized-http-client-api
- ↑ Using Java Flight Recorder With OpenJDK 11: https://dzone.com/articles/using-java-flight-recorder-with-openjdk-11-1
- ↑ Should you adopt Java 12 or stick on Java 11? : https://blog.joda.org/2018/10/adopt-java-12-or-stick-on-11.html
- ↑ Java 11 Released: https://www.infoq.com/news/2018/09/java11-released
- ↑ Java 11 has Arrived. Is it time to panic?: https://learnprogramming.academy/programming/java-11-has-arrived-is-it-time-to-panic/
- ↑ Java 11 First Impressions: Are You Ready to Make the Switch?: https://land.overops.com/overops-java-11-recording/
- ↑ Oracle JDK 11 installer & JAR file association on Windows: https://stackoverflow.com/questions/52536971/oracle-jdk-11-installer-jar-file-association-on-windows
- ↑ Running JAR file on Windows: https://stackoverflow.com/questions/394616/running-jar-file-on-windows/394628
- ↑ 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)
- ↑ API Updates in Java SE 11 (18.9) : https://dzone.com/articles/api-updates-in-java-se-11-189
- ↑ APIs to Be Removed From Java 11: https://dzone.com/articles/apis-to-be-removed-from-java-11
- ↑ 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
- ↑ 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/
- ↑ Java 11 Features: http://www.journaldev.com/24601/java-11-features
- ↑ New Classes in Java 11: http://blog.code-cop.org/2019/12/new-classes-in-java-11.html
- ↑ 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
- ↑ 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)
- ↑ Getting Started With Java 11 (If You Are Still Using Java 8): https://simply-how.com/getting-started-with-java-11
- ↑ 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
- ↑ It’s time! Migrating to Java 11: https://medium.com/criciumadev/its-time-migrating-to-java-11-5eb3868354f9
- ↑ Move to OpenJDK-11 but compile in Java 8: https://stackoverflow.com/questions/54147275/move-to-openjdk-11-but-compile-in-java-8
- ↑ 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
- ↑ Java 1z0-815 (JDK11 programmer) Certification: https://education.oracle.com/java-se-11-developer/pexam_1Z0-819 PREPARE | PRACTICE | EXAM
- ↑ From Java 8 to Java 11 – Quick Guide: https://codete.com/blog/java-8-java-11-quick-guide/
- ↑ Fun with Java Backwards Compatibility: https://www.symphonious.net/2019/02/04/fun-with-java-backwards-compatibility/
- ↑ Java 12 -- New Features and Enhancements Developers Should Know: https://stackify.com/java-12-new-features-and-enhancements-developers-should-know/
- ↑ Java 12 Released with Experimental Switch Expressions and Shenandoah GC: https://www.infoq.com/news/2019/03/java12-released
- ↑ Upgrading from Java 8 to Java 12: https://www.infoq.com/articles/upgrading-java-8-to-12
- ↑ Java 12 - The Teeing Collector: https://dzone.com/articles/java-12-the-teeing-collector
- ↑ Variance in Java: https://dzone.com/articles/variance-in-java
- ↑ 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/
- ↑ Java Records (JEP 359): https://www.vojtechruzicka.com/java-records/
- ↑ Java 14 Records -- An Introduction: https://alidg.me/blog/2020/1/31/java14-records
- ↑ Serializable Records: https://inside.java/2020/07/20/serializablerecords/
- ↑ Serializing Java 14 Records: https://www.javaspecialists.eu/archive/Issue276.html
- ↑ Fun with Java Records: https://benjiweber.co.uk/blog/2020/09/19/fun-with-java-records/ | SRC
- ↑ JDK 14/JEP 305 instanceof Pattern Matching "Smart Casts": httops://marxsoftware.blogspot.com/2020/02/jdk14-instanceof-pattern-matching.html
- ↑ 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
- ↑ Java 14 is in Feature-Freeze and Release ramp-down: https://www.infoq.com/news/2019/12/java14-feature-freeze/
- ↑ Java 14 Released (2020-03-17): https://www.infoq.com/news/2020/03/java14-released/
- ↑ Java 15 / JDK 15: General Availability: https://mail.openjdk.java.net/pipermail/announce/2020-September/000291.html
- ↑ Java 15 - the Story So Far: https://www.infoq.com/news/2020/04/java-15-story-so-far/
- ↑ New language features (Java 8 to Java 15): https://advancedweb.hu/new-language-features-since-java-8-to-15/
- ↑ 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/
- ↑ Java 15 -- Biased locking a goner, but better things "Loom" ahead (with Project Loom): https://www.javaspecialists.eu/archive/Issue282.html
- ↑ Java 15 Released: https://www.infoq.com/news/2020/09/java15-released/
- ↑ 67 New Features in JDK 16: https://dzone.com/articles/67-new-features-in-jdk-16
- ↑ Records and Pattern Matching for Instanceof Finalized in JDK 16: https://www.infoq.com/news/2020/08/java16-records-instanceof/
- ↑ JDK16 javac xlint Warning about Default Constructors: https://marxsoftware.blogspot.com/2020/08/jdk16-javac-xlint-warning-default-constructors.html
- ↑ Metaspace in OpenJDK 16: https://lkorinth.github.io/posts/2020-11-27-metaspace.html
- ↑ JDK 16 checking indexes & ranges of longs: https://marxsoftware.blogspot.com/2020/11/jdk16-check-long-indexes-ranges.html
- ↑ JDK 16 - Stream to List in one easy call: https://marxsoftware.blogspot.com/2020/12/jdk16-stream-to-list.html
- ↑ 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
- ↑ What's new in JDK 16 -- Sub-milliseond Max Pause Times: https://malloc.se/blog/zgc-jdk16
- ↑ Looking into the JDK 16 vector API: https://www.mscharhag.com/java/vector-api
- ↑ What's New in Java 16: https://www.infoq.com/articles/java-16-new-features/
- ↑ 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/
- ↑ New Features in Java 16: https://www.baeldung.com/java-16-new-features
- ↑ JDK 17 Script Friendly URLs: https://www.oracle.com/java/technologies/jdk-script-friendly-urls/
- ↑ What We Know about Java 16 and 17 So Far: https://www.infoq.com/news/2020/11/java16-so-far/
- ↑ Proposed schedule for JDK 17: https://mail.openjdk.java.net/pipermail/jdk-dev/2021-March/005266.html
- ↑ JDK 17 -- JEP 406 - Pattern Matching for switch (preview): https://openjdk.java.net/jeps/406
- ↑ JDK 17 -- Hexadecimal Formatting and Parsing: https://marxsoftware.blogspot.com/2020/12/jdk17-hex-formatting-parsing.html
- ↑ JDK 17 -- Monitoring "Deserialization events" to Improve Application Security: https://inside.java/2021/03/02/monitoring-deserialization-activity-in-the-jdk/
- ↑ Upgrade to Java 16 or 17: https://www.infoq.com/presentations/upgrade-java16-java17/
- ↑ Inside Java Newscast -- #6 - Java 17 features & development: https://www.youtube.com/watch?v=Twwpk6vub1M
- ↑ Internal JDK Elements Strongly Encapsulated in JDK 17: https://www.infoq.com/news/2021/06/internals-encapsulated-jdk17/
- ↑ Internal packages that will no longer be open by default: https://cr.openjdk.java.net/~mr/jigsaw/jdk8-packages-denied-by-default
- ↑ Is Java 17 a Glass Half Full? : https://www.infoq.com/news/2021/07/java-17-glass/
- ↑ JDK 17 rollout -- JEP Café #2 - Sealed Classes: https://inside.java/2021/07/22/jepcafe2/
- ↑ OpenJDK -- JEP 416 - Reimplement Core Reflection with "Method Handles": https://openjdk.java.net/jeps/416
- ↑ JDK 17 Security Enhancements: https://seanjmullan.org/blog/2021/09/14/jdk17
- ↑ The Arrival of Java 17!: https://inside.java/2021/09/14/the-arrival-of-java17/
- ↑ Java 17, the Next Long-Term Support Release, is Now Available : https://www.infoq.com/news/2021/09/java17-released/
- ↑ Java 17 released with updates to LTS schedule: https://sdtimes.com/java/java-17-released-with-updates-to-lts-schedule/
- ↑ Majority of Java developers plan to transition to Java 17 within the next year: https://sdtimes.com/java/report-majority-of-java-developers-plan-to-transition-to-java-17-within-the-next-year/
- ↑ JDK 18 & JDK 19 - What We Know So Far: https://www.infoq.com/news/2022/03/java-18-so-far/
- ↑ JDK 18 Release Notes: https://jdk.java.net/18/release-notes
- ↑ JDK 18 - The new features in Java 18: https://www.infoworld.com/article/3630510/jdk-18-the-new-features-in-java-18.html
- ↑ JDK 18 G1/Parallel/Serial GC changes: https://tschatzl.github.io/2022/03/14/jdk18-g1-parallel-gc-changes.html
- ↑ JDK 18 Security Enhancements: https://seanjmullan.org/blog/2022/03/23/jdk18
- ↑ All About JDK 18 - Inside Java Newscast #21: https://inside.java/2022/03/10/insidejava-newscast-021/
- ↑ The Arrival of Java 18!: https://inside.java/2022/03/22/the-arrival-of-java18/ | PODCAST episode
- ↑ Java 19 - The Best Java Release? - Inside Java Newscast #27: https://inside.java/2022/06/16/insidejava-newscast-027/
- ↑ The Java Language Specification, Third Edition: http://docs.oracle.com/javase/specs/jls/se5.0/html/j3TOC.html
- ↑ The JavaTM Virtual Machine Specification - 2nd Edition: http://docs.oracle.com/javase/specs/jvms/se5.0/html/VMSpecTOC.doc.html
- ↑ Working with Manifest Files - The Basics: http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html
- ↑ Advanced Java Tutorial: http://www.javacodegeeks.com/2015/09/advanced-java.html
- ↑ 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/
- ↑ JVM Architecture 101 -- Get to Know Your Virtual Machine: https://blog.takipi.com/jvm-architecture-101-get-to-know-your-virtual-machine/
- ↑ 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
- ↑ JVM Architecture 101 -- Get to Know Your Virtual Machine: https://blog.overops.com/jvm-architecture-101-get-to-know-your-virtual-machine/
- ↑ 7 JVM Arguments of Highly Effective Applications: https://dzone.com/articles/7-jvm-arguments-of-highly-effective-applications-1
- ↑ Using jenv to select Java version on macOS: https://akrabat.com/using-jenv-to-select-java-version-on-macos/ (NOTE: can be done at the "local" i.e. current Terminal CLI window/prompt, or, "global" to change the default JVM for the entire OS and all applications)
- ↑ How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version: https://stackoverflow.com/questions/10382929/how-to-fix-java-lang-unsupportedclassversionerror-unsupported-major-minor-versi
- ↑ https://stackoverflow.com/questions/1906445/what-is-the-difference-between-jdk-and-jre
- ↑ Setup Java on Linux sample script: https://gist.github.com/sdmcraft/2c5abbdeccf37e1642e5
- ↑ JDK 10: http://jdk.java.net/10/
- ↑ JDK 11: http://jdk.java.net/11/
- ↑ Building Java 10+ projects on Travis CI: https://www.deps.co/guides/travis-ci-latest-java/
- ↑ Most commonly available JDKs: https://blog.frankel.ch/common-jdks/
- ↑ Moving the JDK to a Two Year LTS Cadence: https://blogs.oracle.com/java/post/moving-the-jdk-to-a-two-year-lts-cadence
- ↑ Oracle's March 2018 Java Client Roadmap Update: https://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf
- ↑ Amazon Corretto 8: https://dzone.com/articles/amazon-corretto-8-1 (Amazon distribution of the OpenJDK)
- ↑ Amazon Corretto -- Another OpenJDK (and how to use it): https://dzone.com/articles/amazon-corretto-another-jdk
- ↑ SAP builds its own Java distribution: https://www.techworld.com.au/article/658340/sap-builds-its-own-java-distribution/
- ↑ OpenJDK vs OracleJDK — which one to use when: https://medium.com/@sairamkrish/openjdk-vs-oraclejdk-which-one-to-use-when-936ae5315600
- ↑ Eliminating Java Update Confusion: https://dzone.com/articles/eliminating-java-update-confusion
- ↑ OpenJDK vs. OracleJDK - which are you using?: https://www.reddit.com/r/java/comments/6g86p9/openjdk_vs_oraclejdk_which_are_you_using/
- ↑ OracleJDK .vs. OpenJDK and Java JDK Development Process: https://javapapers.com/java/oracle-jdk-vs-openjdk-and-java-jdk-development-process/
- ↑ Differences between Oracle JDK and OpenJDK: https://stackoverflow.com/questions/22358071/differences-between-oracle-jdk-and-openjdk
- ↑ OpenJDK - Oracle is better?: https://askubuntu.com/questions/437752/openjdk-oracle-is-better
- ↑ 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
- ↑ What is the difference between Oracle JDK and Open JDK?: https://www.quora.com/What-is-the-difference-between-Oracle-JDK-and-Open-JDK
- ↑ 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
- ↑ Return of the "OpenJDK Developers' guide": https://www.infoq.com/news/2020/07/openjdk-dev-guide/
- ↑ Microsoft Introduces Microsoft Build of OpenJDK: https://www.infoq.com/news/2021/04/microsoft-build-of-openjdk/
- ↑ "package-info.java" example: https://alvinalexander.com/java/jwarehouse/openjdk-8/langtools/src/share/classes/com/sun/javadoc/package-info.java.shtml
- ↑ The package-info.java File: https://www.baeldung.com/java-package-info
- ↑ javadoc - The Java API Documentation Generator: https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javadoc.html
- ↑ 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
- ↑ What’s package-info.java for?: https://www.intertech.com/Blog/whats-package-info-java-for/
- ↑ Why is package-info.java useful?: https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful
- ↑ W3schools -- Packages: https://www.w3schools.com/java/java_packages.asp
- ↑ Intro to the Java SecurityManager: https://www.baeldung.com/java-security-manager
- ↑ Retrieving a Class Name in Java: https://www.baeldung.com/java-class-name
- ↑ 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
- ↑ 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
- ↑ Java Modules: http://tutorials.jenkov.com/java/modules.html
- ↑ Understanding Java 9 Modules: https://www.oracle.com/corporate/features/understanding-java-9-modules.html
- ↑ Code-First Java Module System Tutorial: https://blog.codefx.org/java/java-module-system-tutorial/
- ↑ "module-info.java" tutorial: http://tutorials.jenkov.com/java/modules.html
- ↑ Java Magazine -- "More Java 9" (Sep/Oct 2017): http://www.javamagazine.mozaicreader.com/SeptOct2017#&pageSet=23&page=0&contentItem=0
- ↑ JDK 9 New Features -- Java Module System - Project Jigsaw: https://www3.ntu.edu.sg/home/ehchua/programming/java/JDK9_NewFeatures.html
- ↑ Getting Started with Java 9 Module System: https://www.jetbrains.com/help/idea/getting-started-with-java-9-module-system.html
- ↑ Gradle -- Building Java 9 Modules: https://guides.gradle.org/building-java-9-modules/
- ↑ Java 9 Modularity -- Patterns and Practices for Developing Maintainable Applications (September 2017): http://shop.oreilly.com/product/0636920049494.do
- ↑ Java 9 Modules (Part 1) -- Introduction: https://dzone.com/articles/java-9-modules-introduction-part-1
- ↑ Java 9 Modules (Part 2) -- IntelliJ and Maven: https://dzone.com/articles/java-9-modules-part-2-intellij-and-maven
- ↑ Java 9 Modules (Part 3) -- Directives: https://dzone.com/articles/java-9-modules-part-3-directives
- ↑ Java 9 Modules Tutorial: https://examples.javacodegeeks.com/core-java/java-9-modules-tutorial/
- ↑ 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
- ↑ Java 9 New Features: https://www.baeldung.com/new-java-9 (incldes a simple Modules example)
- ↑ Migrating the ServiceLoader to the Java 9 module system: https://blog.frankel.ch/migrating-serviceloader-java-9-module-system/
- ↑ The State of the Module System: http://openjdk.java.net/projects/jigsaw/spec/sotms/
- ↑ 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
- ↑ What "Modules" are about: https://inside.java/2021/09/10/what-are-modules-about/
- ↑ Packaging Programs in JAR Files: http://docs.oracle.com/javase/tutorial/deployment/jar/index.html
- ↑ wikipedia: JAR (file format)
- ↑ What is a JAR file?: http://www.roseindia.net/java/example/java/util/JarFile.shtml
- ↑ http://thinkitdifferently.wordpress.com/2009/02/18/jar-classpath/
- ↑ How to run a JAR file: http://www.wikihow.com/Run-a-.Jar-Java-File
- ↑ 5 things you should know about JARs (in Java 6+): http://www.ibm.com/developerworks/library/j-5things6/
- ↑ Oracle Lesson -- Packaging Programs in JAR Files: https://docs.oracle.com/javase/tutorial/deployment/jar/
- ↑ Viewing Contents of a JAR File: https://www.baeldung.com/java-view-jar-contents
- ↑ Minimizing the risk of using Java (on the web): https://www.dionach.com/blog/minimising-the-risk-of-using-java
- ↑ The Java Javascript Engine: https://www.algosome.com/articles/java-javascript-engine.html
- ↑ wikipedia: IcedTea
- ↑ Move over Java Web Start — raise your glass to IcedTea-Web V1.8.1!: https://medium.com/adoptopenjdk/move-over-java-web-start-raise-your-glass-to-icedtea-web-v1-8-1-c0395e9f27
- ↑ How to get IcedTea browser plugin (OpenJDK browser java plugin) for windows?: https://stackoverflow.com/questions/53648281/how-to-get-icedtea-browser-plugin-openjdk-browser-java-plugin-for-windows
- ↑ Migration Guide from OracleJDK to OpenJDK (see section on associated Java Desktop alternatives): https://adoptopenjdk.net/migration.html
- ↑ Leadership of OpenJDK 8 and OpenJDK 11 Transitions to Red Hat: https://www.redhat.com/en/about/press-releases/leadership-openjdk-8-and-openjdk-11-transitions-red-hat
- ↑ Ask Slashdot -- How Dead Is Java?: https://developers.slashdot.org/story/19/02/02/1545215/ask-slashdot-how-dead-is-java
- ↑ “Minecraft has opened up Java to a range of people who probably don’t even realise the skills they have acquired through it”: https://jaxenter.com/minecraft-java-little-interview-154978.html
- ↑ Minecraft wiki -- Setting up a server: https://minecraft.gamepedia.com/Tutorials/Setting_up_a_server
- ↑ Setting up a fresh Minecraft server installation on Linux: http://matthewekenstedt.com/187-07/setting-up-a-fresh-minecraft-server-installation-on-linux/
- ↑ wikipedia: WAR file format (Sun)
- ↑ EAR packaging: http://docs.oracle.com/javaee/1.4/tutorial/doc/Overview5.html
- ↑ wikipedia: EAR (file format)
- ↑ 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
- ↑ wikipedia: Classpath (Java)
- ↑ How to Tune Java Garbage Collection: http://java.dzone.com/articles/how-tune-java-garbage
- ↑ 5 Coding Hacks to Reduce GC Overhead: http://java.dzone.com/articles/5-coding-hacks-reduce-gc
- ↑ 5 ways to force Java garbage collection: https://www.theserverside.com/video/5-ways-to-force-Java-garbage-collection
- ↑ Jackson Deserialization Vulnerability: https://snyk.io/blog/jackson-deserialization-vulnerability/
- ↑ Changing a field's type in recent JDKs: https://blog.frankel.ch/changing-field-type-recent-jdks/
- ↑ How to Read a File in Java: https://www.baeldung.com/reading-file-in-java
- ↑ How to read file in Java with NIO – BufferedReader: https://mkyong.com/java/how-to-read-file-from-java-bufferedreader-example/
- ↑ Java 8 Stream – Read a file line by line: https://mkyong.com/java8/java-8-stream-read-a-file-line-by-line/
- ↑ Java Streams overview: https://dzone.com/articles/java-streams-overview-part-i
- ↑ Java – Read a file from resources folder: https://mkyong.com/java/java-read-a-file-from-resources-folder
- ↑ Java – Read File to String: https://howtodoinjava.com/java/io/java-read-file-to-string-examples/
- ↑ Java – How to read a file: https://mkyong.com/java/java-how-to-read-a-file/
- ↑ How to read and write Java object to a file: https://mkyong.com/java/how-to-read-and-write-java-object-to-a-file/
- ↑ 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
- ↑ Java – Write to File: http://howtodoinjava.com/java/io/java-write-to-file/
- ↑ How to write to file in Java – BufferedWriter: https://mkyong.com/java/how-to-write-to-file-in-java-bufferedwriter-example/
- ↑ Java – How to save a String to a File: https://mkyong.com/java/java-how-to-save-a-string-to-a-file/
- ↑ Java BufferedWriter class: https://www.javatpoint.com/java-bufferedwriter-class
- ↑ Java – How to create and write to a file: https://mkyong.com/java/java-how-to-create-and-write-to-a-file/
- ↑ JSoup -- Load a Document from a File: https://jsoup.org/cookbook/input/load-document-from-file
- ↑ Convert InputStream to BufferedReader: https://stackoverflow.com/questions/5200187/convert-inputstream-to-bufferedreader
- ↑ How to get an InputStream from a BufferedImage?: https://stackoverflow.com/questions/649186/how-to-get-an-inputstream-from-a-bufferedimage
- ↑ How to save a BufferedImage as a File: https://stackoverflow.com/questions/12674064/how-to-save-a-bufferedimage-as-a-file
- ↑ How to convert Byte Array to Image in java?: https://www.tutorialspoint.com/How-to-convert-Byte-Array-to-Image-in-java
- ↑ JavaDocs -- Serializable: https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html
- ↑ What is object serialization?: https://stackoverflow.com/questions/447898/what-is-object-serialization
- ↑ Serialization and Deserialization in Java with Example: https://www.geeksforgeeks.org/serialization-in-java/
- ↑ Java object serialization - Tutorial: https://www.vogella.com/tutorials/JavaSerialization/article.html
- ↑ Java - Serialization: https://www.tutorialspoint.com/java/java_serialization.htm
- ↑ Serializing an Object via a Client/Server Connection: https://www.developer.com/design/serializing-an-object-via-a-client-server-connection/
- ↑ 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)
- ↑ Networking I/O with Virtual Threads - Under the hood: https://inside.java/2021/05/10/networking-io-with-virtual-threads/
- ↑ Java – How to convert Bytes to Hex: http://www.mkyong.com/java/java-how-to-convert-bytes-to-hex/
- ↑ Don’t Extract Everything Into a Method: https://dzone.com/articles/dont-extract-everything-into-a-method
- ↑ A Guide to the Static Keyword in Java: https://www.baeldung.com/java-static
- ↑ Concurrency: http://java.sun.com/docs/books/tutorial/essential/concurrency/
- ↑ 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)
- ↑ What Every Java Developer Should Know About Thread, Runnable, and Thread Poolhttps://dzone.com/articles/what-every-java-dev-should-know-thread-runnable-thread-pool
- ↑ Java Thread example: https://www.journaldev.com/1016/java-thread-example
- ↑ Thread Life Cycle in Java – Thread States in Java: https://www.journaldev.com/1044/thread-life-cycle-in-java-thread-states-in-java
- ↑ Multithreading in Java: https://www.journaldev.com/1079/multithreading-in-java
- ↑ Common Concurrency Pitfalls in Java: https://www.baeldung.com/java-common-concurrency-pitfalls
- ↑ Java - Thread Synchronization: https://www.tutorialspoint.com/java/java_thread_synchronization.htm
- ↑ Java.lang.Thread.sleep() Method: https://www.tutorialspoint.com/java/lang/thread_sleep_millis.htm
- ↑ How can we stop a thread in Java?: https://www.tutorialspoint.com/how-can-we-stop-a-thread-in-java
- ↑ Java Timer, TimerTask, Reminder Class Tutorial with Example: https://crunchify.com/java-timer-and-timertask-reminder-class-tutorials-example/
- ↑ Java Multithreading - Threadsafe Counter: https://stackoverflow.com/questions/29883719/java-multithreading-threadsafe-counter
- ↑ 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
- ↑ Using wait/notify vs Thread.sleep() in Java: https://www.qat.com/using-waitnotify-instead-thread-sleep-java/
- ↑ 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
- ↑ How to Run Multiple Threads Concurrently in Java? ExecutorService Approach: https://crunchify.com/how-to-run-multiple-threads-concurrently-in-java-executorservice-approach/
- ↑ 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)
- ↑ Timer in Java Thread: https://stackoverflow.com/questions/11707066/timer-in-java-thread
- ↑ Java concurrency (multi-threading) - tutorial: https://www.vogella.com/tutorials/JavaConcurrency/article.html
- ↑ Java Multithreading & Concurrency Interview Questions and Answers: https://www.journaldev.com/1162/java-multithreading-concurrency-interview-questions-answers
- ↑ ThreadPoolExecutor – Java Thread Pool Example: https://www.journaldev.com/1069/threadpoolexecutor-java-thread-pool-example-executorservice
- ↑ Using Thread Dumps: https://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/using_threaddumps.html
- ↑ TutorialsPoint -- Java RMI - Quick Guide: https://www.tutorialspoint.com/java_rmi/java_rmi_quick_guide.htm
- ↑ Remote Method Invocation in Java: https://www.geeksforgeeks.org/remote-method-invocation-in-java/
- ↑ Remote Method Invocation (RMI) overview: https://www.javatpoint.com/RMI
- ↑ Java RMI basic tutorial: https://www.knowledgehut.com/tutorials/java-tutorial/java-rmi
- ↑ JDK 7, Getting Started Using Java™ RMI (HelloWorld client/server example): https://docs.oracle.com/javase/7/docs/technotes/guides/rmi/hello/hello-world.html
- ↑ wikipedia: Common_Object_Request_Broker_Architecture
- ↑ 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)
- ↑ Are CORBA and RMI "dead"?: https://community.oracle.com/thread/1182073
- ↑ Is CORBA still alive? What about ACE?: https://groups.google.com/forum/#!topic/comp.object.corba/jD6KpFPxWPw
- ↑ The significance of Java RMI (and CORBA) please?: https://stackoverflow.com/questions/14326901/the-significance-of-java-rmi-please
- ↑ Is CORBA legacy?: https://stackoverflow.com/questions/1226050/is-corba-legacy
- ↑ Time Synchronization in Distributed Systems: https://medium.com/distributed-knowledge/time-synchronization-in-distributed-systems-a21808928bc8
- ↑ 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
- ↑ Guide to JNI (Java Native Interface): https://www.baeldung.com/jni
- ↑ Call a C function from Java: https://stackoverflow.com/questions/5963266/call-c-function-from-java
- ↑ Does Java 18 finally have a better alternative to JNI?: https://developer.okta.com/blog/2022/04/08/state-of-ffi-java
- ↑ Object-Oriented Programming: http://cs.smu.ca/~porter/csc/465/notes/oop.html
- ↑ OOP Basics: http://www.jamesbooth.com/OOPBasics.htm
- ↑ Inheritance, Polymorphism, and Abstract Classes: http://math.hws.edu/javanotes/c5/s5.html
- ↑ Oracle docs -- Java OOP - Declaring Member Variables: https://docs.oracle.com/javase/tutorial/java/javaOO/variables.html
- ↑ In Java, what’s the difference between method overloading and method overriding?: http://www.programmerinterview.com/index.php/java-questions/method-overriding-vs-overloading/
- ↑ wikipedia: Abstraction
- ↑ wikipedia: Inheritance (object-oriented programming)
- ↑ What Is Inheritance?: http://java.about.com/od/objectorientedprogramming/a/inheritance.htm
- ↑ Inheritance .vs. Composition: http://www.javaworld.com/jw-11-1998/jw-11-techniques.html
- ↑ wikipedia: Polymorphism (computer science)
- ↑ wikipedia: Polymorphism in object-oriented programming
- ↑ How my Dog learned Polymorphism: http://www.javaranch.com/campfire/StoryPoly.jsp
- ↑ 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
- ↑ 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
- ↑ 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
- ↑ Time To Really Learn Generics -- A Java 8 Perspective: http://nofluffjuststuff.com/magazine/2016/09/time_to_really_learn_generics_a_java_8_perspective
- ↑ Learning Java, 4th Edition (2013) -- Ch.8 Generics - Generic Methods: http://www.oreilly.com/library/view/learning-java-4th/9781449372477/ch08s09.html
- ↑ Java Generic Methods: http://tutorials.jenkov.com/java-generics/methods.html
- ↑ Get Started with Java: https://www.baeldung.com/get-started-with-java-series
- ↑ OCP Certification – Advanced Java Class Design: https://www.baeldung.com/java-ocp-advanced-class-design
- ↑ Java - Use polymorphism or bounded type parameters: http://softwareengineering.stackexchange.com/questions/227918/java-use-polymorphism-or-bounded-type-parameters
- ↑ 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)
- ↑ Generic Constructors in Java: https://www.baeldung.com/java-generic-constructors
- ↑ Working With Java 8 Optionals: http://codingjunkie.net/working-with-java8-optionals/
- ↑ Tired of Null Pointer Exceptions? Consider Using Java SE 8's Optional: http://www.oracle.com/technetwork/articles/java/java8-optional-2175753.html
- ↑ Should Java 8 getters return nullable optional Optional type? https://stackoverflow.com/questions/26327957/should-java-8-getters-return-optional-type/26328555#26328555
- ↑ How to Write Better Code with Java 8’s Optional: https://medium.com/swlh/how-to-write-better-code-with-java-8s-optional-b6d862f28862
- ↑ Working on Null Elegantly with Java Optional: https://medium.com/faun/working-on-null-elegantly-with-java-optional-62f5e65869c5
- ↑ How to use Optionals In Java: https://dzone.com/articles/optional-in-java
- ↑ 26 Reasons Why Using Optional Correctly Is Not Optional: https://dzone.com/articles/using-optional-correctly-is-not-optional
- ↑ Guide To Optional (available in Java 8+): https://www.baeldung.com/java-optional
- ↑ Java 8 Optional - Replace your get() calls: https://reversecoding.net/java-8-optional-replace-get-examples/
- ↑ 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
- ↑ 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
- ↑ How Java Optional Evolved Over Time: https://dzone.com/articles/java-optional-api-evolution
- ↑ var keyword in Java: https://www.codejava.net/java-core/the-java-language/var-keyword-in-java
- ↑ "var" keyword in Java - examples: https://www.geeksforgeeks.org/var-keyword-in-java/
- ↑ Java 11 Local Variable Syntax for Lambda Parameters: https://www.baeldung.com/java-var-lambda-params
- ↑ Collections in Java (overview): https://www.javatpoint.com/collections-in-java
- ↑ Java Sort a List by multiple attributes example: https://www.codejava.net/java-core/collections/sorting-a-list-by-multiple-attributes-example
- ↑ Eclipse Collections 11.0.0 Features New APIs and Functionality: https://www.infoq.com/news/2022/02/eclipse-collections-11-0-0/
- ↑ Java language basics: http://developer.ibm.com/tutorials/j-introtojava1/ (good examples of List, ArrayLists, etc)
- ↑ Finding the Differences Between Two Lists in Java: https://www.baeldung.com/java-lists-difference
- ↑ 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)
- ↑ Java – Check if Array contains a certain value?: https://www.mkyong.com/java/java-check-if-array-contains-a-certain-value/
- ↑ How to iterate through a Map in Java?: https://stackoverflow.com/questions/43015098/how-to-iterate-through-a-map-in-java
- ↑ How to get Map’s key from value in Java: https://www.techiedelight.com/get-map-key-from-value-java/
- ↑ 10 Examples of HashMap in Java - Programming Tutorial: http://www.java67.com/2013/02/10-examples-of-hashmap-in-java-programming-tutorial.html
- ↑ 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
- ↑ 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
- ↑ List<SomeObject> to Map<Integer, SomeObject> (where Map has a numerical Key and the original Object): https://www.baeldung.com/java-list-to-map
- ↑ List<String> to Map<String, Object> with Key Mapper and Value Mapper: https://www.concretepage.com/java/jdk-8/java-8-convert-list-to-map-using-collectors-tomap-example
- ↑ Java 8 Streams peek() API: https://www.baeldung.com/java-streams-peek-api
- ↑ An Introduction to Functional Programming in Java 8 (Part 3) -- Streams: http://dzone.com/articles/an-introduction-to-functional-programming-in-java
- ↑ Java 8 Stream -- concat, count, sorted and distinct Example: https://www.concretepage.com/java/jdk-8/java-8-stream-concat-count-sorted-distinct-example
- ↑ Null safe date comparator for sorting in Java 8 Stream: https://stackoverflow.com/questions/36361156/null-safe-date-comparator-for-sorting-in-java-8-stream
- ↑ 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
- ↑ How to Properly Debug Java Streams: https://dzone.com/articles/how-to-properly-debug-java-streams-video
- ↑ How to debug stream().map(…) with lambda expressions?: https://stackoverflow.com/questions/24541786/how-to-debug-stream-map-with-lambda-expressions
- ↑ IntelliJ -- Analyze Java Stream operations: https://www.jetbrains.com/help/idea/analyze-java-stream-operations.html
- ↑ How to debug Java 8 Stream Pipeline - peek() method tutorial: http://www.java67.com/2016/09/java-8-streampeek-example.html
- ↑ Stream.reduce & Stream.collect methods: https://docs.oracle.com/javase/tutorial/collections/streams/reduction.html
- ↑ 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
- ↑ Java Stream API was Broken Before JDK10: https://4comprehension.com/java-stream-api-was-broken-before-jdk10/
- ↑ Java 8 Streams -- An Intro to Filter, Map and Reduce Operations: www.sitepoint.com/java-8-streams-filter-map-reduce/
- ↑ Java Stream collect() method Examples: https://www.journaldev.com/32457/java-stream-collect-method-examples
- ↑ 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
- ↑ 10 Examples of forEach() method in Java 8: http://www.java67.com/2016/01/how-to-use-foreach-method-in-java-8-examples.html
- ↑ 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/
- ↑ String Operations with Java Streams: https://www.baeldung.com/java-stream-operations-on-strings
- ↑ How to Iterate Over a Stream with Indices: http://www.baeldung.com/java-stream-indices
- ↑ Java 8 -- Accumulate the elements of a Stream using Collectors: http://www.deadcoderising.com/2017-02-21-java-8-accumulate-your-streams-using-collectors/
- ↑ A Guide to Streams in Java 8 -- In-Depth Tutorial with Examples: http://stackify.com/streams-guide-java-8/
- ↑ Java Streams Overview, Part I: https://dzone.com/articles/java-streams-overview-part-i
- ↑ How to convert a Map to List in Java?: https://stackoverflow.com/questions/1026723/how-to-convert-a-map-to-list-in-java
- ↑ Java 8 - How to convert String to Map<String,String>?: https://stackoverflow.com/questions/52695410/java-8-how-to-convert-string-to-mapstring-string
- ↑ 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
- ↑ Convert a List to a Comma-Separated String in Java 8: https://dzone.com/articles/java-8-convert-list-to-string-comma-separated
- ↑ Check if one List object contains element from the other: https://stackoverflow.com/questions/11796371/check-if-one-list-contains-element-from-the-other
- ↑ Java 8 – How to sort list with stream.sorted(): https://mkyong.com/java8/java-8-how-to-sort-list-with-stream-sorted/
- ↑ Processing Files With Java 8 Streams: https://reflectoring.io/processing-files-using-java-8-streams/
- ↑ 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)
- ↑ Think Twice Before Using Java 8 Parallel Streams: https://dzone.com/articles/think-twice-using-java-8
- ↑ Guide to mapMulti in Stream API: https://www.baeldung.com/java-mapmulti (with real-world Artist' to Album association examples)
- ↑ A real-world (ShoppingCart) example of a Stream Collector: https://blog.frankel.ch/real-world-stream-collector/
- ↑ How to Properly Debug Java Streams (VIDEO): https://dzone.com/articles/how-to-properly-debug-java-streams-video
- ↑ wikipedia: Anonymous function
- ↑ 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
- ↑ Start Using Java Lambda Expressions & Streams: https://www.developer.com/java/start-using-java-lambda-expressions.html
- ↑ How to start working with Lambda Expressions in Java: https://www.freecodecamp.org/news/learn-these-4-things-and-working-with-lambda-expressions-b0ab36e0fffc/
- ↑ Java 8 – Powerful Comparison with Lambdas | VIDEOS: https://www.baeldung.com/java-8-sort-lambda
- ↑ Why the restriction on local variable capture?: http://www.lambdafaq.org/what-are-the-reasons-for-the-restriction-to-effective-immutability/
- ↑ Java local vs instance variable access speed: https://stackoverflow.com/questions/21613098/java-local-vs-instance-variable-access-speed
- ↑ Why are lambda expressions being added to Java?: http://www.lambdafaq.org/why-are-lambda-expressions-being-added-to-java/
- ↑ 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
- ↑ Modifying local variable from inside lambda: https://stackoverflow.com/questions/30026824/modifying-local-variable-from-inside-lambda
- ↑ Java 8 – Powerful Comparison with Lambdas: http://www.baeldung.com/java-8-sort-lambda
- ↑ Streams tutorial: https://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/
- ↑ Lambda Expressions and Functional Interfaces -- Tips and Best Practices: https://www.baeldung.com/java-8-lambda-expressions-tips
- ↑ Introduction To Pragmatic Functional Java (and how to refactor from traditional imperative coding style): https://dzone.com/articles/introduction-to-pragmatic-functional-java
- ↑ An Introduction to Atomic Variables in Java: https://www.baeldung.com/java-atomic-variables
- ↑ How AtomicReference Works: https://dzone.com/articles/atomicreference
- ↑ Java AtomicReference Example: https://examples.javacodegeeks.com/core-java/util/concurrent/atomic/atomicreference/java-atomicreference-example/
- ↑ AtomicReference tutorial: http://tutorials.jenkov.com/java-util-concurrent/atomicreference.html
- ↑ Java Lambda Expressions: http://tutorials.jenkov.com/java/lambda-expressions.html
- ↑ 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
- ↑ How to convert a String to a lambda expression?: https://stackoverflow.com/questions/22207447/how-to-convert-a-string-to-a-lambda-expression
- ↑ Java Lambda Expressions Basics: https://dzone.com/articles/java-lambda-expressions-basics
- ↑ Hacking Lambda Expressions in Java: https://dzone.com/articles/hacking-lambda-expressions-in-java
- ↑ lambdaFromString lib: https://github.com/greenjoe/lambdaFromString
- ↑ Lambda Expressions in Java 8: https://www.geeksforgeeks.org/lambda-expressions-java-8/
- ↑ Java Lambda Expressions: https://www.programiz.com/java-programming/lambda-expression
- ↑ Java 8 Lambda Limitations -- Closures: http://dzone.com/articles/java-8-lambas-limitations-closures
- ↑ Lambda Expressions & Functional Interfaces -- Tips & Best Practices: http://www.baeldung.com/java-8-lambda-expressions-tips
- ↑ Java Lambda Expressions: http://tutorials.jenkov.com/java/lambda-expressions.html
- ↑ Modifying local variable from inside lambda: stackoverflow.com/questions/30026824/modifying-local-variable-from-inside-lambda/53350417#53350417
- ↑ Using Java 8 Lambdas Efficiently: http://www.beyondjava.net/using-java-8-lambdas-efficiently
- ↑ Exception Handling in Java Streams: https://medium.com/swlh/exception-handling-in-java-streams-5947e48f671c
- ↑ How to catch splitted String in Java Stream: https://stackoverflow.com/questions/29807947/how-to-catch-splitted-string-in-java-stream
- ↑ How to convert comma-separated String to List?: https://stackoverflow.com/questions/7488643/how-to-convert-comma-separated-string-to-list
- ↑ Java 8+ – Convert Stream to List: https://howtodoinjava.com/java8/convert-stream-to-list/
- ↑ How to convert a Stream into a Map in Java: https://www.geeksforgeeks.org/how-to-convert-a-stream-into-a-map-in-java/
- ↑ HashMap using Streams & substring: https://stackoverflow.com/questions/52137069/hashmap-using-streams-and-substring
- ↑ Java 8+ – Join or append stream of strings: https://howtodoinjava.com/java8/join-stream-of-strings/
- ↑ JDK 8 JavaDocs -- Stream - Collectors: https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html
- ↑ 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
- ↑ Oracle technical articles -- Processing Data with Java SE 8 Streams - Part 2: https://www.oracle.com/technical-resources/articles/java/architect-streams-pt2.html
- ↑ Java streams - "filter" in a lambda: https://www.baeldung.com/java-stream-filter-lambda
- ↑ Java "CompletableFuture" Tutorial with Examples: https://www.callicoder.com/java-8-completablefuture-tutorial/
- ↑ Writing Functional Interfaces in Java: https://dzone.com/articles/writing-functional-interfaces
- ↑ Lambda Expressions: https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#approach8
- ↑ Java Records vs. Lombok: https://dzone.com/articles/records-vs-lombok
- ↑ Introduction to Records: https://www.logicbig.com/tutorials/core-java-tutorial/java-16-changes/intro-to-java-records.html
- ↑ Java "record" - practical use-case examples: https://jenkov.com/tutorials/java/record.html
- ↑ A look into what you can and cannot do in Java record classes: https://dzone.com/articles/what-are-java-records
- ↑ wikipedia: Java Management Extensions
- ↑ wikipedia: Java Database Connectivity
- ↑ JDBC CRUD ( Create, Read, Update and Delete) example: http;//techmyguru.com/JDBC/index.php?section=5
- ↑ MySQL and Java JDBC - Tutorial: http://www.vogella.com/articles/MySQLJava/article.html
- ↑ An Introduction to JDBC, Part 3: http://onjava.com/pub/a/onjava/excerpt/javaentnut_2/index3.html
- ↑ Spring Data JDBC Generic DAO Implementation - Most Lightweight ORM Ever: http://architects.dzone.com/articles/spring-data-jdbc-generic-dao
- ↑ 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)
- ↑ SQL DECIMAL to Java Number: https://stackoverflow.com/questions/35702026/sql-decimal-to-java-number
- ↑ 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/
- ↑ Using “LIKE” wildcard in PreparedStatement: https://stackoverflow.com/questions/8247970/using-like-wildcard-in-prepared-statement
- ↑ Configuring JDBC in TomEE: https://www.tomitribe.com/blog/configuring-jdbc-in-tomee/
- ↑ MySQL JDBC over SSL problem: https://stackoverflow.com/questions/4663061/mysql-jdbc-over-ssl-problem/23807763
- ↑ MySQL JDBC Statement Caching: https://vladmihalcea.com/mysql-jdbc-statement-caching/
- ↑ Persisting fast in database - JDBC: https://medium.com/@jerolba/persisting-fast-in-database-jdbc-76912ec2ef42
- ↑ 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
- ↑ 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
- ↑ AceQL: https://www.aceql.com/ | Server - SRC | Client - SRC
- ↑ AceQL Releases Open-Source JDBC-over-HTTP Driver: https://www.infoq.com/news/2021/06/aceql-jdbc-http/
- ↑ JDBC - ResultSetMetadata: https://dzone.com/articles/what-is-jdbc-resultsetmetadata-and-jdbc-resultsetm
- ↑ Sun Java Developer Network - EJB: http://java.sun.com/products/ejb/
- ↑ wikipedia: EJB
- ↑ What Is an Entity Bean?: http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/EJBConcepts4.html
- ↑ What Is a Message-Driven Bean?: http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/EJBConcepts5.html
- ↑ 3 Types of EJB: http://www.java-samples.com/showtutorial.php?tutorialid=122
- ↑ What's Wrong with the EJB 2 Specification?: http://onjava.com/pub/a/onjava/2001/02/28/ejb.html
- ↑ Enterprise JavaBeans Fundamentals: http://java.sun.com/developer/onlineTraining/EJBIntro/EJBIntro.html
- ↑ EJB Transaction: http://www.ucertify.com/article/ejb-transaction.html
- ↑ Injection of DataSource Example: http://openejb.apache.org/3.0/injection-of-datasource-example.html
- ↑ Creating and Using Contexts and Dependency Injection (CDI) Events: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/CDI_Events/cdi_events.html
- ↑ EJB Backend with NetBeans RCP Frontend on Maven: http://netbeans.dzone.com/ejb-backend-netbeans-rcp
- ↑ The case against annotations: https://blog.softwaremill.com/the-case-against-annotations-4b2fb170ed67
- ↑ An Introduction to Annotations and Annotation Processing in Java: https://reflectoring.io/java-annotation-processing/
- ↑ JNLP spec: http://java.sun.com/javase/technologies/desktop/javawebstart/download-spec.html
- ↑ Java Network Launch Protocol (JNLP) Support: http://www.oracle.com/technetwork/java/javase/index-142562.html#EXAMPLES_WORLDWIND
- ↑ JNLP API Examples: http://docs.oracle.com/javase/1.5.0/docs/guide/javaws/developersguide/examples.html
- ↑ Old link for JNLP demos: http://java.sun.com/javase/technologies/desktop/javawebstart/demos.html (*DOWN*)
- ↑ OpenJNLP: https://sourceforge.net/projects/openjnlp/
- ↑ Deploying Software with JNLP and Java Web Start: https://www.oracle.com/technical-resources/articles/javase/ds-jnlp-javawebstart.html
- ↑ What is Java Web Start and how is it launched? : https://java.com/en/download/help/java_webstart.html
- ↑ Running a Java Web Start Application: https://docs.oracle.com/javase/tutorial/deployment/webstart/running.html
- ↑ Deploying a Java Web Start Application: https://docs.oracle.com/javase/tutorial/deployment/webstart/deploying.html
- ↑ Java Web Start & JNLP: http://www.programix.com/JavaWebStart/JavaWebStartPresentation.html
- ↑ Java WebStart Is Dead -- What Should We Do Now?: http://www.slideshare.net/HendrikEbbers/java-webstart-is-dead-what-should-we-do-now
- ↑ Java Web Start will die! -- OpenWebStart in inubation: https://dev.karakun.com/webstart/
- ↑ What to do when Java SE 11 removes JNLP: https://opensource.com/article/19/4/migrating-jnlp-java-se-11
- ↑ 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)
- ↑ Structure of the JNLP file: https://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/jnlpFileSyntax.html
- ↑ Installing a Java Application as a Windows Service: http://dzone.com/articles/installing-a-java-application-as-a-windows-service
- ↑ What is the status of SwingLabs (SwingX) post acquisition: https://stackoverflow.com/questions/6818528/what-is-the-status-of-swinglabs-swingx-post-acquisition
- ↑ swing-bug 0.4 -- Making JCarousel sexier with Effects: http://web.archive.org/web/20071015205235/http://blogofbug.com/2007/03/
- ↑ 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/
- ↑ 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/
- ↑ 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/
- ↑ : http://web.archive.org/web/20071205015241/http://www.blogofbug.com/2007/03/28/janimatedlist-minor-change-demo-source-code/
- ↑ BlogOfBug -- Carousel Menu (a la Apple TV): http://web.archive.org/web/20071215200236/http://www.blogofbug.com/2007/01/
- ↑ 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/
- ↑ 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/
- ↑ BlogOfBug -- Java Carousel Part 1 - Layout and Animation: http://web.archive.org/web/20071015205222/http://blogofbug.com/2006/12/#post-27
- ↑ BlogOfBug -- Java Dock Component: http://web.archive.org/web/20070705084521/http://www.blogofbug.com/2007/01/11/java-dock-component/
- ↑ jlGUI -- Java Music Player: http://www.javazoom.net/jlgui/documents.html (Winamp clone in Java)
- ↑ Griffon framework: http://griffon-framework.org/ (multi-paradigm Desktop Application framework inspired by Grails for Groovy-based WebApps)
- ↑ How to center a Swing frame or dialog: http://www.java2s.com/Code/Java/Swing-JFC/Howtocenteraframeordialog.htm
- ↑ A Visual Guide to Layout Managers: https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html
- ↑ Swing -- Nimbus Cross-platform Look & Feel: https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html
- ↑ Handling Images in a Java GUI Application: http://netbeans.org/kb/docs/java/gui-image-display.html
- ↑ Designing an Advanced Java Form Using the GridBag Customizer: http://netbeans.org/kb/docs/java/gbcustomizer-advanced.html?intcmp=925655
- ↑ Connecting to Oracle Database from NetBeans IDE 7.0: http://netbeans.org/kb/docs/ide/oracle-db.html?intcmp=925655
- ↑ How do I add key listener event handler to JTextField?: http://www.kodejava.org/examples/224.html
- ↑ React to the ENTER key in a Textfield: http://www.rgagnon.com/javadetails/java-0253.html
- ↑ Programmatically clicking a GUI button in Java Swing: http://stackoverflow.com/questions/5109274/programmatically-clicking-a-gui-button-in-java-swing
- ↑ 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
- ↑ Minesweeper In Java (Swing + AWT): https://www.tutorialflow.com/generalexamples/minesweeper-in-java/
- ↑ Java Programming Tutorial -- Programming Graphical User Interface (GUI): http://www.ntu.edu.sg/home/ehchua/programming/java/j4a_gui.html
- ↑ What Future Java Releases Mean for Legacy Desktop Apps: http://dzone.com/articles/what-the-future-java-releases-will-mean-for-legacy
- ↑ 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
- ↑ ON-SCREEN KEYBOARD FOR YOUR JAVA SWING SOFTWARE: http://www.mindfusion.eu/java-keyboard.html
- ↑ Introduction to Event Listeners: http://docs.oracle.com/javase/tutorial/uiswing/events/intro.html
- ↑ Swing CardLayout: help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.wb.swing.doc.user%2Fhtml%2Flayoutmanagers%2Fswing%2Fcardlayout.html
- ↑ How to add row in JTable?: https://stackoverflow.com/questions/3549206/how-to-add-row-in-jtable
- ↑ A JButton listener example: https://alvinalexander.com/java/jbutton-listener-pressed-actionlistener
- ↑ JPanel doesn't update until resize Jframe: https://stackoverflow.com/questions/11069807/jpanel-doesnt-update-until-resize-jframe
- ↑ 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
- ↑ Check valid enum values before using enum: https://stackoverflow.com/questions/1509614/check-valid-enum-values-before-using-enum/2546726#2546726
- ↑ Anonymous Classes in Java: https://www.baeldung.com/java-anonymous-classes
- ↑ [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
- ↑ The state of JVM desktop frameworks - intro: https://blog.frankel.ch/state-jvm-desktop-frameworks/1/
- ↑ The state of JVM desktop frameworks - Swing: https://blog.frankel.ch/state-jvm-desktop-frameworks/2/ | SRC
- ↑ JavaFX: http://javafx.com/samples/index.html
- ↑ 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)
- ↑ Why and when you should use JPA: https://vladmihalcea.com/why-and-when-use-jpa/
- ↑ JavaEE 5+ -- EntityManager Interface: https://docs.oracle.com/javaee/5/tutorial/doc/bnbqw.html#bnbqx
- ↑ Using a Data Source with JPA (VIDEO): https://www.youtube.com/watch?v=dl30p1j-Wbw
- ↑ Using EJB Lite and JPA in a Java SE Application: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/EJBLiteAndJPAInJavaSE/EJBLiteAndJPAInJavaSE.html
- ↑ Looking Forward to JPA 2.0 -- What's New: http://java.dzone.com/articles/looking-forward-jpa-20
- ↑ Looking Forward To JPA 2.0 - Part 2: http://java.dzone.com/articles/looking-forward-to-jpa-20-part
- ↑ 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
- ↑ The abstract schema type is unknown: https://stackoverflow.com/questions/18089699/the-abstract-schema-type-is-unknown
- ↑ PRO EJB 3.0 attention Mike Keith and Merrick Schincariol: https://coderanch.com/t/318551/java/PRO-EJB-attention-Mike-Keith
- ↑ Managing databases with Eclipse and the Database Tools tutorial: https://www.vogella.com/tutorials/EclipseDataToolsPlatform/article.html
- ↑ 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)
- ↑ 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
- ↑ The Ultimate Guide on Client-Generated IDs in JPA Entities: https://www.jpa-buddy.com/blog/the-ultimate-guide-on-client/
- ↑ The Ultimate Guide on Composite IDs in JPA Entities: https://www.jpa-buddy.com/blog/the-ultimate-guide-on-composite-ids-in-jpa-entities/
- ↑ Object-Relational Mappings - Generating JPA Entities: http://docs.oracle.com/cd/E14545_01/help/oracle.eclipse.tools.orm.doc/html/files/genJPAEntities.html
- ↑ 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
- ↑ Can I auto create database from JPA?: http://ubuntuforums.org/showthread.php?t=1023198
- ↑ JPQL tutorial: https://thoughts-on-java.org/jpql/
- ↑ A Beginner's Guide to JPA and Hibernate Cascade Types: http://java.dzone.com/articles/beginners-guide-jpa-and
- ↑ 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/
- ↑ Java EE 7 - Applying JPA to Stored Procedures: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/Stored_Proc/StoredProcedures.html
- ↑ A Beginner’s Guide to JPA’s "persistence.xml": https://www.thoughts-on-java.org/jpa-persistence-xml/
- ↑ Optimistic locking in JPA/Hibernate: https://blog.arnoldgalovics.com/optimistic-locking-in-jpa-hibernate/
- ↑ 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
- ↑ 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/
- ↑ What is the Difference Between JPA and Hibernate?: http://www.javaguides.net/2018/12/what-is-difference-between-jpa-and-hibernate.html
- ↑ What is the Difference Between OpenJPA, EclipseLink & Hibernate?: https://thoughts-on-java.org/difference-jpa-hibernate-eclipselink/
- ↑ JPA tutorials: http://www.javaguides.net/p/jpa-tutorial-java-persistence-api.html
- ↑ Introduction to JPA & Hibernate including examples: https://www.slideshare.net/ecosio/introduction-to-jpa-and-hibernate-using
- ↑ Java Persistence API (JPA) Step By Step (SLIDES): https://www.slideshare.net/junyuo/java-persistence-api-jpa-step-by-step-presentation
- ↑ JPA Performance Benchmark (JPAB): https://www.jpab.org
- ↑ JPA Join Types: https://www.baeldung.com/jpa-join-types
- ↑ JPA & SQL injection prevention: https://www.baeldung.com/sql-injection
- ↑ CapCourse #161 -- The Java Persistence API: http://www.capcourse.com/161_Outline_21.html | DOWNLOAD
- ↑ CapCourse #162 -- Java EE Persistence: http://www.capcourse.com/162_Outline_21.html
- ↑ A JPQL Terminal: http://www.capcourse.com/Library/JPQLTerminal/index.html
- ↑ JSF, JPA, and EJB: http://www.capcourse.com/Library/JSF+EJB/JSF+EJB_50.pdf
- ↑ Configuring and mapping database tables to JPA entities: https://nullbeans.com/configuring-and-mapping-database-tables-to-jpa-entity-classes/
- ↑ JPA Tutorial - JPA OneToMany Mapping Table Example: http://www.java2s.com/Tutorials/Java/JPA/0810__JPA_OneToMany_Mapping_Table.htm
- ↑ JPA Set Mapping: https://www.javatpoint.com/jpa-set-mapping
- ↑ 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/
- ↑ 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/
- ↑ @ManyToOne JPA & Hibernate association best practices: https://vladmihalcea.com/manytoone-jpa-hibernate/
- ↑ JPA -- WHERE clause (JPQL / Criteria API): https://www.objectdb.com/java/jpa/query/jpql/where
- ↑ JPA counting its subclass for one to many relationship: https://stackoverflow.com/questions/41109769/jpa-counting-its-subclass-for-one-to-many-relationship
- ↑ JPA Tutorial - JPA Query COUNT Example: http://www.java2s.com/Tutorials/Java/JPA/4325__JPA_Query_In_OneToMany.htm
- ↑ JPA Tutorial - JPA Query COUNT Example: http://www.java2s.com/Tutorials/Java/JPA/4510__JPA_Query_COUNT.htm
- ↑ JPA Tutorial - JPA OneToMany Mapping Table Example: http://www.java2s.com/Tutorials/Java/JPA/0810__JPA_OneToMany_Mapping_Table.htm
- ↑ JPA Tutorial - JPA Query Date Parameters Example: http://www.java2s.com/Tutorials/Java/JPA/4030__JPA_Query_Date_Parameters.htm
- ↑ Ternary Associations – Modelling Associations between 3 Entities: https://thorben-janssen.com/ternary-associations/
- ↑ How to map Date and Timestamp with JPA and Hibernate: https://vladmihalcea.com/date-timestamp-jpa-hibernate/
- ↑ How to map a PostgreSQL ARRAY (enum) to a Java List with JPA and Hibernate: https://vladmihalcea.com/postgresql-array-java-list/
- ↑ JPA Criteria Metamodel Generation and Usage Guide: https://vladmihalcea.com/jpa-criteria-metamodel/
- ↑ How to change an attribute before INSERT and UPDATE: https://thorben-janssen.com/change-before-persist/
- ↑ The best way to use Java 14+ Records with JPA & Hibernate: https://vladmihalcea.com/java-records-jpa-hibernate/
- ↑ Java Records – How to use them with Hibernate and JPA: https://thorben-janssen.com/java-records-hibernate-jpa/
- ↑ JDK 14 Records for Spring: https://dzone.com/articles/jdk-14-records-for-spring-devs
- ↑ Why Java's Records Are Better* Than Lombok's @Data and Kotlin's Data Classes: https://nipafx.dev/java-record-semantics/
- ↑ Spring Data JPA -- Query Projections: https://thorben-janssen.com/spring-data-jpa-query-projections/
- ↑ 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
- ↑ JPA AttributeConverter – A Beginner’s Guide: https://vladmihalcea.com/jpa-attributeconverter/
- ↑ JPA "Association Fetching" validator: https://vladmihalcea.com/jpa-association-fetching-validator/
- ↑ Querying JPA Entities with JPQL and Native SQL: https://www.oracle.com/technical-resources/articles/vasiliev-jpql.html
- ↑ Migrating from Hibernate Criteria Search API to JPA Criteria API: https://thorben-janssen.com/migration-criteria-api/
- ↑ Migrating from JPA 2.x to 3.0: https://thorben-janssen.com/migrating-jpa-2-x-to-3-0/
- ↑ Netbeans plugins -- Jeddict - JPA Modeler: http://plugins.netbeans.org/plugin/53057/jpa-modeler
- ↑ MinuteProject -- JPA1/JPA2 Swing Desktop GUI - Reverse Engineering Tool: https://javacodesamples.wordpress.com/2011/02/04/jpa2-reverse-engineering-tool/
- ↑ MinuteProject 4.x -- JPA2 -- Lazuly showcase: https://minuteproject.blogspot.com/2011/06/minuteproject-4-jpa2-lazuly-showcase.html
- ↑ IntelliJ -- JPA Buddy plugin: https://plugins.jetbrains.com/plugin/15075-jpa-buddy
- ↑ How to implement an AttributeConverter to support custom types: https://thorben-janssen.com/jpa-attribute-converter/
- ↑ JPA 2.0 - Why AccessType is Relevant: https://dzone.com/articles/12-feb-jpa-20-why-accesstype
- ↑ Persisting fast in database - JPA: https://medium.com/@jerolba/persisting-fast-in-database-1af4a281e3a
- ↑ Can we use JPA without Hibernate: https://stackoverflow.com/questions/15487631/can-we-use-jpa-without-hibernate
- ↑ http://www.hibernate.org/license
- ↑ Hibernate Made Easy: http://jpa.ezhibernate.com/Javacode/learn.jsp?tutorial=24goodhibernatejpabook
- ↑ @DiscriminatorFormular – Modeling Single Table Inheritance Without a Discriminator: https://thorben-janssen.com/discriminatorformular/
- ↑ JPetStore lives on as the official example of typical usage of iBatis framework: http://sourceforge.net/projects/ibatisjpetstore/
- ↑ IBATIS: http://ibatis.apache.org/ (RETIRED)
- ↑ EclipseLink -- Annotation Extensions Reference: https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/annotations_ref.htm#CACGCEIJ
- ↑ JPA Entities and/vs DTOs: https://stackoverflow.com/questions/5216633/jpa-entities-and-vs-dtos
- ↑ 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/
- ↑ Entities or DTOs – When should you use which projection?: https://thoughts-on-java.org/entities-dtos-use-projection/
- ↑ 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
- ↑ 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
- ↑ Alternatives to DTO: https://blog.frankel.ch/alternatives-dto/ (Object Serialization/Deserialization; JPA projection; Jackson, other libs & manual data Export as RDF/XML/JSON/CSV/TSV/etc; GraphQL and/or "API Gateways" to Microservices)
- ↑ DataNucleus Access Platform 3.1: http://www.datanucleus.org/products/accessplatform_3_1/index.html
- ↑ CXF module-info.java package names (for use with Java 1.9+): https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=85475385
- ↑ Embracing a Modular Java Platform -- Apache CXF on Java 10: https://dzone.com/articles/embracing-modular-java-platform-apache-cxf-on-java
- ↑ ROME RSS Parser (former Sun page): https://web.archive.org/web/20070706121841/https://rome.dev.java.net/
- ↑ jEnv docs -- Manage your Java environment: https://www.jenv.be
- ↑ Configuring jEnv the "right" way: https://developer.bring.com/blog/configuring-jenv-the-right-way/
- ↑ Managing Multiple JDK Installations With jEnv: https://reflectoring.io/manage-jdks-with-jenv/
- ↑ Build Java Application for Mobile Devices: http://www.youtube.com/watch?v=RZJQlIxusq
- ↑ Will Google's Android ever support .NET: http://stackoverflow.com/questions/214615/will-google-android-ever-support-net/214632#214632
- ↑ The Most Popular Java Tools for Every Phase of Development: http://dzone.com/articles/research-most-popular-java-tools-for-every-phase-o
- ↑ 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
- ↑ JDK 7 -- javadoc - The Java API Documentation Generator: https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#author
- ↑ How to Write Doc Comments for the Javadoc Tool: https://www.oracle.com/technetwork/articles/java/index-137868.html
- ↑ How to write, generate and use Javadoc in Eclipse?: https://www.tutorialspoint.com/How-to-write-generate-and-use-Javadoc-in-Eclipse
- ↑ java.util.formatter: https://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html (good JavaDoc example)
- ↑ 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)
- ↑ 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)
- ↑ Good example of Javadoc: https://stackoverflow.com/questions/1079713/good-example-of-javadoc
- ↑ How to Write Doc Comments for the Javadoc Tool: http://java.sun.com/j2se/javadoc/writingdoccomments/ (old Sun link)
- ↑ Usage of @see in JavaDoc?: https://stackoverflow.com/questions/5011291/usage-of-see-in-javadoc
- ↑ Javadoc Tutorial: http://www.mcs.csueastbay.edu/~billard/se/cs3340/ex7/javadoctutorial.html
- ↑ 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
- ↑ 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
- ↑ 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
- ↑ Can't generate javadoc in eclipse: https://stackoverflow.com/questions/15434955/cant-generate-javadoc-in-eclipse
- ↑ JDK - Collections class (clean Javadoc example): http://www.docjar.net/html/api/java/util/Collections.java.html
- ↑ Apache Ant - DefaultLogger (clean Javadoc example): http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/DefaultLogger.java?view=co
- ↑ Apache Ant - DirectoryScanner (clean Javadoc example): http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/DirectoryScanner.java?view=markup
- ↑ Java - Documentation Comments: https://www.tutorialspoint.com/java/java_documentation.htm
- ↑ How Do I Document Packages in Java?: https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java
- ↑ How to insert creation date in JavaDoc: https://stackoverflow.com/questions/29380477/how-to-insert-creation-date-in-javadoc
- ↑ 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)
- ↑ Inheriting Javadoc Method Comments: https://dzone.com/articles/inheriting-javadoc-method-comments (using the {@inheritDoc} template)
- ↑ 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)
- ↑ Linking to an external URL in Javadoc?: https://stackoverflow.com/questions/1082050/linking-to-an-external-url-in-javadoc
- ↑ 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)
- ↑ New Javadoc Tags @apiNote, @implSpec, and @implNote: https://nipafx.dev/javadoc-tags-apiNote-implSpec-implNote/
- ↑ Linking to an External URL in Javadoc: https://www.baeldung.com/javadoc-linking-external-url
- ↑ Add a Reference to Method Parameters in Javadoc: https://www.baeldung.com/javadoc-reference-method-parameter
- ↑ JDK 18 -- Code Snippets in Java API Documentation: https://marxsoftware.blogspot.com/2021/09/jdk-18-code-snippets-in-java-api.html
- ↑ Sip of Java - JavaDoc Code Snippet API: https://inside.java/2022/04/04/sip46/
- ↑ Manage multiple Java SDKs with SDKMAN! with ease: https://blog.codeleak.pl/2020/01/manage-multiple-java-sdks-with-sdkman.html
- ↑ The JVM Architecture Explained: http://dzone.com/articles/jvm-architecture-explained
- ↑ Introduction to Java Bytecode: https://dzone.com/articles/introduction-to-java-bytecode
- ↑ Snyk JVM Ecosystem Report 2021 Finds Increased Usage of Java 11 in Production: https://www.infoq.com/news/2021/07/snyk-jvm-2021/
- ↑ State of the Java Ecosystem Report from New Relic: https://www.infoq.com/news/2022/05/java-ecosystem-report-2022/
- ↑ A Picture of Java in 2020: https://blog.jetbrains.com/idea/2020/09/a-picture-of-java-in-2020/
- ↑ The State of Java in 2019: https://www.baeldung.com/java-in-2019
- ↑ JVM Ecosystem Report 2018: https://snyk.io/blog/jvm-ecosystem-report-2018 | PDF
- ↑ The State of Java in 2018: https://stackify.com/java-2018/
- ↑ 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
- ↑ Invoking a Private Method in Java: https://www.baeldung.com/java-call-private-method
- ↑ Why doGet(), doPost() Methods are “protected”?: https://stackoverflow.com/questions/14556304/why-doget-dopost-methods-are-protected
- ↑ Oracle Java specs -- Chapter 4 - The class File Format: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html
- ↑ Java – How to list all files in a directory?: https://www.mkyong.com/java/java-how-to-list-all-files-in-a-directory/
- ↑ Java, List only subdirectories from a directory, not files: https://stackoverflow.com/questions/5125242/java-list-only-subdirectories-from-a-directory-not-files/5125258
- ↑ Java NIO, get all subfolders of some folder: https://stackoverflow.com/questions/38269073/java-nio-get-all-subfolders-of-some-folder
- ↑ Quickly creating URIs with UriBuilder (BuilderPattern): https://blog.sebastian-daschner.com/entries/creating-uris-with-uribuilder
- ↑ Java SE 6 API Docs - Properties class: http://docs.oracle.com/javase/6/docs/api/java/util/Properties.html
- ↑ 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
- ↑ Java's “os.name” for Windows 10?: https://stackoverflow.com/questions/31909107/javas-os-name-for-windows-10
- ↑ StringBuffer to File - Need Example: https://coderanch.com/t/391312/java/StringBuffer-File
- ↑ How to use comparison operators like >, =, < on BigDecimal: https://stackoverflow.com/questions/34677644/how-to-use-comparison-operators-like-on-bigdecimal
- ↑ Arrays in Java: https://introcs.cs.princeton.edu/java/14array/
- ↑ Guava's Objects Class -- Equals, HashCode, and ToString: https://www.javaworld.com/article/2074417/guava-s-objects-class--equals--hashcode--and-tostring.html
- ↑ 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
- ↑ Java Program to Check if An Array Contains a Given Value: https://www.programiz.com/java-programming/examples/array-contains-value
- ↑ Java Recursion: https://www.programiz.com/java-programming/recursion
- ↑ Recursion in Java: https://www.javatpoint.com/recursion-in-java
- ↑ Java Fibonacci examples: https://www.mkyong.com/java/java-fibonacci-examples/
- ↑ Java - format double value as dollar amount: https://stackoverflow.com/questions/13791409/java-format-double-value-as-dollar-amount#13791422
- ↑ I need to convert an int variable to double: https://stackoverflow.com/questions/13252903/i-need-to-convert-an-int-variable-to-double
- ↑ Advanced Java Tutorial list: http://www.javacodegeeks.com/2015/09/advanced-java.html
- ↑ Invoke methods of an object using reflection: http://javadb.com/invoke-methods-of-an-object-using-reflection
- ↑ Java dynamic function (method) calling through Generics/Reflection: https://stackoverflow.com/questions/3050967/java-dynamic-function-calling
- ↑ 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
- ↑ Java is Pass-by-Value, Dammit!: http://www.javadude.com/articles/passbyvalue.htm
- ↑ 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
- ↑ Java Reflection example tutorial: https://www.journaldev.com/1789/java-reflection-example-tutorial
- ↑ Non-Repeating Random(s) http://www.dreamincode.net/code/snippet2165.htm
- ↑ Generate random numbers : http://technojeeves.com/joomla/index.php/free/65-generate-random-numbers
- ↑ Java Write To File: http://www.roseindia.net/java/example/java/io/java-write-to-file.shtml
- ↑ How to write to file in Java using BufferedWriter: https://beginnersbook.com/2014/01/how-to-write-to-file-in-java-using-bufferedwriter/
- ↑ Java – Write to File: https://howtodoinjava.com/java/io/java-write-to-file/
- ↑ 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
- ↑ How to convert InputStream to OutputStream in Java: https://attacomsian.com/blog/java-convert-inputstream-to-outputstream
- ↑ Managing Metadata (File and File Store Attributes): http://docs.oracle.com/javase/tutorial/essential/io/fileAttr.html
- ↑ 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
- ↑ 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
- ↑ Playing video (in Java) using JMF, JavaFX or VLCj: http://stackoverflow.com/questions/11097174/playing-video-using-jmf
- ↑ Is there a Java API for mp4 files?: http://stackoverflow.com/questions/3015393/is-there-a-java-api-for-mp4-files
- ↑ Inspect a video file with xuggler Java lib: https://examples.javacodegeeks.com/desktop-java/xuggler/inspect-a-video-file-with-xuggler/
- ↑ Extracting metadata of a Media files with JAVE: http://varuntayur.wordpress.com/2014/08/08/extracting-metadata-of-a-media-files-with-jave/
- ↑ How to Extract Meta-data from Media file in Android: http://mrbool.com/how-to-extract-meta-data-from-media-file-in-android/28130
- ↑ Getting Started with FFMPEG-Java: http://fmj-sf.net/ffmpeg-java/getting_started.php
- ↑ jNotify for file directory monitoring/change listening: http://stackoverflow.com/questions/4941869/directory-listener-in-java
- ↑ How to watch the file system for changes in Java 7 (JDK 7) : http://java.dzone.com/news/how-watch-file-system-changes
- ↑ https://web.archive.org/web/20110714194906/http://www.stripesframework.org/display/stripes/JQuery's+Uploadify+with+Stripes
- ↑ 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/
- ↑ AJAX file upload example with JSP: https://web.archive.org/web/20120229040346/http://www.devedup.com/ajaxfileupload/
- ↑ Handling Form-based File Upload with Java Servlet or JSP (that supports WAP): http://www.developershome.com/wap/wapUpload/wap_uploacd.asp?page=jsp
- ↑ Java regular expression patterns: http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html#sum
- ↑ 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/
- ↑ When to use AtomicReference in Java?: https://stackoverflow.com/questions/3964211/when-to-use-atomicreference-in-java
- ↑ 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
- ↑ Java Version 1.5.0 or 5.0?: https://docs.oracle.com/javase/1.5.0/docs/relnotes/version-5.0.html
- ↑ Introduction to Java 5 (SLIDES): https://www.slideshare.net/sandeeprawat94/introduction-to-java-64792837
- ↑ 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
- ↑ 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)
- ↑ Java -- Curiosity Mars rover: https://twitter.com/java/status/777618329749954562
- ↑ JDK & macOS: https://dzone.com/articles/jdk-amp-macos
- ↑ MacOS Java version handling script: https://gist.github.com/dbuschman7/6688de9c00371766599746d747a11f89
- ↑ 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/
- ↑ Java Application Remote Debugging: https://www.baeldung.com/java-application-remote-debugging
- ↑ jmap - Memory Map: https://docs.oracle.com/javase/6/docs/technotes/tools/share/jmap.html
- ↑ 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
- ↑ How to Set Classpath for Java on Windows and Linux: http://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html
- ↑ Error -- Could not find or load main class: https://stackoverflow.com/questions/7485670/error-could-not-find-or-load-main-class
- ↑ 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
- ↑ Oracle docs -- Defining Methods: https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html
- ↑ Overriding vs. Overloading in Java: https://www.programcreek.com/2009/02/overriding-and-overloading-in-java-with-examples/
- ↑ Object Ordering: https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html
- ↑ Java Socket Programming Examples: https://cs.lmu.edu/~ray/notes/javanetexamples/
- ↑ Fixing 7 Common Java Exception Handling Mistakes: https://dzone.com/articles/fixing-7-common-java-exception-handling-mistakes
- ↑ 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
- ↑ Best Practice -- Catching and re-throwing Java Exceptions: https://www.ibm.com/support/pages/best-practice-catching-and-re-throwing-java-exceptions
- ↑ SYNTACTICAL ERRORS in Java: https://www.dummies.com/programming/java/syntactical-errors-in-java/
- ↑ Exception Handling & Assertion: http:/www.ntu.edu.sg/home/ehchua/programming/java/j5a_exceptionassert.html
- ↑ Exceptions in Java: https://www.geeksforgeeks.org/exceptions-in-java/
- ↑ Java NullPointerException Avoidance and Enhancement Tactics: https://marxsoftware.blogspot.com/2021/02/java-nullpointerexception-avoidance-and.html
- ↑ 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
- ↑ 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
- ↑ How to Avoid NullPointerExceptions (NPE)?: http://isagoksu.com/2009/development/java/how-to-avoid-nullpointerexceptions-npe/
- ↑ 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
- ↑ 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
- ↑ Converting a "Stack Trace" to a String in Java: https://www.baeldung.com/java-stacktrace-to-string
- ↑ 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
- ↑ Java.io.RandomAccessFile.close() Method: http://www.tutorialspoint.com/java/io/randomaccessfile_close.htm
- ↑ Java BigInteger example: http://www.roseindia.net/java/java-biginteger/java-biginteger.shtml
- ↑ BigDecimal .vs. BigInteger: https://www.baeldung.com/java-bigdecimal-biginteger
- ↑ Why You Should Never Use Float and Double for Monetary Calculations: https://dzone.com/articles/never-use-float-and-double-for-monetary-calculatio
- ↑ Double vs. BigDecimal?: https://stackoverflow.com/questions/3413448/double-vs-bigdecimal
- ↑ Caution -- Double to BigDecimal in Java: https://www.javaworld.com/article/2073176/caution--double-to-bigdecimal-in-java.html
- ↑ What Every Computer Scientist Should Know About Floating-Point Arithmetic: https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
See Also
Applet | Servlet | JEE/JSP | J2ME | JavaFX | JavaScript | Android | Kotlin | Groovy | Scala | JUnit