Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Heh, as if Java's string was mundane, or even particularly well standardised. The implementation for String have varied in each of the JVM versions, and Android has a different version to the JDK.

Java's string, depending on the string, length, JVM version and a bunch of other factors may or may not:

- Be interned - so the result of "str1" == "str1" is compiler dependant (you must do "str1".equals("str1")).

- Maintain references to the string when doing a substring - e.g. "Java is a language full of quirks......".substring(0,4) may or may not hold a reference to the entire string. This has huge performance tradeoffs - e.g. if you parse JSON by doing .substring(), and aren't careful, then you can end up holding onto the entire unparsed JSON, even if you only keep track of a single obejct.



Are you seriously suggesting that String incompatibilites are a big issues in Java?

String interning is specified in the JLS: http://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#...

As far as I can tell, the substring "feature" has been there since Java 1.0 and was fixed in Java 7. Hardly groundbreaking stuff.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: