Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

What is Java technology and why is it important?

Java technology is both a programming language and a platform.

The Java programming language is a high-level, object-oriented language. Java programs are both compiled and interpreted. Compilation translates Java code into an intermediate language called Java bytecode. Bytecode is in turn parsed and run (interpreted) by the Java Virtual Machine (JVM) — a translator between the language and the underlying operating system and hardware. A compiled Java program can run on any system that has a version of the JVM.

The Java platform is a software-only platform that can run on top of most hardware platforms. It consists of the JVM and the Java API — a large collection of ready-made components (classes) that ease application development and deployment. The Java API spans everything from basic objects, to networking and security, to XML generation and web services. It is grouped into libraries — known as packages — of related classes and interfaces.

The platform comes in three versions:

Along with the Java API, every full implementation of the Java platform includes:

The developerWorks Java technology zone maintains a complete glossary of the standard Java component technologies for the platform editions.

Scalability, portability, versatility, and open standards

Scalability is one of the standout features of the Java platform and language. Applications can be written easily (or adapted from Java desktop applications) for devices with limited resources. Scaling up beyond the desktop, Java technology is an ideal framework for secure server-side web programming. Web components are supported by runtime platforms called web containers, whose services include request dispatching, security, concurrency, life-cycle management, and access to APIs such as naming, transactions, and email. At the high end, Java application servers serve as web containers for Java components, XML, and web services that can interact with databases and provide dynamic web content. Java application servers also provide an application-deployment environment for enterprise applications, with capabilities for transaction management, security, clustering, performance, availability, connectivity, and scalability.

By many measures, the Java language is the most popular programming language in use today. Its main benefit is the portability of Java applications across hardware platforms and operating systems — possible because the JVM installed on each platform understands the same bytecode.

The JVM is also a robust platform for executing languages other than the Java programming language. For example, Groovy, Scala, Clojure, and special implementations of Ruby and Python give developers the versatility to program for the JVM in a dynamic or functional language.

By supporting open standards in the enterprise, Java technology can use XML and web services to help share information and applications across business lines. Java technology serves as the backbone of many IBM products and technical consulting services and is critical to key IBM initiatives.

The evolving Java universe

Java technology was developed by Sun Microsystems, now part of Oracle Corporation. The Java Community Process (JCP), an open organization of international Java developers and licensees, develops and revises Java technology specifications, reference implementations, and technology compatibility kits. In 2007, Sun made the bulk of its core Java technology available as open-source software — commonly called OpenJDK — under the GNU general public license version 2 (GPLv2).

Java technology continues to evolve. In "Java technology, IBM style: A new era in Java technology," you can read about enhancements in latest Java SE version, including value-adds from the IBM Java Technology Center. One such major new functional area is an enhanced API for I/O, the topic of the two-part article "An NIO.2 primer."

And for a fascinating look at issues occupying the minds of the designers of the Java language's future versions, check out the Language designer's notebook column series.

Two superb resources for keeping on top of technology trends in the wider Java ecosystem are:

How does Java technology relate to web application development?

The Java language has long been a mainstay of web development, and recent years have seen an explosion of Java frameworks and tools that streamline web development and facilitate the creation of rich, interactive Web 2.0 applications.

Learn more about web development in the Java language:

How does Java technology relate to cloud computing?

Cloud computing solutions let their users conveniently access a shared pool of physical or virtual computing resources on demand, typically on a pay-as-you-go basis. The Java ecosystem is rapidly expanding to support developers who want to build, test, or deploy Java applications on the cloud. Especially relevant is Platform as a Service (PaaS), in which the cloud provider delivers not only on-demand hardware and operating-system services, but also application platforms and solution stacks. Learn more about it:

How does Java technology relate to mobile application development?

The popularity of smartphones, tablets, and other portable devices has surged in direct proportion to their ever-increasing capabilities. Java technology is in the mainstream of mobile development:

How does Java technology relate to SOA and web services?

A service-oriented architecture (SOA) is a component model that relates the functional units of an application (services) through well-defined interfaces and contracts between the services. The interface is defined independently of the hardware, operating system, and programming language in which the service is implemented, letting services constructed on different systems interact with one another in a uniform, universal manner. SOAs are a loosely coupled alternative model to more-traditional, tightly coupled, object-oriented models.

The resulting web services let business rules and processes be defined in XML so software applications can communicate in a platform- and programming language-independent manner. XML technology makes data portable and facilitates the creation of messages, while Java technology makes code portable. The fact that XML and the Java language work well together makes them an ideal combination to build and deploy web services.

Learn more about it:

How does Java technology relate to agile software development?

The Java development community has long embraced agile methodology — a highly collaborative, iterative, incremental, and quality-focused approach to software development. Agile development emphasizes flexibility, continuous testing and integration, and rapid delivery of functionality. Learn more:

How does Java technology relate to dynamic languages and functional programming?

Many aspiring Java developers have a wealth of experience in other languages. And even veteran Java developers appreciate that the Java programming language isn't the ideal language for every development need. Fortunately, the JVM's support for multiple languages lets the Java platform take advantage of the agility and features of modern dynamic scripting languages and functional languages for prototyping or building certain types of applications.

Learn more about it:

How does Java technology relate to open source software development?

Open source software is an integral part of Java software development. Myriad third-party open source projects extend Java technology with libraries, tools, frameworks, applications, and application servers to help programmers harness this powerful technology. Among them are these three major projects:

OpenJDK

OpenJDK is a free and open source implementation of the Java programming language, available under the GPLv2 license. In October 2010, IBM, previously the main corporate contributor of the competing Apache Harmony project, formed an alliance with Oracle to support OpenJDK and create a single, stable platform for Java development.

Learn more about IBM's core commitment to Java technology in "IBM, Oracle, OpenJDK, and the implications."

Eclipse

Eclipse is a vendor-neutral, open development platform and set of application frameworks for building software. The Eclipse platform is written in the Java language and provides a plug-in based framework that makes it easier to create, integrate, and use software tools. (IBM is a founding member of Eclipse and actively participates on the Eclipse.org Board of Stewards and its working subcommittees.) Learn more about some of the platform's component technologies for Java development:

Apache

The Apache Software Foundation is the umbrella organization for a panoply of open source projects that are predominantly Java language-based. Here's a sampling:

How can I learn Java programming skills and work on improving them?

You can take two routes to learning Java technology and improving your skills: enroll in a course (for certification or just for the learning) or teach yourself (and of course, practice by writing code). Besides tapping the knowledge of experienced developers, the coursework or certification path can offer tangible evidence to prospective employers that you have the skills to build the technology they need. And by experimenting on your own and using available resources, you sharpen your skills in various areas of Java technology. The following resources should help either endeavor.

Knowledge paths

Java technology knowledge paths on developerWorks are focused learning guides that bring together diverse training resources:

These resources are arranged in sequence to guide you from conceptual awareness to task mastery. Knowledge paths keep track of your progress as you work through them, so at any point you can quickly resume exactly where you left off.

Start learning Java programming fundamentals with the Become a Java developer knowledge path.

Tutorials and articles

Explore the Java technology zone's vast Technical library to discover a world of informative articles and hands-on Java tutorials.

Books, websites, and events

IBM technical training

Choose among a wide variety of online, classroom, and multimedia-based Java courses offered by IBM Global Services.

Certification training

IBM offers professional certification in such related technologies as WebSphere® development (for enterprise Java applications), IBM Rational® software, DB2®, XML, and SOA.

Forums

For an even more interactive approach to learning how to use the Java language, dive into the Java discussion forums, moderated by noted experts with years of real-world experience in crafting Java-related technology.

What IBM tools and products are available for Java programmers?

IBM is on the front lines as one of the leading innovators in the use of Java technology. This section highlights tools and products IBM offers to Java developers.

Free downloads

IBM Rational tools

IBM Rational tools are built on the Eclipse platform and can help make it easier to develop, test, and deploy high-quality applications. Rational tools for Java developers include:

IBM WebSphere

WebSphere Application Server is a fully featured Java EE-certified application server that delivers the secure, scalable, resilient application infrastructure enterprises needed for a service-oriented architecture. Learn more about Java development tools for the WebSphere family:

IBM Information Management software

IBM offers a powerful family of relational database management system (RDBMS) servers along with software for business intelligence and performance management, data warehousing, data analysis, data mining, media asset management, enterprise content management, and information integration. Find out how IBM Information Management software supports Java programming, including client applications, server-side capabilities, and tools to make development and deployment easier

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help