<Tr> <Td> Provides object types and type names . Allows reflection via run - time type information (RTTI). </Td> <Td> Is reflective, allowing metaprogramming and dynamic code generation at runtime . </Td> </Tr> <Tr> <Td> Has multiple binary compatibility standards (commonly Microsoft (for MSVC compiler) and Itanium / GNU (for almost all other compilers)). </Td> <Td> Has one binary compatibility standard, cross-platform for OS and compiler . </Td> </Tr> <Tr> <Td> Optional automated bounds checking (e.g., the at () method in vector and string containers). </Td> <Td> All operations are required to be bound - checked by all compliant distributions of Java . HotSpot can remove bounds checking . </Td> </Tr> <Tr> <Td> Native unsigned arithmetic support . </Td> <Td> Native unsigned arithmetic unsupported . Java 8 changes some of this, but aspects are unclear . </Td> </Tr>

C++ vs java which is best to learn