I have few datatypes used in C# that I need to translate to Java.
uint, Int16, UInt16, Nullable<Int16>
What will be the appropriate datatype for these in Java?
Although the link provided by x2 is good, it's not all that useful when dealing with unsigned primitives. For example: the range of an int is 2,147,483,648 to 2,147,483,647 (which is the same in both languages), but the range of C#s uint is 0 to 4,294,967,295. Java doesn't have a similar primitive type, so you'd have to use something that contains that range (in this case, a long).
If you are only worried about 1-way compatibility (C# to Java) these should work:
EDIT:: I just found this article on MSDN about the differences between the data types in the two languages.