gretaivan / javaTheory

General java theory and implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Java Theory

general notes of interest and experimentation with general knowledge

Contents

topics that are in JAVA SE11 Exam are in italics

  • Java Exceptions
  • Arrays
  • Lists
  • Abstract and Interface class setup
  • Objects
  • Threading basics
  • Threading with concurrency
  • Regex
  • Graphical User Interface frames and panels basics
  • File object
  • String - string are immutable. Thus, everytime any change is made it creates a new String instance.
  • String Builder - note it is not a string, it is a buffer, once the desired content is achieved, it requires extraction to be a string
  • Type casting - explicit casting is converting to the lower value primitive variable, which results in the data loss, so is not automatic. Implicit is when conversion is from lower data type to higher and there is no data loss.
  • Variable amount of arguments - vaargs or ellipse in the methods
  • Anonymous and inner classes
  • Interface and generic interfaces
  • Enums

Projects

  • Data Structures - unchecked structures are not implemented yet
  • HR app - in the objectOrientationExample package - allows employee and deparment object creation. EMployee clas has name, ID and salary. Deparment Allows to assign employee to the departments whilst making sure that capacity of is not exceeded. Features employee and department classes that uses the basic Java principles such as encapsulation, inheritance, constructor chaining, error handling, use of object storing in arrays;

Checklist for JAVA SE11 Exam 1ZO-819

Working with Java data types
  • primitives
  • wrapper classes
    • String n String Builder
  • operators, parentheses
  • type promotion and casting
  • use local variable type inference, including as lambda parameters
Controlling Program Flow
  • Create and use loops, if/else, and switch statements
Java Object-Oriented Approach
  • Declare and instantiate Java objects including nested class objects, and explain objects' lifecycles (including creation, dereferencing by reassignment, and garbage collection)
  • Define and use fields and methods, including instance, static and overloaded methods
  • Initialize objects and their members using instance and static initialiser statements and constructors
  • Understand variable scopes, apply encapsulation and make objects immutable
  • create and use subclasses and superclasses, including abstract classes
  • Utilize polymorphism and casting to call methods, differentiate object type versus reference type
  • Create and use interfaces, identify functional interfaces, and utilize private, static, and default methods
  • Create and use enumerations
Exception Handling
  • Handle exceptions using try/catch/finally clauses, try-with-resource, and multi-catch statements
  • Create and use custom exceptions
Working with Arrays and Collections
  • ArrayList
  • Use generics, including wildcards
  • Use a Java array and List, Set, Map and Deque collections, including convenience methods
  • Sort collections and arrays using Comparator and Comparable interfaces
Working with Streams and Lambda expressions
  • Implement functional interfaces using lambda expressions, including interfaces from the java.util.function package
  • Use Java Streams to filter, transform and process data
  • Perform decomposition and reduction, including grouping and partitioning on sequential and parallel streams
Java Platform Module System
  • Deploy and execute modular applications, including automatic modules
  • Declare, use, and expose modules, including the use of services
Concurrency
  • Create worker threads using Runnable and Callable, and manage concurrency using an ExecutorService and java.util.concurrent API
  • Develop thread-safe code, using different locking mechanisms and java.util.concurrent API
Java I/O API
  • Read and write console and file data using I/O Streams
  • data streams like filtering and etc
  • Implement serialization and deserialization techniques on Java objects
  • Collections
  • Handle file system objects using java.nio.file API
  • Concurrency API
  • JDBC and JPA (Java persistance)
Secure Coding in Java SE Application
  • Develop code that mitigates security threats such as denial of service, code injection, input validation and ensure data integrity
  • Secure resource access including filesystems, manage policies and execute privileged code
Database Applications with JDBC
  • Connect to and perform database SQL operations, process query results using JDBC API
Localization
  • Implement Localization using Locale, resource bundles, and Java APIs to parse and format messages, dates, and numbers
Annotations
  • Create, apply, and process annotations

Data Structures

Linear data structures

covers methods: add, add at the head, remove, traverse, find

  • Doubly Linked List
  • Queues
  • Stacks

For additional examples see game that was moved out to the separate repository as required dependencies to be setup, for that maven had to be used, see Monster Game repo, and Calculator Engine

TODO

  • Sort algorithms
  • Search algorithms
  • Dictionary - stores key value pairs. One data type is used for keys and another one for values. Every key is associated at most one value. Dictionaries are parent classes to:
    • Hashtable - similar to HashMap as stores key-value pairs in a hashable, but unlike HashMap it does not allow null neither in key or value. And each key is hashed to get a hash code.
    • HashMap
    • LinkedHashMap
    • TreeMap

Style Guides

Twitter Style guide Google Style guide

About

General java theory and implementation


Languages

Language:Java 100.0%