Nope, crucial difference between Java’s char[] and Rust’s &str is that the latter is always a pointer to an existing section of memory. When you create a char[], it allocates a new section of memory (and then you get a pointer to that).
One thing that they might be able to do, is to optimize it in the JVM, akin to Rust’s Cow.
Basically, you could share the same section of memory between multiple String instances and only if someone writes to their instance of that String, then you copy it into new memory and do the modification there.
Java doesn’t have mutability semantics, which Rust uses for this, but I guess, with object encapsulation, they could manually implement it whenever a potentially modifying method is called…?
Nope, crucial difference between Java’s
char[]
and Rust’s&str
is that the latter is always a pointer to an existing section of memory. When you create achar[]
, it allocates a new section of memory (and then you get a pointer to that).One thing that they might be able to do, is to optimize it in the JVM, akin to Rust’s
Cow
.Basically, you could share the same section of memory between multiple
String
instances and only if someone writes to their instance of thatString
, then you copy it into new memory and do the modification there.Java doesn’t have mutability semantics, which Rust uses for this, but I guess, with object encapsulation, they could manually implement it whenever a potentially modifying method is called…?