See for example, the List class presented below. This class implements a lisp like, non-updatable list. Non-updatability assures that it is OK for two lists to share nodes. Note that node deletion is handled by the system. In Java, Arrays are a true type and are always bounds checked.
Strings are also first class objects in Java.
They are not null terminated arrays. Strings are defined in a provided class. They are not updatable. There is a library of manipulation routines. They are bounds checked.