var不会影响性能

请记住,在 Java 中,类型不是在运行时推断的,而是在编译时推断的。
这意味着生成的字节码与显式类型声明相同,它确实包含有关类型的信息。
这意味着在运行时没有另外的处理。

var不是关键字

虽然看起来像,var不是保留的 java 关键字。
因此,我们可以创建名称为“var”的变量,这是允许的。

var var = 10; 	//Valid Declaration

int var = 10; 	//Also valid Declaration

var同时声明和初始化

使用 var时,你必须在同一个地方初始化变量。
我们不能将声明和初始化放在不同的地方。
如果我们没有就地初始化变量,那么我们将收到编译错误 Cannot use 'var' on variable without initializer

var i;	//Invalid Declaration - - Cannot use 'var' on variable without initializer

var j = 10; //Valid Declaration
System.out.println(i);
var - 局部变量类型推断

当我们使用 var声明变量时,基本上,它不是声明变量类型,而是根据其设置的类型假定其类型。
例如

var str = "Hello world";
//or
String str = "Hello world";

在上面的例子中,在第一条语句中,你将一个 String设置为变量 str,因此它被隐式假定为 String类型。
第一条语句本质上等同于上述示例中的第二条语句。

欢迎 on it road

var用法

使用 var 仅限于带有初始值设定项的局部变量、增强的 for 循环中的索引以及在传统 for 循环中声明的局部变量;它不适用于方法形式、构造函数形式、方法返回类型、字段、捕获形式或者任何其他类型的变量声明。

Java var 可以用在

  • 带有初始值设定项的局部变量
  • 增强的 for 循环中的索引
  • 在传统的 for 循环中声明的局部变量
var siteName = "onitroad.com";

for ( var object : dataList){
    System.out.println( object );
}
for ( var i = 0 ; i < dataList.size(); i++ ){
    System.out.println( dataList.get(i) );
}

Java var 不可以用在

  • 方法参数
  • 构造函数参数
  • 方法返回类型
  • 类字段
  • 捕获形式(或者任何其他类型的变量声明)
public class Application {

	//var firstName;	//Not allowed as class fields

	//public Application(var param){ 	//Not allowed as parameter 

    //}
	/*try{

    } catch(var ex){	//Not allowed as catch formal 
    }*/
    /*public var demoMethod(){	//Not allowed in method return type
    	return null;
    }*/
    /*public Integer demoMethod2( var input ){	//Not allowed in method parameters
    	return null;
    }*/
}
日期:2020-09-17 00:09:45 来源:oir作者:oir