Encapsulating Memory Management
String literals in C++ are very low level abstractions.
A string literal in C++ is treated as an array of character values, and the only permitted operations are those common to all arrays.
The String data type in Java is designed to provide a higher level of abstraction.
A version of this data structure is provided in the new Standard Template Library.