I shall start by discussing the limitations of Java in general. You can skip to the next section if academic comparisons do not interest you.
I hope that the issues brought up in this section will show what you cannot accomplish in Java because of the absence of pointer operations, and also what you can do in C# because of the ability to perform pointer operations.
Java has three significant limitations. 
 You can perform some of the listed operations via JNI. However, JNI is not a pure-Java solution.
Coding beyond the JVM is impossible. You cannot write very low-level codes below the JVM layer. For example, you cannot write codes that interact with the underlying operating system's API using pure Java. The ...