Skip to content

Instantly share code, notes, and snippets.

@kkamkou
Last active March 26, 2017 10:20
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kkamkou/4894efe1ebff09a5ef92 to your computer and use it in GitHub Desktop.
Save kkamkou/4894efe1ebff09a5ef92 to your computer and use it in GitHub Desktop.
Exam topics and links for Java 8 and MySQL 5.6

Links

Topics

Java Basics

  • Define the scope of variables
  • Define the structure of a Java class
  • Create executable Java applications with a main method; run a Java program from the command line; including console output.
  • Import other Java packages to make them accessible in your code
  • Compare and contrast the features and components of Java such as: platform independence, object orientation, encapsulation, etc.

Working With Java Data Types

  • Declare and initialize variables (including casting of primitive data types)
  • Primitive Data Types
  • Differentiate between object reference variables and primitive variables
  • Know how to read or write to object fields
  • Explain an Object's Lifecycle (creation, "dereference by reassignment" and garbage collection)
  • Object.html#finalize
  • Develop code that uses wrapper classes such as Boolean, Double, and Integer.

Using Operators and Decision Constructs

  • Use Java operators; including parentheses to override operator precedence
  • Test equality between Strings and other objects using == and equals ()
  • Create if and if/else and ternary constructs
  • Use a switch statement

Creating and Using Arrays

  • Declare, instantiate, initialize and use a one-dimensional array
  • Declare, instantiate, initialize and use multi-dimensional array

Using Loop Constructs

  • Create and use while loops
  • Create and use for loops including the enhanced for loop
  • Create and use do/while loops
  • Compare loop constructs
  • Use break and continue

Working with Methods and Encapsulation

  • Create methods with arguments and return values; including overloaded methods
  • Apply the static keyword to methods and fields
  • Create and overload constructors; including impact on default constructors
  • Apply access modifiers
  • Apply encapsulation principles to a class
  • Determine the effect upon object references and primitive values when they are passed into methods that change the values

Working with Inheritance

Handling Exceptions

  • Differentiate among checked exceptions, unchecked exceptions, and Errors
  • Checked and unchecked exceptions in java with examples
  • Create a try-catch block and determine how exceptions alter normal program flow
  • Describe the advantages of Exception handling
  • Create and invoke a method that throws an exception
  • "Recognize common exception classes (such as NullPointerException, ArithmeticExcpetion, ArrayIndexOutOfBoundsException, ClassCastException)"

Working with Selected classes from the Java API

  • Manipulate data using the StringBuilder class and its methods
  • The StringBuilder Class
  • The StringBuilder Class, docs
  • Creating and manipulating Strings
  • Create and manipulate calendar data using classes from java.time.LocalDateTime, java.time.LocalDate, java.time.LocalTime, java.time.format.DateTimeFormatter, java.time.Period
  • Declare and use an ArrayList of a given type
  • Write a simple Lambda expression that consumes a Lambda Predicate expression
  • Lambda Expressions

Links

Topics

Java Class Design

  • Implement encapsulation
  • Implement inheritance including visibility modifiers and composition
  • Implement polymorphism
  • Override hashCode, equals, and toString methods from Object class
  • Create and use singleton classes and immutable classes
  • Develop code that uses static keyword on initialize blocks, variables, methods, and classes

Advanced Java Class Design

  • Develop code that uses abstract classes and methods
  • Develop code that uses final keyword
  • Create inner classes including static inner class, local class, nested class, and anonymous inner class
  • Use enumerated types including methods, and constructors in an enum type
  • Develop code that declares, implements and/or extends interfaces and use the atOverride annotation.
  • Create and use Lambda expressions

Generics and Collections

  • Create and use a generic class
  • Create and use ArrayList, TreeSet, TreeMap, and ArrayDeque objects
  • Use java.util.Comparator and java.lang.Comparable interfaces
  • Collections Streams and Filters
  • Iterate using forEach methods of Streams and List
  • Describe Stream interface and Stream pipeline
  • Filter a collection by using lambda expressions
  • Use method references with Streams

Lambda Built-in Functional Interfaces

  • Use the built-in interfaces included in the java.util.function package such as Predicate, Consumer, Function, and Supplier
  • Develop code that uses primitive versions of functional interfaces
  • Develop code that uses binary versions of functional interfaces
  • Develop code that uses the UnaryOperator interface

Java Stream API

  • Develop code to extract data from an object using peek() and map() methods including primitive versions of the map() method
  • Search for data by using search methods of the Stream classes including findFirst, findAny, anyMatch, allMatch, noneMatch
  • Develop code that uses the Optional class
  • Develop code that uses Stream data methods and calculation methods
  • Sort a collection using Stream API
  • Save results to a collection using the collect method and group/partition data using the Collectors class
  • Use flatMap() methods in the Stream API

Exceptions and Assertions

  • Use try-catch and throw statements
  • Use catch, multi-catch, and finally clauses
  • Use Autoclose resources with a try-with-resources statement
  • Create custom exceptions and Auto-closeable resources
  • Test invariants by using assertions

Use Java SE 8 Date/Time API

  • Create and manage date-based and time-based events including a combination of date and time into a single object using LocalDate, LocalTime, LocalDateTime, Instant, Period, and Duration
  • Work with dates and times across timezones and manage changes resulting from daylight savings including Format date and times values
  • Define and create and manage date-based and time-based events using Instant, Period, Duration, and TemporalUnit

Java I/O Fundamentals

  • Read and write data from the console
  • Use BufferedReader, BufferedWriter, File, FileReader, FileWriter, FileInputStream, FileOutputStream, ObjectOutputStream, ObjectInputStream, and PrintWriter in the java.iopackage.

Java File I/O (NIO.2)

  • Use Path interface to operate on file and directory paths
  • Use Files class to check, read, delete, copy, move, manage metadata of a file or directory
  • Use Stream API with NIO.2

Java Concurrency

  • Create worker threads using Runnable, Callable and use an ExecutorService to concurrently execute tasks
  • Identify potential threading problems among deadlock, starvation, livelock, and race conditions
  • Use synchronized keyword and java.util.concurrent.atomic package to control the order of thread execution
  • Use java.util.concurrent collections and classes including CyclicBarrier and CopyOnWriteArrayList
  • Use parallel Fork/Join Framework
  • Use parallel Streams including reduction, decomposition, merging processes, pipelines and performance.

Building Database Applications with JDBC

  • Describe the interfaces that make up the core of the JDBC API including the Driver, Connection, Statement, and ResultSet interfaces and their relationship to provider implementations
  • Identify the components required to connect to a database using the DriverManager class including the JDBC URL
  • Submit queries and read results from the database including creating statements, returning result sets, iterating through the results, and properly closing result sets, statements, and connections

Localization

  • Read and set the locale by using the Locale object
  • Create and read a Properties file
  • Build a resource bundle for each locale and load a resource bundle in an application

Links

Topics

MySQL Architecture

  • Use MySQL client programs to interface with the MySQL Server interactively and in batch
  • Describe SQL Modes and their impact on behavior of MySQL
  • Identify characteristics which have session scope

General MySQL Syntax

  • Explain MySQL implementation of identifiers including case sensitivity, qualified names, aliases and use of reserved words
  • Identify MySQL data type properties and appropriate usage
  • Recognize and use common functions and expressions for all MySQL data types
  • Identify and use comment syntax
  • Describe and utilize prepared statements
  • Describe transactions and transaction isolation levels and the impact they have on database behavior

Creation and Design of MySQL Schema Objects

  • Design and create normalized databases
  • Create and modify tables using appropriate data types and indexing
  • Describe and create table constraints enforcing data integrity
  • Creating and modifying views
  • Identify and use various methods to obtain metadata for MySQL database objects

Creation, Design and Use of MySQL Stored Programs

  • Describe and use triggers
  • Create and execute stored procedures
  • Create and use stored functions
  • Implement error handling within stored procedures

Querying for Data

  • Execute a basic SELECT statement
  • Limit rows returned by a SELECT statement
  • Limit columns returned by a SELECT statement
  • Apply sorting to SELECT statement results
  • Execute SELECT statements which aggregate and group data

Modifying Data

  • Describe and execute INSERT statements
  • Describe and execute REPLACE statements
  • Describe and execute UPDATE statements
  • Describe and execute TRUNCATE statements
  • Describe and execute LOAD DATA statements
  • Describe and execute DELETE statements

Joins, subqueries and UNION

  • Identify, describe and use JOINs in MySQL commands
  • Describe and utilize subqueries in MySQL commands
  • Perform operations using UNION clause

MySQL Application Development

  • Identify key characteristics, features and options for PHP, Java and .NET development using MySQL standard drivers
  • Write a basic Java application that uses MySQL
  • Write a basic PHP application that uses MySQL
  • Write a basic .NET application that uses MySQL
  • Interpret MySQL error messages
  • Collect available diagnostic information
  • Describe and use NoSQL and memcached API

Basic Optimizations

  • Identify statements requiring optimization
  • Recognize and create optimal indexes for query optimization
  • Recognize and fix sub-optimal SQL commands
  • Identify appropriate optimization strategies for InnoDB usage
  • Optimize performance through data normalization
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment