Java developed by SUN Microsystem, is an open source language that is used by developers to develop software and applications for various operating system and client servers. Microsoft .Net is a framework, that mostly works on Windows operating system and is used to develop software and application.
When a developer needs to choose between Java or .NET to develop a new software system or application, to make this choice one must know the similarities and differences that exist between them.
Microsoft .NET is a framework that can be used to develop software and application on client server. It is used specifically to design, create and run applications on the Windows platform, however, it can also be used on other operating system.
Java on the other hand is a programming language that uses Java APIs and Java class libraries to develop program that can run on any platform. The only requirement is Java Virtual Machines (JVM) which translates Java byte code into instructions for a particular operating system and the OS just need Java Runtime Environment (JRE).
.NET has AOT or Ahead of Time Compilation while Java has Just In Time compilation.
Java is Platform independent while .NET is language independent, which means you can compile a program and compile it to a .Net executable.
Java supports a Connected Architecture while .Net supports a Disconnected Architecture.
Java is a class based language that let application developer "Write Once Run Anywhere" (WORA).
Java was developed in Sun Microsystems, which was later overtaken by Oracle. Java is simple, robust, secure, portable and dynamic. Programs written in Java language can run on any operating system using Java bytecode, which are interpreted by Java Virtual Machines (JVM) .
Code written in each language of .NET can be used by other language. .NET Framework has Common Language Runtime (CLR) and class library. .NET Framework has Common Type System (CTS) that defines all possible datatypes and programming constructs.
.NET framework is primarily targeted for Windows operating system while Java is an open source that can run on any operating system. Here, one must note .NET provides mono to create cross platform applications, still it is mostly aimed for Windows.
.NET supports multiple languages like C#, VB.net, F# while J2EE is written in single language i.e.Java.