Comment

Comment by cempaka

I can only think of a couple of ways to fix this, none of them ideal from a performance perspective:

- Make a defensive copy of the passed-in character array, which would be immediately discarded when it is encoded to bytes. This basically sucks given how often String creation happens in a typical Java program.

- Dispense with the whole use of the coder to check for non-equality of Strings, and insist on a character-by-character comparison (possibly from different encodings) for every call to String.equals() where the lengths are the same. Again, this would be a lot of wasted cycles in an extremely common JVM op.

I think the right answer here is to add something to the Javadoc about "modifying the input character array concurrently with String construction invites dragons." :-)

parent cempaka 3 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton