Java Java doesn't have struct. You may design a final class or a simple class to replace struct class Point { public int x, y; public Point(int x, int y) { this.x = x; this.y = y; } } Point a = new Point(10, 10); Point b = a; a.x = 100; System.out.println(b.x); prints: 100 Since Point is a reference type, b and a point to the same address, when a's value changed, b's value changed too.
C# A struct is a user-defined value type. It is declared in a very similar way to a class, except that it can't inherit from any class, nor can any class inherit from it. struct is not a reference type. struct Point { public int x, y; public Point(int x, int y) { this.x = x; this.y = y; } } Point a = new Point(10, 10); Point b = a; a.x = 100; System.Console.WriteLine(b.x); prints: 10 Since struct Point is a value type, not a reference type, a's value changed doesn't involve b's value.
get more about java vs C#:
1: http://www.javacamp.org/javavscsharp/
2: http://www.harding.edu/fmccown/java_csharp_comparison.html