||Really, it's half-way about naming stuff.
g++ on x86 Java C# VB .NET
signed char byte sbyte ----
unsigned char ---- byte Byte
signed short short short Short
unsigned short char ushort,char ----
signed int/long int int Integer
unsigned int/long ---- uint ----
signed long long long long Long
unsigned long long ---- ulong ----
float float float Single
double double double Double
long double ---- ---- ----
---- ---- decimal Decimal
And I think some of the issues with extended doubles and g++ optimizations don't apply to Java (don't know about .NET). The big difference between C++ and the others is that C++ isn't the same on every compiler and platform (if you learn what stuff means in Java, you don't get confused when you change compilers).
Edit: changed "extended double" to "long double", because that's actually what g++ calls it. Also added VB.NET