News for hackers. Stuff that matters.
Re:What's new in PHP 8? by gtsteve on Friday August 14, 2020 @05:49AM (#24155848)
Really? Not being a Java guy, what is the explanation for this?

Terms like boxing and reference comparison come to mind but I can't stitch them into a narrative to explain this.

Re:What's new in PHP 8? by Twisol on Friday August 14, 2020 @06:02AM (#24155945)
`Long` is a boxed (reference) type, but small numbers are interned so you get the same reference when boxing a primitive value. Larger numbers aren't interned, so you get fresh boxes.

https://stackoverflow.com/questions/1700081/why-is-128-128-f...

Re:What's new in PHP 8? by croo on Monday August 17, 2020 @04:13AM (#24185110)
Reference comparison it is with a twist: the jvm caches the most common integers. You'll get the same object from -128 to +127 when implicitly assigning value. This is part of the spec, and can be set to a larger pool with -XX:AutoBoxCacheMax (but cannot be turned off).

If you explicitly ask for a new object (Long a = new Long(123l);) you will get a new object and the comparison will fail as expected.

The moral of the story is to always use .equals().