Course: Java Novice to Javanista - Part 2 Java Apprentice
duration: 36 hours |
Language: English (US) |
access duration: 365 days |
Details
Do you want to develop yourself from Java Novice to Javanista? Then this development path is for you!
This is part 2 of the Java Novice to Javanista development path.
Java is one of the most in-demand programming languages in the world and one of the two official programming languages used in Android development. Although Java is a pure object-oriented language, it has evolved into a multi-paradigm language making it very suitable for any situation. Developers familiar with Java can build a wide range of applications, games and tools.
When you choose this development path, you get:
- access to training courses, livelabs and exams. In addition, you get access to many more trainings, mock exams, bootcamps, e-books and so on.
- Guidance from our Learning & Development team, together with you we set goals, make a schedule and monitor your progress.
In this second part, you will take a deep dive into the advanced features of Java - such as exception handling, Generics, Lambdas and Reflection. The second part concludes with a focus on building jar files for Java libraries.
Result
After completing this course, you will be familiar with:
- The advanced features of Java
- Building jar files for Java libraries
Prerequisites
You are familiar with the the basic principles of software development. You completed the first part of this development path.
Target audience
Software Developer, Web Developer
Content
Java Novice to Javanista - Part 2 Java Apprentice
Handling Errors: An Introduction to Exceptions
Developers need to be aware of the concept of exceptions in the context of Java and how they are implemented in the language so that they can handle it efficiently. Use this course to familiarize yourself with Java exceptions from both a theoretical and practical standpoint. Delve into the two major categories of Java exceptions - checked exceptions that can be identified at the compile stage and unchecked exceptions which occur while the program is running. Next, you'll be able to try your hand at some hands-on programming and discover how to work with compile-time errors and distinguish them from exceptions. After finishing this course, you'll be in a position to recognize the purpose and categories of Java exceptions and how to tackle them.
Handling Errors: Handling Exceptions in Java
It is important to handle exceptions proactively in Java to ensure that the flow of a program doesn't break on the occurrence of an exception. Take this course to explore the fundamentals of handling exceptions and different constructs available in Java that allow you to do so. Delve into working with try-catch, finally, and try-with-resource blocks to handle various exceptions within your code. These blocks can be used to catch single, multiple, or categories of exceptions, clean up after your code has run, and handle exceptions related to specific Java objects, respectively. Upon completion of this course, you'll be able to implement exception handling within Java effectively.
Handling Errors: Advanced Topics in Exceptions
While handling exceptions is enough for most programmers, if you are building an app that other developers consume, you should know how to throw exceptions proactively and the various options available in Java in this regard. This is precisely the focus of this course. Learn about throwing an exception based on your conditions in a Java program and how nested function calls influence exception throwing and handling. You'll get a chance to explicitly throw an exception using the throw keyword, add complexity to your code by throwing different exceptions based on different conditions, and build a customized Exception class to define an exception that is not covered by Java's library. Having finished this course, you'll have the knowledge to throw exceptions and run your program without breaking its flow.
Collections in Java: Arrays & Non-parameterized ArrayLists
The Java collections framework is a set of classes and interfaces that implement commonly reusable collection data structures. Though not part of the Java collection framework, arrays allow you to store multiple elements. They are incredibly useful, albeit with significant drawbacks, when used as collection containers. Use this course to practice working with arrays and collections. Start by storing data in an ordered form using arrays. Through this, explore the drawbacks of arrays. Next, examine multi-dimensional arrays and jagged arrays. Finally, create and use the non-parameterized array list to store elements. When you're finished with this course, you'll have a good understanding of how arrays work, their drawbacks, and how the use of collections can overcome many of the limitations of working with arrays.
Collections in Java: Lists & List Operations
If you're writing Java code and need a container to store elements, a list is likely what you'll use. The Java collections framework provides several different list implementations. Use this course to practice using parameterized lists. Start by working with parameterized collections with type parameters to indicate the type of data you want to store within that collection. Compare parameterized and non-parameterized lists. Then, explore first-hand the advantages of working with parameterized lists. Next, investigate all the methods you can use to operate on lists in Java, examining the inheritance hierarchy of interfaces in the Java collections framework and the use case for each kind of interface. When you're finished with this course, you'll be able to use parameterized lists to store your data and perform the correct operation based on your use case.
Collections in Java: Sets & Maps
The Java collections framework has several different, specialized collections, such as sets and maps. These allow you to store values and data in different ways. In this course, you'll explore these and other valuable collections from the Java collections framework. Create and work with sets, performing several different operations, including union, intersection, difference, and subset operations. Next, explore the different set implementations that Java offers beyond the basic HashSet. Discover how the LinkedHashSet and TreeSet differ in how elements of the set are accessed. Finally, work with another important and commonly used Java collection, the map. Investigate several different map implementations and use maps to build a Least Recently Used cache and a priority queue. When you're finished, you'll have a solid foundational, working knowledge in using special collections in the Java collections framework.
Generics in Java: Creating Classes and Methods Using Generics
Generics is a handy tool in Java that greatly increases the maintainability of your code by allowing you to reuse code, using the same class or method with different types of data. Furthermore, generics also convert runtime checks to compile-time checks, making your code less error-prone. In this course, learn how to use generics in Java to write reusable and maintainable code, exploring why generic code has several advantages over non-generic code. Get hands-on practice with creating and defining classes with generic type parameters. Investigate how these generic types can be used as types for member variables, input arguments to methods, and return values from methods. Moving along, implement generic methods where the generic type parameter is associated with the method rather than the class itself. When you're finished, you'll have a solid foundation in defining and working with generic classes and methods in Java.
Generics in Java: Bounded Type Parameters & Wildcards
In Java, bounded type parameters and wildcards offer certain flexibility and disadvantages. Recognizing these will help you decide when and how to use these tools to your advantage when writing code. Use this course to get to grips with what's meant by unbounded and bounded type parameters, explore the use of wildcards in Java, and recognize the applications of unbounded, upper-bounded, and lower-bounded wildcards. As you advance, investigate what's meant by 'wildcard capture' and 'type erasure.' When you're finished, you'll be able to correctly identify scenarios for using bounded type parameters and wildcards and implement them correctly.
Classes in Java: Working with Static Nested, Inner, & Local Classes
Static nested and inner classes in Java are used when classes have a logical relationship with or are intimately associated with the outer class within which they are defined. Local classes are classes defined within a scope and can only be accessed and used within that scope. They're the perfect tools to use when you want to limit the visibility of your classes. Through this course, learn to create and use static nested classes defined within an outer class. Explore how a closer relationship with an outer class can be expressed using inner classes and why access modifiers do not apply to local classes. And define and use local classes created with a code block. When you're finished with this course, you'll be able to pick the right kind of class for your use case and correctly implement nested classes, inner classes, and local classes.
Classes in Java: Creating & Using Anonymous Classes
Anonymous classes in Java allow you to define code that use-and-throw. These are classes where you define and instantiate a class simultaneously and which are anonymous, i.e., do not have a name. These are perfect in scenarios where you want a class that implements a certain interface but will not be reused beyond where it is defined and accessed. Through this course, learn to create and use anonymous classes, recognizing how they are nested, inner, and unnamed classes that either implement an interface or derive from a base class. As you advance, explore some common use cases for anonymous classes. When you're finished with this course, you'll be able to create and use anonymous classes in Java correctly, with the correct syntax, and for the proper use case.
Classes in Java: Implementing Functional Interfaces Using Lambdas
Lambda expressions allow you to define classes that implement single-method interfaces in a very concise and compact manner. This makes code that uses lambda functions easier to read and understand and much more maintainable. Lambda expressions can be made even more compact and readable by the use of method references. In this course, you will learn to create and use lambda expressions to implement functional interfaces. You will see that lambda expressions are essentially blocks of code that accept input arguments, perform operations, and return values. Lambda expressions can be used in any place where we use anonymous classes or a named class that implements an interface with just a single abstract method. You will see that lambdas can only be used to implement functional interfaces i.e. interfaces that have exactly one abstract method. Such interfaces are usually annotated using the @FunctionalInterface annotation which allows the compiler to detect if the single abstract method contract has been violated for such interfaces. You will understand and implement the four types or categories of functional interfaces, the Predicate, Function, Consumer, and Supplier interfaces. Finally, you will round this course off by exploring and implement method references which are essentially even more compact representations of lambda expressions. When you are finished with this course you will have the skills and knowledge to construct lambda expressions in the right way and use Predicates, Functions, Suppliers, and Consumers to process and store your objects.
Java: Getting Started with Reflection
Reflection is a popular programming technique that accesses and modifies class and object information at runtime. Reflection is available in many programming languages, but Java has an especially powerful set of reflection APIs that reflect - no pun intended - the emphasis that Java lays on type safety. Learn how to access a Java class object. Use reflection APIs to view class fields, constructors, and methods. Create objects for various built-in classes and use reflection to view the class of an object. Investigate the significance of the fully qualified name of a class and how you can use the .forName() method from the built-in class java.lang.Class. Use this method to obtain variables of primitive types and arrays of differing dimensionality. Then use reflection to access modifiers applied to member fields. Upon completion, you'll be able to use reflection in your Java operations with confidence.
Java: Accessing Constructors, Methods, & Fields Using Reflection
Reflective access allows a whole range of operations on objects that may not be permitted when you construct and use objects in the regular manner. This is extremely useful while building frameworks that may need access to the internals of your object. Use this course to extract information and metadata about the constructors in a class and use them, accessed via reflection, to instantiate objects. Access and modify fields or the member variables in an object. Access and invoke the methods defined on a class. Invoke static methods on the class itself and instance methods on specific objects of a class. When you're done, you'll have the ability to use reflection to access and work with all class members, whether they are fields, constructors, or methods.
Java: Working with Annotations, Generics, & Arrays Using Reflection
Annotations on Java code allow you to associate additional metadata with classes, member variables, constructors, and methods. These annotations can be used to perform additional checks or add functionality to your Java code. Use this course to practice using annotations with reflection. Work with both built-in and custom annotations and see how you can access the annotations applied on classes, fields, and methods. Learn why not all annotations can be accessed via reflection. Create your own custom annotation and experiment with various retention policies. Next, examine accessing generics and arrays with reflection. When you're finished, you'll be able to harness the power of reflection to add new functionality to your code and work with generics and arrays.
Java: Leveraging Reflection to Build Dynamic Proxies & Unit Tests
Reflection in Java is commonly used to create and use dynamic proxies, which allow you to create objects that implement one or more interfaces at runtime. Reflection is also used to build harnesses for unit testing frameworks to invoke set up and tear down methods and run tests. Use this course to get to grips with these use cases. Work with and learn why dynamic proxies are incredibly powerful. Investigate what happens to methods you invoke on an instance of a dynamic proxy class. Then create a unit-testing framework harness similar to the JUnit framework in Java. Use annotations to identify methods and mark tests to run before using reflection to identify them and run them in the correct sequence. When you're finished, you'll have the ability to use reflection to create dynamic proxies and build harnesses for unit test frameworks.
Java Archive (JAR): Building Java Archives
Java Archives (JARs) wrap a Java application into a single archive file for deployment, distribution, and execution. Use this course to acquaint yourself with building Java archives or JAR files using the JAR utility, run from the command line. Over the length of the course, you'll outline how a simple Java project packaged into a JAR file can be executed directly, different attributes of a JAR manifest can affect the use of a JAR file, and a project with external dependencies can be packaged into an executable JAR. Upon completion of this course, you'll be able to build different Java archives: JAR with multiple main classes, JAR containing several packages, and JAR that is not directly executable by itself but usable as a dependency in other projects.
Java Archive (JAR): Packaging Java Apps Using Maven
Based on the concept of a project object model (POM), Apache Maven is a project management software as well as build automation and comprehension tool. Explore the flexibility offered by Maven in the creation of Java archives or JAR files using this course. Try your hand at using Apache Maven to build a Java application and package it into an executable JAR file, create a JAR file for an app with external dependencies and ways to execute it, and package your Java app along with all of its external dependencies into a single package known as a fat or uber JAR. Having finished this course, you'll have the skills and knowledge to build lean as well as uber JAR files using Apache Maven.
Final Exam: Java Apprentice
Final Exam: Java Apprentice will test your knowledge and application of the topics presented throughout the Java Apprentice track of the Skillsoft Aspire Java Novice to Javanista Journey.
Course options
We offer several optional training products to enhance your learning experience. If you are planning to use our training course in preperation for an official exam then whe highly recommend using these optional training products to ensure an optimal learning experience. Sometimes there is only a practice exam or/and practice lab available.
Optional practice exam (trial exam)
To supplement this training course you may add a special practice exam. This practice exam comprises a number of trial exams which are very similar to the real exam, both in terms of form and content. This is the ultimate way to test whether you are ready for the exam.
Optional practice lab
To supplement this training course you may add a special practice lab. You perform the tasks on real hardware and/or software applicable to your Lab. The labs are fully hosted in our cloud. The only thing you need to use our practice labs is a web browser. In the LiveLab environment you will find exercises which you can start immediately. The lab enviromentconsist of complete networks containing for example, clients, servers,etc. This is the ultimate way to gain extensive hands-on experience.
Sign In
WHY_ICTTRAININGEN
Via ons opleidingsconcept bespaar je tot 80% op trainingen
Start met leren wanneer je wilt. Je bepaalt zelf het gewenste tempo
Spar met medecursisten en profileer je als autoriteit in je vakgebied.
Ontvang na succesvolle afronding van je cursus het officiële certificaat van deelname van Icttrainingen.nl
Krijg inzicht in uitgebreide voortgangsinformatie van jezelf of je medewerkers
Kennis opdoen met interactieve e-learning en uitgebreide praktijkopdrachten door gecertificeerde docenten
Orderproces
Once we have processed your order and payment, we will give you access to your courses. If you still have any questions about our ordering process, please refer to the button below.
read more about the order process
Een zakelijk account aanmaken
Wanneer u besteld namens uw bedrijf doet u er goed aan om aan zakelijk account bij ons aan te maken. Tijdens het registratieproces kunt u hiervoor kiezen. U heeft vervolgens de mogelijkheden om de bedrijfsgegevens in te voeren, een referentie en een afwijkend factuuradres toe te voegen.
Betaalmogelijkheden
U heeft bij ons diverse betaalmogelijkheden. Bij alle betaalopties ontvangt u sowieso een factuur na de bestelling. Gaat uw werkgever betalen, dan kiest u voor betaling per factuur.
Cursisten aanmaken
Als u een zakelijk account heeft aangemaakt dan heeft u de optie om cursisten/medewerkers aan te maken onder uw account. Als u dus meerdere trainingen koopt, kunt u cursisten aanmaken en deze vervolgens uitdelen aan uw collega’s. De cursisten krijgen een e-mail met inloggegevens wanneer zij worden aangemaakt en wanneer zij een training hebben gekregen.
Voortgangsinformatie
Met een zakelijk account bent u automatisch beheerder van uw organisatie en kunt u naast cursisten ook managers aanmaken. Beheerders en managers kunnen tevens voortgang inzien van alle cursisten binnen uw organisatie.
What is included?
Certificate of participation | No |
Monitor Progress | Yes |
Award Winning E-learning | Yes |
Mobile ready | Yes |
Sharing knowledge | Unlimited access to our IT professionals community |
Study advice | Our consultants are here for you to advice about your study career and options |
Study materials | Certified teachers with in depth knowledge about the subject. |
Service | World's best service |
Platform
Na bestelling van je training krijg je toegang tot ons innovatieve leerplatform. Hier vind je al je gekochte (of gevolgde) trainingen, kan je eventueel cursisten aanmaken en krijg je toegang tot uitgebreide voortgangsinformatie.
FAQ
Niet gevonden wat je zocht? Bekijk alle vragen of neem contact op.