首页 > 编程知识 正文

java instanceof,integer转换为string

时间:2023-05-06 06:35:01 阅读:146754 作者:426

在项目开发中使用Interger将字符串转换为Integer类型,并进行相应比较,发现起始数据小,没有发现15等问题

字符串a=' 15 '; system.out.println (integer.value of (a )==integer.valueof('15 ' ) )返回的结果为true,但请给我423

字符串a=' 423 '; system.out.println (Integer.value of (a )==integer.valueof('423 ' ) )返回的结果为false,如果立即查看integer的源代码,则

publicstaticintegervalueof (inti ) { final int offset=128; if(I=-128I=127 ) (/mustcachereturnintegercache.cache [ I offset ]; }返回新integer (I; 发现在jdk的未-128-127数据中创建了缓存。 如果是在此范围内的数字,则不会从新的new Integer更改。 问题,我知道了。 如果是423,则会创建两个对象,但肯定不是,因为我们使用==比较地址符号。

可以确认存储器地址。 15个内存地址

423个地址

423的内存地址不同。 所以需要用equals进行比较。 不应该使用==进行比较

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。