diff --git a/java.html.markdown b/java.html.markdown
index 57c10390..6487d862 100644
--- a/java.html.markdown
+++ b/java.html.markdown
@@ -1,20 +1,21 @@
---
language: java
contributors:
- - ["Jake Prather", "http://github.com/JakeHP"]
- - ["Jakukyo Friel", "http://weakish.github.io"]
- - ["Madison Dickson", "http://github.com/mix3d"]
- - ["Simon Morgan", "http://sjm.io/"]
- - ["Zachary Ferguson", "http://github.com/zfergus2"]
- - ["Cameron Schermerhorn", "http://github.com/cschermerhorn"]
+ - ["Jake Prather", "https://github.com/JakeHP"]
+ - ["Jakukyo Friel", "https://weakish.github.io"]
+ - ["Madison Dickson", "https://github.com/mix3d"]
+ - ["Simon Morgan", "https://sjm.io/"]
+ - ["Zachary Ferguson", "https://github.com/zfergus2"]
+ - ["Cameron Schermerhorn", "https://github.com/cschermerhorn"]
- ["Rachel Stiyer", "https://github.com/rstiyer"]
- - ["Michael Dähnert", "http://github.com/JaXt0r"]
+ - ["Michael Dähnert", "https://github.com/JaXt0r"]
+ - ["Rob Rose", "https://github.com/RobRoseKnows"]
filename: LearnJava.java
---
Java is a general-purpose, concurrent, class-based, object-oriented computer
programming language.
-[Read more here.](http://docs.oracle.com/javase/tutorial/java/)
+[Read more here.](https://docs.oracle.com/javase/tutorial/java/)
```java
// Single-line comments start with //
@@ -389,7 +390,32 @@ public class LearnJava {
System.out.println("You answered " + myAnswer);
break;
}
-
+
+
+ // Try-with-resources (Java 7+)
+ // Try-catch-finally statements work as expected in Java but in Java 7+
+ // the try-with-resources statement is also available. Try-with-resources
+ // simplifies try-catch-finally statements be closing resources
+ // automatically.
+
+ // In order to use a try-with-resources, include a an instance of a class
+ // in the try statement. The class must implement java.lang.AutoCloseable.
+ try(BufferedReader br = new BufferedReader(new FileReader("foo.txt"))) {
+ // You can attempt to do something that could throw an exception.
+ System.out.println(br.readLine());
+ // In Java 7, the resource will always be closed, even if it throws
+ // an Exception.
+ } catch (Exception ex) {
+ //The resource will be closed before the catch statement executes.
+ System.out.println("readLine() failed.");
+ }
+ // No need for a finally statement in this case, the BufferedReader is
+ // already closed. This can be used to avoid certain edge cases where
+ // a finally statement might not be called.
+ // To learn more:
+ // https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html
+
+
// Conditional Shorthand
// You can use the '?' operator for quick assignments or logic forks.
// Reads as "If (statement) is true, use , otherwise, use
@@ -418,7 +444,7 @@ public class LearnJava {
// Typecasting
// You can also cast Java objects, there's a lot of details and deals
// with some more intermediate concepts. Feel free to check it out here:
- // http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
+ // https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
///////////////////////////////////////
// Classes And Functions
@@ -784,22 +810,22 @@ The links provided here below are just to get an understanding of the topic, fee
**Official Oracle Guides**:
-* [Java Tutorial Trail from Sun / Oracle](http://docs.oracle.com/javase/tutorial/index.html)
+* [Java Tutorial Trail from Sun / Oracle](https://docs.oracle.com/javase/tutorial/index.html)
-* [Java Access level modifiers](http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)
+* [Java Access level modifiers](https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)
-* [Object-Oriented Programming Concepts](http://docs.oracle.com/javase/tutorial/java/concepts/index.html):
- * [Inheritance](http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html)
- * [Polymorphism](http://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html)
- * [Abstraction](http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
+* [Object-Oriented Programming Concepts](https://docs.oracle.com/javase/tutorial/java/concepts/index.html):
+ * [Inheritance](https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html)
+ * [Polymorphism](https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html)
+ * [Abstraction](https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
-* [Exceptions](http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html)
+* [Exceptions](https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html)
-* [Interfaces](http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html)
+* [Interfaces](https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html)
-* [Generics](http://docs.oracle.com/javase/tutorial/java/generics/index.html)
+* [Generics](https://docs.oracle.com/javase/tutorial/java/generics/index.html)
-* [Java Code Conventions](http://www.oracle.com/technetwork/java/codeconvtoc-136057.html)
+* [Java Code Conventions](https://www.oracle.com/technetwork/java/codeconvtoc-136057.html)
**Online Practice and Tutorials**
@@ -813,6 +839,6 @@ The links provided here below are just to get an understanding of the topic, fee
* [Thinking in Java](http://www.mindview.net/Books/TIJ/)
-* [Objects First with Java](http://www.amazon.com/Objects-First-Java-Practical-Introduction/dp/0132492660)
+* [Objects First with Java](https://www.amazon.com/Objects-First-Java-Practical-Introduction/dp/0132492660)
-* [Java The Complete Reference](http://www.amazon.com/gp/product/0071606300)
+* [Java The Complete Reference](https://www.amazon.com/gp/product/0071606300)