博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java编程细节总结(五):JAVA整型中128陷阱
阅读量:3916 次
发布时间:2019-05-23

本文共 639 字,大约阅读时间需要 2 分钟。

今天小编今天在学习的过程中发现了一些java的细节问题,然后感觉超级奇怪,然后通过查阅才发现是平常不注意的细节问题。


首先看如下代码:

public static void main(String[] args){		Integer a = 68;		Integer b = 68;		Integer c = 127;		Integer d = 127;		Integer e = 128;		Integer f = 128;		System.out.print("a和b:");		System.out.println(a == b);		System.out.print("c和d:");		System.out.println(c == d);		System.out.print("a和b:");		System.out.println(e == f);			}

大家猜一下输出的是什么呢?是不是第一感觉觉得输出的都是true呢?哈哈哈哈。= =

其实答案是两个true和一个false。

这是为什么呢?

这里涉及到一个自动装箱问题,显而易见,Integer类在进行赋值的过程中如果超过127就会进行一个地址比较,在jvm中地址是不一样的才发生一个false返回结果。此时我们必须明白就是,java中Integer类是超过128就自动装箱了,那么有正必有负,它的负值范围在多少呢?正确来讲是-128~127之间。如果不信的朋友可以亲手试试。

 

总之,在这里要记住了喂!!~

 

 

转载地址:http://untrn.baihongyu.com/

你可能感兴趣的文章
[头脑风暴] 解读Docker Bridge网络模型
查看>>
集成平台集群任务动态分派
查看>>
【.net core】电商平台升级之微服务架构应用实战
查看>>
【翻译】.NET 5 Preview 1 发布
查看>>
使用GUI工具Portainer.io管控Docker容器
查看>>
Abp vNext发布v2.3!
查看>>
.NET Core开发实战(第27课:定义Entity:区分领域模型的内在逻辑和外在行为)--学习笔记...
查看>>
BeetleX之vue-autoui自匹配UI插件
查看>>
.NET Core开发实战(第28课:工作单元模式(UnitOfWork):管理好你的事务)--学习笔记...
查看>>
如何用 Blazor 实现 Ant Design 组件库?
查看>>
DotNetCore Web应用程序中的Session管理
查看>>
从业务需求抽象成模型解决方案
查看>>
Kafka
查看>>
Magicodes.IE 2.2发布
查看>>
应用交付老兵眼中的Envoy, 云原生时代下的思考
查看>>
.NET 开源项目 StreamJsonRpc 介绍[上篇]
查看>>
.NET Core微服务开发选项
查看>>
探讨NET Core数据进行3DES加密或解密弱密钥问题
查看>>
Vue 3拖更,尤雨溪介绍最新进展
查看>>
如何利用.NETCore向Azure EventHubs准实时批量发送数据?
查看>>