Java

The purpose of this page is to serve as a reference for the Java-curious user, to provide code to those interested, and to shameless reference our Java GitHub repository.  This page contains a basic description of the general and technical aspects of the Java programming language, all the links an interested beginner would need, and a selection of more advanced Java snippets:

 

Java 101

We recognize that the Java resources available online are much better than what we can provide, therefore, we will simply outline the general and technical aspects of the  Java programming language and then provide links to, what we consider are the better Java resources.  The facts of Java:

Uses: Application, Mobile, Web, Business
Website: java.com
Get Started: Setting Up and Getting Started in Java Programming
Download: java.com/download
Documents: docs.oracle.com/java
Creator: James Gosling
First Released:
January 23, 1996
Implementation: Mostly Compiled with some Interpreted
Type Safety: Strong
Type System: Explicit
Type Checking: Static
Imperative: Yes
Aspect Oriented: Yes
Object Oriented: Yes
Functional: Yes
Procedural: Yes
Generic: Yes
Reflective: Yes
Event Driven: Yes
Standardized: Yes (Java Language Specification)
Failsafe I/O: Yes
Garbage Collected: Yes

As programmers, we are obligated to refer to the official documentation; and we suggest that new users try Oracle’s documentation.  In the cases where the documentation is well formatted, written, and maintained (we’re looking at you Python), this usually works.  If, for whatever reason, you are unable to stomach the Oracle documentation, or for those whom identify as the “visual” type, there is an abundance of online video and learning platforms that also provide proven Java content. Several resources we recommend, and occasionally utilize, are YouTube and the online courses at Udemy.  YouTubers, such as Derek Banas, are great for a very fast overviews of a language or technology, where online courses like Udemy can have classes spanning dozens of hours.  Finally, if new Java users want to develop in more than a text editor, then hunting for a Java  Integrated Development Environment (IDE) may cause overchoice due to the large number of IDEs available.  Java IDEs contains a lengthy list of possibilities; in the past we have used Eclipse and NetBeans, although currently we use IntelliJ CE (and are very satisfied with all it has to offer).

 

Java Review

As briefly outlined on the Projects page, mpettersson has a Java repository, named JavaReview publicly available on GitHub.  The two main components of this repo are; first, a thorough review of basic Java syntax, and second, a series of programming questions and corresponding answers implemented in Java. The present majority of the programming questions are from the Cracking the Coding Interview book by Gayle Laakmann McDowell, however, more will be included from different sources in the future.

For the full repository, specifically the programming interview questions see github.com/mpettersson/JavaReview, or for the review component, continue reading below.

 

Java.java

This monstrous file, packed full of classes, is our Java review.  Some of the code and topics demonstrated include:

  • Types
  • Control Flow
  • I/O
  • Provided Data Structures
  • Exception Handeling
  • Classes
  • Generics
  • Lambda Expressions
  • Streams
  • And Concurrency

In addition to being a simple Java language review, Java.java can be used as a concise tutorial for experienced programmers in other languages that are new to Java.  The majority of the time, we simply use it as a single source of reference when we experience brain flatulence.   Honestly, it ain’t pretty, but it works for us.

 

Java Resources

The following are helpful tutorials, tools, code and miscellaneous Java resources:

Java Interview Questions and Answers – List of must-know (Java) concepts, rules, and principles.
Programming Methodology – A Stanford Java-based course on the fundamentals of programming.
ExpectIt – Yet another expect for Java.
log4j – Java-based logging utility.
TestNG – A testing framework inspired from JUnit and NUnit, but wait, there’s more…
JUnit – A framework to write repeatable tests, an instance of the xUnit architecture.
JUnit Cookbook – A cookbook for writing and organizing tests using JUnit.
JSch – A pure Java implementation of SSH2.
Apache Commons Codec – Encoders and decoders; such as Base64, Hex, Phonetic and URLs.

 

As always, please contact us with comments, concerns, questions, etc. about Java!

Leave a Reply