Java: Difference between revisions

From David's Wiki
Line 16: Line 16:
[https://stackoverflow.com/questions/28329419/when-does-a-local-string-scanner-get-garbage-collected StackOverflow Reference]<br>
[https://stackoverflow.com/questions/28329419/when-does-a-local-string-scanner-get-garbage-collected StackOverflow Reference]<br>
[https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html AutoCloseable Java 8]<br>
[https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html AutoCloseable Java 8]<br>
Since Java does not have destructors and thus no RAII objects, you will need to close anything you open manually.<br>
Since Java does not have destructors and thus no RAII objects, you will need to close any resources you open manually.<br>
One way to automate this is to use autocloseable classes introduced in Java 7.<br>
One way to automate this is to use autocloseable classes introduced in Java 7.<br>
These classes, which implement that AutoCloseable interface, can be wrapped in a try block
These classes, which implement that AutoCloseable interface, can be wrapped in a try block

Revision as of 13:16, 1 November 2019

Java is a popular object-oriented programming language taught in many high-schools and introductory computer science courses. Java programs (.java) are compiled into Java bytecode (.class) files which are then interpreted by the Java virtual machine (JVM). Java programs and libraries (both .java and .class files) can be bundled into a Java archive (.jar) file. These are zip files with a manifest. To run Java programs, you will need to get the JVM by installing the Java runtime environment (JRE) or the Java development kit (JDK).

Usage

Installation

I recommend downloading an IDE such as Intellij IDEA.

Linux

I recommend using OpenJDK.
Link

Features

AutoCloseable

StackOverflow Reference
AutoCloseable Java 8
Since Java does not have destructors and thus no RAII objects, you will need to close any resources you open manually.
One way to automate this is to use autocloseable classes introduced in Java 7.
These classes, which implement that AutoCloseable interface, can be wrapped in a try block This is similar to using in Python and C#.

try (Scanner scanner = new Scanner(s)) {
    while (scanner.hasNext()) {
        // do something
    }
} // close will be implicitly called