Final Exam: Apprentice Developer will test your knowledge and application of the topics presented throughout the Apprentice Developer track of the Skillsoft Aspire Apprentice Developer to Journeyman Developer Journey.
appropriately override the .toString method provided by the Object base class
combine multiple independent catch blocks using the | operator
copy a character file as a sequence of characters using the FileReader and FileReader classes
correctly chain constructors to achieve code reuse
correctly initialize objects of inner classes
correctly initialize objects of static nested classes
correctly invoke a method that throws an exception of a checked exception type
correctly use the throws clause while defining method signatures
create a custom exception object by extending the base class Exception, and throw an instance of this exception from your code
create and use enums (enumerated data types) in Java
create files using both the legacy java.io as well as the modern java.nio namespaces
create String objects using different input arguments and forms of memory allocation
create wrapper objects such as Integer, Float, etc. to encapsulate primitive (non-object) data types
customize IntelliJ to incorporate your individual preferences
define and invoke a parameterized constructor to instantiate objects of a class
define and invoke constructors in classes to correctly initialize member variables
define and invoke getter and setter methods to access private member variables of a class from outside that class
define and invoke multiple constructors to instantiate objects of a class
describe and use the -=, *=, %= and %= self-assignment operators
differentiate between equality tests based on the == operator and .equals
enumerate differences between checked exceptions, runtime exceptions, and errors
enumerate the important built-in exception classes in Java
identify differences between primitive and object types in Java
identify the situations when divide-by-zero exceptions arise
identify use-cases for the unary increment and decrement operators
implement the Serializable interface in user-defined classes so that they can be written to and read from using ObjectOutputStream and ObjectInputStream object
install Java on a Unix or Mac system
install the Eclipse IDE on a Mac-based system
invoke static and non-static methods of a class
list the reasons for Java’s popularity
make use of method overloading in your programs
modify control flow in a program using the if construct
perform conversions between variables of primitive types
perform operations such as copying and creating directories using the Files class in the java.nio namespace
perform operations such as copying files, checking for their existence, and deleting files using the Files class in the java.nio namespace
prematurely terminate loop execution using the break keyword
read a byte stream using the InputStream and FileInputStream classes
recognize how exceptions such as NullPointerException, NumberFormatException, and IndexOutOfBoundsException occur in code
recognize how variables of primitive types are governed by pass-by-value semantics in Java
recognize how variables of reference types are governed by pass-by-reference semantics in Java
recognize Java's class hierarchy for byte and character streams
recognize the exact semantics and limitations of the finally block
recognize the precise semantics of the try-with-resources construct in Java
recognize what member variables, static member variables, and member functions are
short-circuit execution of the current loop iteration using the continue keyword
throw an object of a built-in exception type in order to respond to an unexpected situation in a program
use enums (enumerated types) along with switch statements
use for loops to iteratively execute a block of code
use multiple independent catch blocks with a single try block
use nested if-else conditions to deal with mutually exclusive conditions
use strings in if-else constructs, relying on the .equals method and avoiding the == operator
use string variables in switch statements
use the DataOutputStream class to write primitive types and strings to byte streams
use the do-while loop control structure to ensure that the body of a loop is always executed at least once, regardless of the value of the loop variable
use the logical AND, logical OR, and logical negation operators
use the ObjectOutputStream class to write objects of any type to byte streams
use the StringBuffer object to perform string operations
use while loops to control the number of times a block of code executes based on the value of a specific expression
utilize both single-line as well as multi-line comments in Java
work with variables of double, char, and String types in Java