Olsen Software Ltd.
Phone us +44 7989 401397
Email us info@olsensoft.com
home | training | services | content | code home > training > java > progcsharp Back to top
Java Programming for C# Developers (4 days) print Download

course overview

This course helps C# developers get up to speed quickly with the Java programming language and the Java Standard Edition (SE) 7 development platform. The course focuses on the differences between the C# and Java languages, and also explains how the .NET Framework library maps to the Java SDK.

what you'll learn


course details ShowHide

Getting Started with Java

  • Compiling and running Java applications
  • JVM options
  • JAR files vs. .NET assemblies
  • Understanding Ant and Maven
  • Where to get more information about Java in online communities
  • Common open-source libraries

Core Language Differences between C# and Java

  • Primitive types in Java vs. struct types in C#
  • Packages vs namespaces
  • Miscellaneous language differences

Defining and Using Classes

  • Classes in Java
  • Differences in how to declare data members and member functions
  • Differences in initialization and construction
  • Parameter passing modes in Java vs. C#


  • Declaring and using arrays
  • Traversing arrays
  • Using the Arrays class
  • Multi-dimensional arrays

Inheritance and Interfaces

  • Things you can do in C# that you can't do in Java
  • Things you can do in Java that you can't do in C#
  • Miscellaneous language differences

Collections and Generics

  • Overview of collections and generics
  • Using Java collection classes vs. .NET collection classes
  • Defining generic classes and generic methods vs. C# generics
  • Java generic specifiers

Exceptions and Assertions

  • Overview of exception handling
  • Throwing and catching exceptions
  • Standard exception classes
  • Defining new exception classes
  • Working with assertions

Going Further with the Java Language

  • Autoboxing and unboxing
  • Varargs
  • Type-safe enumerations
  • Static imports

Inner Classes

  • Overview of inner classes
  • Regular inner classes
  • Method-local inner classes
  • Anonymous inner classes vs. C# delegates
  • Static nested classes


  • Creating multiple threads
  • Synchronizing threads
  • Synchronization classes
  • Concurrency API

Additional Multithreading Issues

  • Using concurrent collections
  • Using synchronizers and locks
  • Thread pooling techniques
  • Using the executor framework
  • Using pooling effectively

Common Java APIs

  • Reading and writing files
  • Accessing databases using JDBC
  • Calling Web Service


  • Dynamic retrieval of information using reflection
  • Creating instances of extensibility objects
  • Class fields, methods and constructors

Tuning Garbage Collection

  • Essential concepts
  • Understanding object lifetimes
  • Generational collectors
  • Heap organization
  • Garbage collection options
  • Garbage collection monitoring and tuning