Java var定义基本数据类型变量实际类型问题(原始类型或包装类)

简介
本文主要介绍Java中var定义基本数据类型变量情况,通过实例代码说明var推断变量的实际类型是原始类型或对应的包装类类型。

1、var推断变量类型

var要求编译器从初始化器的类型推断变量的类型,42的自然类型是int,所以number是int:

var a = 1;  // a 是 'int' 

如果要改变推断出的类型:

var x = (Integer) 10;  // x 现在是 Integer

2、代码说明

编译器处理var number = 42;类似于int number = 42;

public void method(Integer i) {
    System.out.print("Integer method");
}
public void method(int i) {
    System.out.print("int method");
}
var n = 42; // n has type 'int' 
method(n); // => "int method"

自动装箱:

只有一个方法时,会自动装箱

public void method(Integer i) {
    System.out.print("Integer method");
}
var n = 42; // a has type 'int'
method(n); // => "Integer method"

3、用Jshell说明

jshell> Integer boxed1 = 42000;
boxed1 ==> 42000
jshell> Integer boxed2 = 42000;
boxed2 ==> 42000
jshell> System.out.println(boxed1 == boxed2);
false
jshell> var infered1 = 42000;
infered1 ==> 42000
jshell> var infered2 = 42000;
infered2 ==> 42000
jshell> System.out.println(infered1 == infered2);
true

在第一次比较中,两个变量是不一样的;它们是不同的实例。然而,第二个比较是正确的,因此这里必须推断出一个int。

注意:要在家里尝试,请使用(-128,128)之外的值。包装类缓存会缓存范围内的整数实例。

了解更多分析及数据抓取可查看:
http://data.yisurvey.com:8989/
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值