Comments (7)
Ref altgeek above: Was also confused by this. If the values assigned to the Integer objects are outside the -128 to 127 range, then the output will match the text explanation. The values used (47) causes it to fall into the exception due to cached numbers. So there are two learning opportunities here: equivalence of references vs values and the existence of the Integer class cache. As noted above, if you force the object to its own reference with the "new Integer", the text also holds as written.
from onjava8-examples.
From an email:
Hi Bruce,
I noticed an error on your book on Testing Object Equivalence
Initializing Integer n1 = 47 and Integer n2 = 47 will go as true and false in the comparison you make, however when initialized with Integer n1 = new Integer(45) and Integer n2 = new Integer(45) will produce the false and true output as described.
I guess there should be an update there on the “new” initialization.
Best regards,
Dragos
from onjava8-examples.
Fixed. Examples are available now, prose will appear in next Leanpub update but can be found here: https://www.bruceeckel.com/2021/02/04/java-object-equivalence/
from onjava8-examples.
Fixed. Examples are available now, prose will appear in next Leanpub update but can be found here: https://www.bruceeckel.com/2021/02/04/java-object-equivalence/
Bruce, is there any upgrade path for the newest/corrected edition for those of us that bought the initial release on google books?
from onjava8-examples.
from onjava8-examples.
from onjava8-examples.
from onjava8-examples.
Related Issues (20)
- The program operators/Literals may have a little mistake HOT 1
- Support for building and running the source code in IDEA HOT 2
- strings/BetterRead.java: unable to run / compile HOT 1
- Bikeshed: gradle build jcenter() -> mavenCentral()
- [Erratum]: enums/RoShamBo2.java(and bigger than 2)
- sorry,please delete this
- About StringBuilder
- about Boolean-expression,the first letter is capital
- Is this an IDE problem?
- About enums in switch Statements
- About Using EnumSet Instead of Flags
- About Appendix: Understanding equals() and hashCode()
- About Parallel Streams
- Build failed when running `gradlew run` HOT 3
- Unable to build with JDK 17. HOT 1
- I can't find the typeinfo package HOT 2
- Gradle Build and available OpenJdk Releases
- strings/UsingStringBuilder.java has incorrect results HOT 1
- How to append the root directoory to the classpath HOT 1
- Project setup HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from onjava8-examples.