Training » All Courses » Java » Fundamentals of Java™

Course Summary

The Fundamentals of the Java™ course serves as an introduction to the Java language and object oriented programming (OOP) in Java. The course provides students with the skills for analyzing, designing, developing, and troubleshooting Java applications.

The participants learn the syntax and the constructs of the Java programming language, the concepts behind object-oriented programming (OOP) with Java, packaging, Java documentation, exception handling, Java libraries (I/O, utilities, networking, JDBC, etc.), concurrent programming with Java threads, and design patterns in Java.

Duration

5 days.

Objectives

Upon completion of this course, the students will be able to:

  • Explain what Java is, what it is composed of, how it compares to other programming environments, what its advantages are, and how to install and configure the development environment.
  • Read as well as write Java syntax, including declarations, assignments, operators, flow-control structures, generics, annotations, enumerations, naming conventions, etc.
  • Understand object oriented programming principles, explain how OOP differs from structural programming, and discuss the advantages of OOP
  • Utilize OOP in Java by designing and writing Java classes, encapsulating logic, reusing existing code through inheritance/polymorphism and composition, and modeling real-world relationships between objects
  • Package and organize Java code into classes and libraries (JARs)
  • Read, understand, and write Java code documentation (JavaDoc)
  • Define and handle error conditions in Java through the use of exceptions
  • Leverage Java libraries (I/O, Utilities, Collections, Networking, JDBC, etc.)
  • Analyze and troubleshot complex Java programs
  • Use best-practice design patterns when developing Java code

Audience

Fundamentals of Java™ course is intended for individuals who wish to learn how to design, build, debug, and support Java applications. This includes software developers, quality assurance engineers, technical writers, web developers, technical managers and individuals with a technical, non-programming background, such as system administrators.

This course is also appropriate for beginner programmers and those programmers who prefer to start learning the Java programming language from the fundamentals. It is helpful for individuals to have had some programming experience, whether with a scripting language such as Perl or a third generation language (such as Basic or C).

While this course does not assume that students have any programming experience, prior exposure to other structural and/or object-oriented languages is very beneficial. To get the full value from this course, the participants should be able to:

  • Define common computer terminology
  • Solve basic mathematical or technical problems
  • Understand the concept of a variable
  • Execute commands using a command-line interface

Instructors

Photo
Adam Breindel brings over 10 years of successes working with cutting-edge technology for small startups as well as major players in the travel, media/entertainment, financial, productivity, and consulting industries.

In addition to web sites, GUI applications, and mobile device software, Adam has also built high-volume middleware for one of the world's largest banks, and produced a new, modern integration to a 1960s-vintage mainframe app for one of the world's largest airlines.

Adam focuses on designing and coding systems in a way that yields predictable results, leverages best practices and high-productivity tools, minimizes excess code, and is fun to do. He has also spoken at tech conferencs, written articles and skill assessments, and produced an open source tool for software development. Adam has enjoyed teaching large and small groups, covering topics from nuts-and-bolts Java programming to merging ideal process with real-world constraints in an organization. More about Adam Breindel...
Photo

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...

Photo
After graduating with a Computer Science degree from University of Cape Town, South Africa, Martin spent 13 years developing his career with WorldGroup consulting, starting as a Java programmer and ending his career there in 2005 as Chief Technical Officer of a company selling a J2EE infrastructure based product set to Fortune 500's. In 2005 Martin left his position and founded Javadojo, a company dedicated to building cutting edge delivery platform's in Java and hiring the best Java people in the business. Martin has been a freelance educator for the last 3 years teaching open source technology across the globe. Javadojo has since released the pureSolv platform, the first full RIA (Rich Internet Application) platform supporting interfaces across all mobile and desktop hardware, with a revolutionary scalable back end micro transaction manager - all with open source Java technologies. The first commercial product using pureSolv, called incaMoon, is a universal web store front for the masses, and is in Beta testing currently.

Additionally Martin has been producing electronic music for the last few years using Ableton Live. He has released two albums and has been playing his music live around the US and at festivals such as the Coachella, Shambhala and Burning Man festivals. Martin is currently working on a revolutionary open source music standard, to produce a platform for musicians to share and contribute to their art using the principals of open source software. Martin also teaches digital music production with tools such as Ableton Live and Cubase.

Martin has several real estate projects in progress in the Nicoya Peninsula in Costa Rica where he purchased large tracts of land several years ago and has begun developing infrastructure and reselling subdivisions. The ultimate goal in this project is to develop a 50 acre nature preservation around a man made reservoir, for the protection and preservation of indigenous animal and bird species that live in these coastal regions. More about Martin Folb...

Additional Notes

 

About The Platform

This course is typically taught using Eclipse Integrated Development Environment (IDE). Students are shown how to install/setup Eclipse as well as how to utilize its most common features to increase their productivity. If so requested, we can also deliver the training using other IDEs, such as NetBeans, IDEA, JDeveloper, and others.

Graduating from this course will allow students to be immediately productive in supporting and developing Java applications. Fundamentals of Java course is a good preparation for Sun Certified Programmer for Java Platform exam.

Java™ and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc.

Marakana.com Runs on Java

Spark Stack

Marakana.com is written in Java using Spring and Hibernate frameworks. We deploy it on Apache Tomcat Application Server. Both Marakana Spark and Apache Tomcat are Java applications and thus run on Java Virtual Machine. Spark uses MySQL database for persistence. Our operating system of choice is Ubuntu Linux, for security and reliability reasons. So we practice what we teach. You will learn from real developers.

Java Meetup Organized by Marakana

SF Java Users GroupMarakana team organizes and runs the San Francisco Java Meetup - an interactive group of Java developers. In our monthly meetings, we discuss Java landscape from both technology and business angles. We often have great presentations by industry experts, group discussions, as well as hands-on sessions. If you are in San Francisco Bay Area, we encourage you to join the group and meet other Java developers.

Outline


About Java

  • History of Java
  • What is Java?
  • Why Java?
  • State of Java today

HelloWorld

  • Installing and configuring Java Virtual Machine (lab)
  • Implementing HelloWorld in Java (lab)
  • Java class/file structure and naming conventions
  • Java keywords and identifiers
  • Compiling and running Java programs
  • Comments in Java code
  • The main() method
  • Installing and configuring the Eclipse IDE

Data Types

  • Declaring and assigning variables
  • Primitive Java types
  • Conversion between types
  • Introduction to arrays and strings

Operators

  • Arithmetic operators - including shortcut operators
  • Relational operators
  • Logical-boolean operators
  • Bitwise operators
  • Assignment operators
  • Additional operators
  • Operator precedence

Flow Control

  • Local variable storage: stack
  • Branching statements: if-else and switch
  • Loop statements: while and for
  • Break and continue statements - including labeled
  • Return statement
  • Lab: Calculator

Object Oriented Programming

  • What is OOP?
  • Why OOP?
  • Class vs. Object
  • OOP in Java: classes, fields, objects, methods
  • Java memory model and garbage collection
  • Static vs. instance data and methods
  • Constructors - including constructor and method overloading
  • Constants
  • Encapsulation through access modifiers
    • Lab: BankAccount
  • Inheritance / in Java
    • Types and subtypes
    • Lab: School
  • Interfaces and abstract classes / in Java
    • Lab: OOP Calculator
  • java.lang.Object: super class of them all
    • Object Equality: equals() and hashCode() methods
    • Converting objects to strings: toString() method
    • Lab: Comparing students

Packaging

  • Reasons for packaging code
  • Packages and sub-packages in Java
  • Protecting package namespace
  • Using packaged code
  • Protecting packaged code
  • Java CLASSPATH
  • Java Archive (JAR)
  • Lab: Packaging

JavaDoc

  • Overview of JavaDoc
  • Java API
  • Defining and generating JavaDoc
  • Lab: Documenting Java code

Exception Handling

  • What are exceptions?
  • Why exceptions?
  • Built-in exceptions
  • Exception life-cycle
  • Handling exceptions
  • Throwing exceptions
  • Exception types: checked vs. unchecked
  • Creating new exceptions
  • Grouping and nesting exceptions
  • Lab: Exceptions

java.lang library (Core Java)

  • Primitive wrappers
  • String and StringBuffer/StringBuilder
  • java.lang.Math
  • java.lang.System
  • Multi-threaded programming in Java

java.io library (I/O in Java)

  • Managing files
  • Byte and character streams
  • Filtered streams
  • Object serialization

java.util library (Collections and Utilities)

  • Collections Framework
    • java.util.Collection
    • java.util.Iterator
    • java.util.List
    • java.util.Set
    • java.util.Queue
    • java.util.Map
  • PRNG in Java: java.util.Random
  • String parsing and matching - including java.util.regex
  • Date, Calendar, TimeZone

java.net library (Java Networking)

  • java.net.InetAddress and java.net.NetworkInterface
  • java.net.URL connections
  • TCP sockets (java.net.Socket and java.net.ServerSocket)

java.sql library (JDBC)

  • Overview of JDBC and its drivers
  • JDBC API: connections, statements, result sets, metadata
  • Using JDBC: updates, queries

Java 5

  • Generics
  • Enhanced for[each] loop
  • Auto boxing and unboxing
  • Typesafe enums
  • Varargs
  • Static imports
  • Annotations (metadata)

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

I learned a great deal more from this class than I expected, especially given the very short term nature of the course. I really feel I was given a good fundamental understanding of Java. The instructor was clear, concise, worded himself clearly and unambiguously, and rigorously pushed the class to apply good coding practices. I would definitely take this course again if I had to do it over again.

- Freeflow Hardware

The course is very useful and it covers the more practical knowledge of java we needed to work in a Business Environment

- Williams-Sonoma, Inc.

I would definitely recommend Marakana as a training resource.

- Williams-Sonoma, Inc.

A well paced and comprehensive indroduction to the language, I would highly recommend.

- Advance Internet, Inc.

Instructor have very good verbal skill and knowledge. Very helpful to me. Thanks for teaching

- Fujitsu Siemens Computers, Inc.

This is a great "highly condensed" course for person even with little programming background, will look forward to the Advance class soon!

- Freeflow Hardware

I liked the course and I would recommend to others.

- Xerox

Very talented and friendly instructor, he definitely knew his stuff and was extremely helpful when it came to answering my questions.

- Groundspeak Inc.

By the way, the training was very well received and we'll definately think of Marakana first for our future training needs.

- Groundspeak Inc.