java10 var关键字浅析

article/2025/11/7 14:20:00

2018年3月20日,Oracle发布java10。java10为java带来了很多新特性,其中让人眼前一亮的便是var关键字的引入。

从今以后我们可以这样写java代码了。

public class Example {public static void main(String[] args) {var eg = new Example;eg.emptyFunc();}public void emptyFunc() {}
}

很方便是吧,但是java在var上是有要求的。总结起来,有以下三点很重要:

(1)只能用于局部变量上;

(2)声明时必须初始化;

(3)不能用作方法参数。

这三点很重要,但也让我看出了点什么,我大胆猜想,是不是javac会在编译时,悄悄将var换成所赋值的类型呢?

在java1.10的环境下,我们编译上面的代码。

借助于IDEA我们反编译上面的字节码文件Example.class结果如下:

var关键字被替换成了Example。 固然,验证了我们的猜想。我们再来看看下面这些代码:

public class UseVar {public void baseTypeVar() {var a = 1;var b = 255;var c = 256;var d = 10L;}
}

在java10环境下,我们使用javac编译上面的代码,然后借助于IDEA反编译得到的字节码文件UseVar.class文件

很奇怪,a, b, c都被反编译成boolean类型了,倒是d被反编译成long型了,符合预期的结果。至于a, b, c成为boolean类型,倒也验证了我另一篇文章里讲的,jvm是把java中的boolean当做int来理解了。总而言之,var在编译阶段是被会替换成所赋值的类型。

这也验证了上面的三个要求中的两个,为什么var声明变量时必须初始化,以及为什么不能用作方法参数。

【总结】:本质上,java仍然是静态强类型语言,var可以理解为java的一个语法糖。

【问题】:var为什么只能声明局部变量?var声明的变量可以被再次赋值吗?


http://chatgpt.dhexx.cn/article/cYliP5Un.shtml

相关文章

VAR模型Stata实例操作

一.步骤 1.序列平稳性检验 2.确定滞后阶数 3.模型平稳性检验 4.格兰杰因果关系检验 上述检验都通过后再进行以下步骤 5.脉冲响应分析 6.方差分解 二.各步骤的具体解释 1.序列平稳性检验 主要两种方法:单位根检验,看ACF、PACF图的截尾拖尾情况 …

jquery变量var的使用

变量var的使用 js的变量没有类型 var $li $(# file.id),$percent $li.find(.progress span);//console.log("percentage:", percentage);// 避免重复创建if (!$percent.length) {$percent $(<p class"progress"><span></span></…

简单了解var

下面我会使用几个小例子简单说明var的使用方法和含义。 Var变量&#xff0c;要定义变量&#xff0c;可以使用 var 操作符&#xff08;注意 var 是一个关键字&#xff09;&#xff0c;后跟变量名&#xff08;即标识符&#xff09;也叫创建JavaScript变量是我们在前端里比较常用…

【FinE】在险价值(VaR)计算

导航 VaR模型案例&#xff1a;AAPL历史模拟法参数模型分析法非参数bootstrapMonte-Carlo模拟计算 参考资料 VaR模型 在险价值Value-at-risk的定义为&#xff0c;在一定时期 Δ t \Delta t Δt内&#xff0c;一定的置信水平 1 − α 1-\alpha 1−α下某种资产组合面临的最大损失…

VAR模型

文章目录 一、VAR是什么&#xff1f;1.引入库2.读入数据3.执行程序 总结 一、VAR是什么&#xff1f; 以金融价格为例&#xff0c;传统的时间序列模型比如ARIMA,ARIMA-GARCH等&#xff0c;只分析价格自身的变化&#xff0c;模型的形式为&#xff1a; 其中称为自身的滞后项。 但…

VaR 与 CVaR

VaR, value at risk, 风险价值&#xff0c;表示金融产品在给定置信水平 α \alpha α 下的最大损失。用 X X X 表示该随机波动的金融产品收益&#xff0c; F X ( x ) F_X(x) FX​(x) 为其累计概率分布&#xff0c;则 VAR 的数学表示式为&#xff1a; VaR α ( X ) − inf ⁡…

python实现VaR和CVaR的计算

python实现VaR和CVaR的计算 1.引言2.问题2.1问题描述2.2 问题解析 3. 数据导入与数据预处理4.VaR的计算4.1 参数法4.2 蒙特卡洛法4.3 历史模拟法4.4 不同方法的VaR比较 5.CVaR的计算5.1 CVaR的计算5.2 VaR和CVaR的比较 6.结语7.代码和数据集链接8.参考资料 1.引言 VaR和CVaR的…

【FinE】正态分布和t分布下的CVaR

导航 CVaR and VaRModelnormal distributionstudent t distribution Case StudyReference CVaR and VaR CVaR(Conditional Value-at-Risk)也被称为Expected Shortfall(ES) 或者 Expected Tail Loss(ETL)&#xff0c;可以解释超过给定VaR值的期望损失&#xff0c;在很多风险分析…

条件风险价值CVaR

产生背景 &ThickSpace;&ThickSpace;&ThickSpace;&ThickSpace;&ThickSpace;&ThickSpace; \;\;\;\;\;\; CVaR即条件风险价值&#xff0c;是由RockafeUar和Uryasev等于1997年提出的一种较VaR更优的风险计量技术&#xff0c;其含义为在投资组合的损失超过某…

VaR和CVaR举例说明_笔记转载

风险价值VaR成为金融市场风险度量的主流指标 VaR自1993年发展至今已作为金融市场风险度量的主流指标被各银行、投资公司、证券公司及金融监管机构广泛采用。VaR不仅具有概念简单&#xff0c;易于沟通和理解的优点&#xff0c; 而且为不同金融工具构成的复杂的投资组合提供了一…

两个命令行应用程序的交互——使用Java的Process类完成复杂控制台程序的自动化操作(以围棋GTP协议为例)

GitHub地址链接&#xff1a;https://github.com/zhmgczh/GTPService 这个项目其实继承并发展于我的上一个项目——用模式识别实现围棋转接器的开源Java项目——一个类似GTool2.exe的工具&#xff0c;是一个变相的补充&#xff0c;主要解决如何使用Java完成两个控制台应用程序相…

GTP(GPRS Tunnelling Protocol)协议http://blog.csdn.net/stephen_yin/article/details/6951237

GTP&#xff08;GPRS Tunnelling Protocol&#xff09;协议 标签&#xff1a; extensionheaderinternet网络wapxhtml 2011-11-09 10:15 6097人阅读 评论(0) 收藏 举报 GTP&#xff08;GPRS Tunnelling Protocol&#xff09; 协议在 GPRS 骨干网中在GSNs 之间&#xff08;…

GTP(GPRS Tunnelling Protocol)协议

GTP&#xff08;GPRS Tunnelling Protocol&#xff09; 协议在 GPRS 骨干网中在GSNs 之间&#xff08;如 SGSN 和 GGSN&#xff09;提供协议信道&#xff0c;所有的 PTP 分组数据协议的PDUs 应由GTP 协议进行封装。 GTP概述 GTP 协议应用在SGSN 和GGSN 之间&#xff0c;为各…

移动互联网新协议 GTP 中被曝多个高危漏洞,影响4G和5G 用户

聚焦源代码安全&#xff0c;网罗国内外最新资讯&#xff01; 编译&#xff1a;奇安信代码卫士团队 Positive Technologies 公司上周发布报告《2020年 LTE 和5G 网络中的漏洞》指出&#xff0c;移动网络运营商 (MNOs) 使用的当代通信协议中被曝多个高危漏洞&#xff0c;可被用于…

GPRS核心网-GTP-C协议解析

GPRS隧道协议&#xff08;GTP&#xff09;是3GPP标准定义的隧道协议&#xff0c;用于在3G /4G/5G网络中承载通用分组无线服务&#xff08;GPRS&#xff09;。 GTP用于在服务网关&#xff08;S-GW&#xff09;和分组数据网络网关&#xff08;P-GW&#xff09;以及S-GW和移动性管…

网络协议 终章 - GTP 协议:复杂的移动网络

前面都是讲电脑上网的情景&#xff0c;今天我们就来认识下使用最多的移动网络上网场景。 移动网络的发展历程 你一定知道手机上网有 2G、3G、4G 的说法&#xff0c;究竟这都是什么意思呢&#xff1f;有一个通俗的说法就是&#xff1a;用 2G 看 txt&#xff0c;用 3G 看 jpg&…

gtp传输java_一种GTP数据包传输方法、相关装置及存储介质与流程

本申请实施例涉及通信领域,尤其涉及一种GTP数据包传输方法、相关装置及存储介质。 背景技术: 通用分组无线服务隧道协议(General Packet Radio Service Tunnelling Protocol,GTP)是一种用于传输分组数据的通信协议。目前,己使用的GTP协议可被分为通用分组无线服务(General …

GTP协议

GTP协议 (2010-08-27 17:20:54) 转载▼ 标签&#xff1a; 杂谈 分类&#xff1a; 计算机网络 摘要&#xff1a;本文分析GPRS的GSN之间的GTP协议&#xff0c;阐述GTP协议的含义及用法。 关键词&#xff1a;GPRS GTP 协议 一、 引言 在GPRS系统的GSN&#xff08;GPRS Support …

GTP协议格式分析

点击上方↑↑↑蓝字 [ 协议分析与还原 ] 关注我们 “ 分析GTP协议。” 本文对比较枯燥的协议资料进行学习&#xff0c;有需要可继续阅读&#xff0c;找到自己关注的知识点&#xff0c;暂时无需要可直接拉到文末表示阅读结束&#xff0c;让微信记下热爱学习的你的痕迹。 如果说T…

关于GTPv1协议解析

概述&#xff1a; ***&#xff08;简单说一下&#xff0c;不重点讲述啦&#xff09; GPRS 隧道协议 (GTP) 是一种隧道协议&#xff0c;用于 GPRS、UMTS、LTE 和 5G 网络。它分为两个独立的协议&#xff1a;GTP-C 和 GTP-U。GTP-C用于GPRS核心网络中&#xff0c;用于不同网络节…