Java and C# Comparison

This is a quick reference guide to highlight some key syntactical differences between Java and C#.

This is not a complete overview of either language. Hope you find this useful!

Also see VB.NET and C# Comparison.

Java Program Structure C# package hello;



public class HelloWorld {

public static void main(String[] args) {

String name = "Java";





if (args.length == 1)

name = args[0];



System.out.println("Hello, " + name + "!");

}

} using System;



namespace Hello {

public class HelloWorld {

public static void Main(string[] args) {

string name = "C#";





if (args.Length == 1)

name = args[0];



Console.WriteLine("Hello, " + name + "!");

}

}

} Java Comments C#







Java Data Types C#

boolean

byte

char

short, int, long

float, double

Object

String

arrays, classes, interfaces

int x = 123;

String y = Integer.toString(x);

y = "456";

x = Integer.parseInt(y);

double z = 3.5;

x = (int) z;

bool

byte, sbyte

char

short, ushort, int, uint, long, ulong

float, double, decimal

structures, enumerations

object

string

arrays, classes, interfaces, delegates

int x = 123;

String y = x.ToString();

y = "456";

x = int.Parse(y);

double z = 3.5;

x = (int) z; Java Constants C#

final double PI = 3.14; const double PI = 3.14;

readonly int MAX_HEIGHT = 9; Java Enumerations C# enum Action {Start, Stop, Rewind, Forward};

enum Status {

Flunk(50), Pass(70), Excel(90);

private final int value;

Status(int value) { this.value = value; }

public int value() { return value; }

}; Action a = Action.Stop;

if (a != Action.Start)

System.out.println(a);



Status s = Status.Pass;

System.out.println(s.value()); enum Action {Start, Stop, Rewind, Forward}; enum Status {Flunk = 50, Pass = 70, Excel = 90};













Action a = Action.Stop;

if (a != Action.Start)

Console.WriteLine(a); Status s = Status.Pass;

Console.WriteLine((int) s); Java Operators C#

== < > <= >= !=

+ - * /

%

/

Math.Pow(x, y)

= += -= *= /= %= &= |= ^= <<= >>= >>>= ++ --

& | ^ ~ << >> >>>

&& || & | ^ ! Note: && and || perform short-circuit logical evaluations

+

== < > <= >= !=

+ - * /

%

/

Math.Pow(x, y)

= += -= *= /= %= &= |= ^= <<= >>= ++ --

& | ^ ~ << >>

&& || & | ^ ! Note: && and || perform short-circuit logical evaluations

+ Java Choices C# greeting = age < 20 ? "What's up?" : "Hello"; if (x < y)

System.out.println("greater"); if (x != 100) {

x *= 5;

y *= 2;

}

else

z *= 6; int selection = 2;

switch (selection) { // Must be byte, short, int, char, or enum

case 1: x++; // Falls through to next case if no break

case 2: y++; break;

case 3: z++; break;

default: other++;

} greeting = age < 20 ? "What's up?" : "Hello"; if (x < y)

Console.WriteLine("greater"); if (x != 100) {

x *= 5;

y *= 2;

}

else

z *= 6;



string color = "red";

switch (color) { // Can be any predefined type

case "red": r++; break; // break is mandatory; no fall-through

case "blue": b++; break;

case "green": g++; break;

default: other++; break; // break necessary on default

} Java Loops C# while (i < 10)

i++;



for (i = 2; i <= 10; i += 2)

System.out.println(i); do

i++;

while (i < 10); for (int i : numArray)

sum += i;

import java.util.ArrayList;

ArrayList<Object> list = new ArrayList<Object>();

list.add(10);

list.add("Bisons");

list.add(2.3);



for (Object o : list)

System.out.println(o); while (i < 10)

i++;



for (i = 2; i <= 10; i += 2)

Console.WriteLine(i); do

i++;

while (i < 10); foreach (int i in numArray)

sum += i; // foreach can be used to iterate through any collection

using System.Collections;

ArrayList list = new ArrayList();

list.Add(10);

list.Add("Bisons");

list.Add(2.3);



foreach (Object o in list)

Console.WriteLine(o); Java Arrays C# int nums[] = {1, 2, 3}; or int[] nums = {1, 2, 3};

for (int i = 0; i < nums.length; i++)

System.out.println(nums[i]);



String names[] = new String[5];

names[0] = "David";



float twoD[][] = new float[rows][cols];

twoD[2][0] = 4.5; int[][] jagged = new int[5][];

jagged[0] = new int[5];

jagged[1] = new int[2];

jagged[2] = new int[3];

jagged[0][4] = 5; int[] nums = {1, 2, 3};

for (int i = 0; i < nums.Length; i++)

Console.WriteLine(nums[i]);



string[] names = new string[5];

names[0] = "David";



float[,] twoD = new float[rows, cols];

twoD[2,0] = 4.5f; int[][] jagged = new int[3][] {

new int[5], new int[2], new int[3] };

jagged[0][4] = 5; Java Functions C#

int Add(int x, int y) {

return x + y;

} int sum = Add(2, 3);

void PrintSum(int x, int y) {

System.out.println(x + y);

} PrintSum(2, 3); void TestFunc(int x, Point p) {

x++;

p.x++;

p = null;

} class Point {

public int x, y;

} Point p = new Point();

p.x = 2;

int a = 1;

TestFunc(a, p);

System.out.println(a + " " + p.x + " " + (p == null) );











int Sum(int ... nums) {

int sum = 0;

for (int i : nums)

sum += i;

return sum;

} int total = Sum(4, 3, 2, 1);

int Add(int x, int y) {

return x + y;

} int sum = Add(2, 3);

void PrintSum(int x, int y) {

Console.WriteLine(x + y);

} PrintSum(2, 3);

void TestFunc(int x, ref int y, out int z, Point p1, ref Point p2) {

x++; y++; z = 5;

p1.x++;

p1 = null;

p2 = null;

} class Point {

public int x, y;

} Point p1 = new Point();

Point p2 = new Point();

p1.x = 2;

int a = 1, b = 1, c;

TestFunc(a, ref b, out c, p1, ref p2);

Console.WriteLine("{0} {1} {2} {3} {4}",

a, b, c, p1.x, p2 == null);

int Sum(params int[] nums) {

int sum = 0;

foreach (int i in nums)

sum += i;

return sum;

} int total = Sum(4, 3, 2, 1); // returns 10 Java Strings C#

String school = "Harding ";

school = school + "University";

String mascot = "Bisons";

if (mascot == "Bisons")

if (mascot.equals("Bisons"))

if (mascot.equalsIgnoreCase("BISONS"))

if (mascot.compareTo("Bisons") == 0) System.out.println(mascot.substring(2, 5));

java.util.Calendar c = new java.util.GregorianCalendar(1973, 10, 12);

String s = String.format("My birthday: %1$tb %1$te, %1$tY", c);

StringBuffer buffer = new StringBuffer("two ");

buffer.append("three ");

buffer.insert(0, "one ");

buffer.replace(4, 7, "TWO");

System.out.println(buffer);

string school = "Harding ";

school = school + "University";

string mascot = "Bisons";

if (mascot == "Bisons")

if (mascot.Equals("Bisons"))

if (mascot.ToUpper().Equals("BISONS"))

if (mascot.CompareTo("Bisons") == 0) Console.WriteLine(mascot.Substring(2, 3));

DateTime dt = new DateTime(1973, 10, 12);

string s = "My birthday: " + dt.ToString("MMM dd, yyyy");

System.Text.StringBuilder buffer = new System.Text.StringBuilder("two ");

buffer.Append("three ");

buffer.Insert(0, "one ");

buffer.Replace("two", "TWO");

Console.WriteLine(buffer); Java Exception Handling C#

Exception ex = new Exception("Something is really wrong.");

throw ex; try {

y = 0;

x = 10 / y;

} catch (Exception ex) {

System.out.println(ex.getMessage());

} finally {



} Exception up = new Exception("Something is really wrong.");

throw up;

try {

y = 0;

x = 10 / y;

} catch (Exception ex) {

Console.WriteLine(ex.Message);

} finally {



} Java Namespaces C# package harding.compsci.graphics;

























import harding.compsci.graphics.Rectangle;

import harding.compsci.graphics.*; namespace Harding.Compsci.Graphics {

...

} namespace Harding {

namespace Compsci {

namespace Graphics {

...

}

}

}

using Rectangle = Harding.CompSci.Graphics.Rectangle;

using Harding.Compsci.Graphics; Java Classes / Interfaces C#

public

private

protected

static





class FootballGame extends Competition {

...

}

interface IAlarmClock {

...

}

interface IAlarmClock extends IClock {

...

}

class WristWatch implements IAlarmClock, ITimer {

...

}

public

private

internal

protected

protected internal

static

class FootballGame : Competition {

...

}

interface IAlarmClock {

...

}

interface IAlarmClock : IClock {

...

}

class WristWatch : IAlarmClock, ITimer {

...

} Java Constructors / Destructors C# class SuperHero {

private int mPowerLevel; public SuperHero() {

mPowerLevel = 0;

} public SuperHero(int powerLevel) {

this.mPowerLevel= powerLevel;

}

protected void finalize() throws Throwable {

super.finalize();

}

} class SuperHero {

private int mPowerLevel;



public SuperHero() {

mPowerLevel = 0;

}



public SuperHero(int powerLevel) {

this.mPowerLevel= powerLevel;

}



~SuperHero() {



}

} Java Objects C# SuperHero hero = new SuperHero(); hero.setName("SpamMan");

hero.setPowerLevel(3);



hero.Defend("Laura Jones");

SuperHero.Rest(); SuperHero hero2 = hero;

hero2.setName("WormWoman");

System.out.println(hero.getName());



hero = null; if (hero == null)

hero = new SuperHero(); Object obj = new SuperHero();

System.out.println("object's type: " + obj.getClass().toString());

if (obj instanceof SuperHero)

System.out.println("Is a SuperHero object."); SuperHero hero = new SuperHero();



hero.Name = "SpamMan";

hero.PowerLevel = 3; hero.Defend("Laura Jones");

SuperHero.Rest(); SuperHero hero2 = hero;

hero2.Name = "WormWoman";

Console.WriteLine(hero.Name); hero = null ; if (hero == null)

hero = new SuperHero(); Object obj = new SuperHero();

Console.WriteLine("object's type: " + obj.GetType().ToString());

if (obj is SuperHero)

Console.WriteLine("Is a SuperHero object."); Java Properties C# private int mSize; public int getSize() { return mSize; }

public void setSize(int value) {

if (value < 0)

mSize = 0;

else

mSize = value;

}

int s = shoe.getSize();

shoe.setSize(s+1); private int mSize; public int Size {

get { return mSize; }

set {

if (value < 0)

mSize = 0;

else

mSize = value;

}

} shoe.Size++; Java Structs C#



No structs in Java. struct StudentRecord {

public string name;

public float gpa;



public StudentRecord(string name, float gpa) {

this.name = name;

this.gpa = gpa;

}

}



StudentRecord stu = new StudentRecord("Bob", 3.5f);

StudentRecord stu2 = stu;



stu2.name = "Sue";

Console.WriteLine(stu.name);

Console.WriteLine(stu2.name); Java Console I/O C# java.io.DataInput in = new java.io.DataInputStream(System.in);

System.out.print("What is your name? ");

String name = in.readLine();

System.out.print("How old are you? ");

int age = Integer.parseInt(in.readLine());

System.out.println(name + " is " + age + " years old.");

int c = System.in.read();

System.out.println(c);

System.out.printf("The %s costs $%.2f for %d months.%n", "studio", 499.0, 3);

System.out.printf("Today is %tD

", new java.util.Date()); Console.Write("What's your name? ");

string name = Console.ReadLine();

Console.Write("How old are you? ");

int age = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("{0} is {1} years old.", name, age);



Console.WriteLine(name + " is " + age + " years old."); int c = Console.Read();

Console.WriteLine(c);

Console.WriteLine("The {0} costs {1:C} for {2} months.

", "studio", 499.0, 3);

Console.WriteLine("Today is " + DateTime.Now.ToShortDateString()); Java File I/O C# import java.io.*;

FileWriter writer = new FileWriter("c:\\myfile.txt");

writer.write("Out to file.

");

writer.close();

FileReader reader = new FileReader("c:\\myfile.txt");

BufferedReader br = new BufferedReader(reader);

String line = br.readLine();

while (line != null) {

System.out.println(line);

line = br.readLine();

}

reader.close();

FileOutputStream out = new FileOutputStream("c:\\myfile.dat");

out.write("Text data".getBytes());

out.write(123);

out.close();

FileInputStream in = new FileInputStream("c:\\myfile.dat");

byte buff[] = new byte[9];

in.read(buff, 0, 9);

String s = new String(buff);

int num = in.read();

in.close(); using System.IO;

StreamWriter writer = File.CreateText("c:\\myfile.txt");

writer.WriteLine("Out to file.");

writer.Close();

StreamReader reader = File.OpenText("c:\\myfile.txt");

string line = reader.ReadLine();

while (line != null) {

Console.WriteLine(line);

line = reader.ReadLine();

}

reader.Close();

BinaryWriter out = new BinaryWriter(File.OpenWrite("c:\\myfile.dat"));

out.Write("Text data");

out.Write(123);

out.Close();

BinaryReader in = new BinaryReader(File.OpenRead("c:\\myfile.dat"));

string s = in.ReadString();

int num = in.ReadInt32();

in.Close();

Page last modified:





This work is licensed under a Creative Commons License.



Please send any corrections or comments to fmccown@harding.edu.



Home