Course Summary
Advanced Java™ Training course provides you with advanced skills for programming in Java language.
This course delves deeper into the data structures, file input and output features, exception handing, object oriented design and analysis, object serialization, database connectivity with JDBC, multi-threaded programming, and networking capabilities of Java.
Upon completion, you will be able to understand, design, and develop complex Java-based applications.
Duration
3 days.
Objectives
Upon successful completion of Advanced Java™ Training course, you will be able to:
- Use reflection to examine objects at runtime and properly compare objects for equality.
- Handle errors in your program by writing exception handlers.
- Create and manipulate arrays and collections.
- Read and write files using the java.io package.
- Serialize objects using object serialization.
- Write multi-threaded programs and synchronize threads.
- Access data from relational databases using JDBC. Perform basic network communication using sockets.
Audience
You should take Advanced Java™ Training course if you are interested in learning more about the Java programming language in order to learn advanced programming techniques and concepts.
To succeed fully in Advanced Java™ Training, you should be familiar and comfortable with basic Java programming concepts: Java syntax and object-oriented programming (OOP) in Java. These topics are covered in our Fundamentals of Java™ Training course.
Instructors
Aleksandar (Saša) Gargenta is the technology brains at Marakana. Always on top of the latest in software, Aleksandar is company's radar for technology that matters.
Aleksandar is the author of Marakana's Java, Advanced Java, Spring/Hibernate, JBoss, Apache, XML/XSL, and JUnit/TestNG training courses. Phew. And if that's not enough, he's also the chief architect of Marakana Spark, the on-demand software platform that powers marakana.com and a number of other training companies. As an instructor he's taught hundreds of classes for everyone from Apple to Disney, from NASA to the Department of Defense.
In his spare time Aleksandar runs the San Francisco Java and the San Francisco Android User Groups with over a thousand members between the two.
More about Aleksandar Gargenta...
Marko founded Marakana back in 2001 to help underprivileged youth, minorities, and inner-city kids learn web technologies and get ahead in life. So Marakana emerged with goal of helping people get better at what they do professionally, focused on open source software training.
Marko is the developer of Marakana Android Training series. He has taught Android for companies such as Sony-Ericsson, Qualcomm, Ericsson Canada, and many others. Marko is a co-founder of San Francisco Android Users Group and regularly teaches Android Bootcamp at Marakana.
Marko is author of upcoming Learning Android book published by O'Reilly Media. This book is based on Android Bootcamp and incorporates best learning practices for new developers to start creating applications for this exciting open source mobile platform.
In 2006 Marko Gargenta published "PHP and MySQL By Example", a collection on PHP examples. The book was published by Prentice Hall, world's largest technology publisher and has been also translated to Spanish.
Marko Gargenta obtained his Bachelor of Mathematics Degree from University of Waterloo (Canada's MIT) and has been developing in Java since 1996. He lives in San Francisco, California.
Speaking Engagements
- Open Source Conference (OSCON): Android for Java Developers on July 19, 2010, Portland, OR
- Snaptic: Android for Java Developers, May 27, SF, CA
- Association for Computing Machinery (ACM) SF Bay Area Chapter May 1, 2010
- IEEE Computer Society "Android Night" on April 13, 2010
- Scandinavian Developer Conference 2010: Android for Java Developers, March 16, 2010, Gotheborg, Sweden
- SFAndroid: Learn about Android Internals and NDK, SF
- SFAgile: Scrum Overview at Microsoft, SF
- SFAndroid: Learn about Data Persistence in Android
- SFAndroid: Learn how to develop for Android, beyond the HelloWorld
- Software Development Forum, Mobile SIG: Android Overview
- Open Source Conference (OSCON): A 30000-foot View of the Android Platform
Additional Notes
Outline
Examination Concepts
- Determining an Object's Type
- Using the instanceof Operator
- Using the Class.getName() Method
- Reflection
- Comparing Objects for Equality
- Converting Objects to strings and integers (hash codes)
- Sorting Objects
Exception Handling
- Overview of Exceptions
- Following the Control Flow of an Exception Handler
- Writing Exception Handlers
- Checked vs. unchecked exceptions vs. errors
- Defining custom exceptions
- Nesting exceptions
Data Structures
- Creating and manipulating Arrays
- Collections
- Choosing a Collection
- Working with Collections
- Manipulating Lists, Sets, Maps
- Understanding Java 5 Generics in Collections
I/O
- Overview of the java.io Package
- Working with the File Class
- Identifying Input and Output Streams
- Identifying Readers and Writers
- Reading Data from a File
- Writing Data to a File
- Reading and Writing Objects
- Serializing an Object
Multi-Threaded Programming
- Overview of Threads
- Observing a Computer's Processes
- Observing a Multi-Threaded Program
- Using Threads
- Deciding Between Daemon and Non-Daemon Threads
- Creating a Multi-Threaded Program
- Thread Synchronization
- The Producer/Consumer Problem
JDBC
- Overview of SQL Language
- Overview of JDBC and its drivers
- JDBC API: connections, statements, result sets, metadata
- Using JDBC: updates, queries
Basic Networking
- Overview of Networking
- Networking Concepts
- Identifying Your Computer's IP Address
- Using the InetAddress Class
- Sockets
- Implementing the Client Side of a Socket
- Implementing the Server Side of a Socket
- Developing a multi-threaded Server
Design Patterns
- What are Design Patterns?
- Singleton, Factory Method, Abstract Factory
- Adapter, Composite, Decorator
- Chain of Responsibility, Observer / Publish-Subscribe, Strategy, Template
- Data Access Object (DAO)
Course Testimonials
Amazing Course!
Outstanding instructor. Innovative, responsive and (best of all) took great care to point out all of the pitfalls, did not rely on simply presenting correct examples. Excellent presentation style, very clear and very consciencious at the same time. [Can we hire this guy for TFMS?]
The instructor and materials were excellent.
The instructor was top notch. I couldn't imagine anyone doing a better job of trying to cover so much material in so short a time. He knew this stuff cold. He had an amazing ability to teach.
The instructor had great sound affects! We all especially loved the "BOOMS"! :-) He was good at asking and making sure that everyone understood the topic. If we needed more time, he allowed for it as well.
I had taken another class before with the instructor for this class, Aleksandar Gargenta, and he has demonstrated on multiple occasions that he is very well versed in the content he is presenting. I feel like I got a lot out of this course.
Every topic that I was looking for practice or deeper explanation was covered completely. Topics that I already had a good understanding of were explained further, and I was able to pick up details that I either did not know or had previously overlooked, which will help improve my future coding.
The instructor was very knowledgeable.