The paper investigates two favored programming languages C# and Java that are similar in their nature. The aim of the paper is to compare Microsoft’s programming language with that of Oracle’s to recognize basic similarities in their features, as well as major differences.
C# is a modern programming language designed to be fully suitable with Microsoft. Its syntax is like C and C++. This language stands on C++ and Java. The aim of C# is to exactly illustrate a sequence of procedures that a computer can undertake to achieve a task. Its goal is to offer a simple object-oriented and enduring language for .NET reinforcement. Some tasks that C# undertakes include: putting or removing data in the database, presenting high speed graphics in games or videos, as well as controlling the electronic devices that are connected to the PC. C# has three Type categories which are: Value types, reference types, and pointer types. The way these types work is that the value Types stores the data, and during that time the reference Types is storing references to the data itself. The pointer Type is basically a variable that grasps the memory address of another Type. The only difference between value and reference types is the way they both store values in the memory.
Both programming languages share certain similarities: they are class-based object oriented type systems, designed with just-in-time compilation, and they use garbage collection. C# and Java support certain built-in types: primitive types in Java, and simple types in C#. Major difference in them is as follows: firstly, Java has primitive types that are not object oriented, and, secondly, its reference types have a common root type. Whereas, C# uses a unified type system for all root types. Moreover, both support signed integers with the same aliases, except for the 8-bit integer. Additionally, C# supports unsigned integer types, while Java does not support them. Also, C# allows type lifting, but Java does not. The Java runtime environment does not permit pointers. C#, on the contrary, allows use of pointers.
Flanagan, D. Java in a Nutshell. O'Reilly Media, 1996. Print.
Winand, M. A Practical Comparison of the Java and C++ Resource Management Facilities. 2003. PDF file.
Martin, R.C. Java vs. C++: A Critical Comparison. 1997. PDF file.