Java is a general-purpose computer programming language that is:

  1. Concurrent
  2. Class-Based
  3. Object-Oriented

Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture.

The primary goals kept in mind during the making of the language were:

  • It must be simple, object-oriented, and familiar.
  • It must be robust and secure.
  • It must be architecture-neutral and portable.
  • It must execute with high performance.
  • It must be interpreted, threaded, and dynamic.

The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.

Why Learn Java?

  • JAVA IS EVERYWHERE. It is one of the most sought after programming languages. It is a standard for enterprise software, web-based content, games and mobile apps, as well as the Android operating system.

  • Write once, run anywhere policy: Programs written in Java are compiled into machine-independent bytecodes, so it can run on any Java platform. Basically, Java is Platform Independent

  • Java has rich APIs: Java has built-in application programming interfaces (APIs) for I/O, networking, data structures, concurrency, and many other functions. Standard libraries can be supplemented by open source libraries like Apache Commons, Google Guava, Netty and others.

  • Standardization: If you need to write a web/enterprise app, or you need data persistence or you need to do cryptography, no problem! Java is all you require. There are many standard tools/practices that extend the Java ecosystem, thanks to the Java Community Process (JCP)!

Help us explain this better! File a GitHub issue at if you have suggestions, or submit a patch with improvements to the file.

Try It!

If you've downloaded the command-line client and have Java installed on your machine, then go ahead and fetch the first problem.

exercism fetch java

In order to be able to submit your solution, you'll need to configure the client with your Exercism API key.

exercism configure --key=YOUR_EXERCISM_KEY

When you've written a solution, submit it to the site. You'll have to configure the command-line client with your exercism API key before you can submit.

exercism submit PATH_TO_FILE