编译器的2点优化

优化1

对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围,那么javac编译器将会自动隐含地为我们补上一个(byte)(short)(char)。

  • 如果没有超过左侧的范围,编译器补上强转。
  • 如果右侧超过了左侧范围,那么直接编译器报错。

代码举例

public class Demo12Notice {public static void main(String[] args) {// 右侧确实是一个int数字,但是没有超过左侧的范围,就是正确的。// int --> byte,不是自动类型转换byte num1 = /*(byte)*/ 30; // 右侧没有超过左侧的范围
        System.out.println(num1);// byte num2 = 128; // 右侧超过了左侧的范围,直接报错// int --> char,没有超过范围// 编译器将会自动补上一个隐含的(char)char zifu = /*(char)*/ 65;System.out.println(zifu);}
}

执行结果

优化2

在给变量进行赋值的时候,如果右侧的表达式当中全都是常量,没有任何变量,那么编译器javac将会直接将若干个常量表达式计算得到结果。例如:short result = 5 + 8; // 等号右边全都是常量,没有任何变量参与运算编译之后,得到的.class字节码文件当中相当于【直接就是】:short result = 13;右侧的常量结果数值,没有超过左侧范围,所以正确。这称为“编译器的常量优化”。但是注意:一旦表达式当中有变量参与,那么就不能进行这种优化了。

代码举例

public class Demo13Notice {public static void main(String[] args) {short num1 = 10; // 正确写法,右侧没有超过左侧的范围,short a = 5;short b = 8;// short + short --> int + int --> int// short result = a + b; // 错误写法!左侧需要是int类型// 右侧不用变量,而是采用常量,而且只有两个常量,没有别人short result = 5 + 8;System.out.println(result);// short result2 = 5 + a + 8;  错误,不能常量优化
    }
}

执行结果

 

 



转载于:https://www.cnblogs.com/wurengen/p/11204352.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410637.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

excel冻结窗口_excel成绩表怎么固定表头或者某一行?

当浏览成绩表时,很多人都会有这种困扰,就是好不容易找到自己的名字后,却又要往上翻看一下这个成绩对应的科目是什么,才能知道自己的各科成绩分别是多少。怎样才能固定表头或者某一行,不用来回浏览就可以轻松看到自己的…

常用的服务器系统,常用的服务器操作系统

常用的服务器操作系统 内容精选换一换云耀云服务器(Hyper Elastic Cloud Server,HECS)是可以快速搭建简单应用的新一代云服务器,具备独立、完整的操作系统和网络功能。提供快速应用部署和简易的管理能力,适用于网站搭建、开发环境等低负载应用…

Unity C#笔记 协程详解(转)

目录 什么是协程多线程协程 协程的使用场景协程使用示例Invoke的缺陷协程语法 开启协程终止协程挂起协程的执行原理什么是协程 在Unity中,协程(Coroutines)的形式是我最喜欢的功能之一,我都会使用它来控制需要定时的。 协同程序&a…

差异表达基因热图怎么看_多变的热图1(新手专用)

热图(heatmap)用不同的颜色和颜色的深浅来直观的展示数据之间的差异。在测序类的文章里,几乎必有一幅热图用来展示差异表达基因。很多工具都可以完成热图的制作,今天这篇文章主要介绍利用R语言的 pheatmap包制作热图的简单小例子。…

金属材料手册_不锈钢品种手册简化版

作者:王鹤 / Z0012737 /一、不锈钢品种概况 1. 不锈钢的分类与用途不锈钢种类繁多,按组织结构可分为铁素体不锈钢、奥氏体不锈钢、马氏体不锈钢、双相不锈钢和沉淀硬化不锈钢。按化学成分可分为铬锰镍系、铬镍系不锈钢和铬系不锈钢,分别对应…

转:GridView 模板列中的数据绑定

<asp:TemplateField HeaderText"姓名"> <ItemTemplate> <%# Eval("FirstName") %> <%# Eval("LastName") %> </ItemTemplate><asp:Templat…

街篮混服服务器信息,街篮手游闻鸡起舞服务器火爆开启

街篮手游闻鸡起舞 金鸡独立服务器火爆开启&#xff0c;第一手游网小编已经给大家整理好了&#xff0c;想必玩家们都对这款游戏的内容非常的期待。所以现在第一时间把这篇攻略分享给玩家们&#xff0c;希望你们喜欢。也希望能对大家有所帮助&#xff0c;下面就请大家一起跟着小编…

wringPi 初始化GPIO 为上拉_GPIO接口

//阅读完大约10min//本文中的正文&#xff0c;改编自以下链接评论&#xff0c;由于非常全面明晰&#xff0c;所以我将之采纳。STM32的I/O口的8种工作模式-OpenEdv-开源电子网​www.openedv.com前言首先了解一下GPIO是什么&#xff1f;GPIO&#xff08;英语&#xff1a;General-…

mc服务器右上角信号格,手机右上角的网络信号标识是什么意思?

E指EDGE网络&#xff0c;属2.75G。移动卡的手机图标有这三种G&#xff0c;E&#xff0c;T或者(H)移动用户&#xff1a;G&#xff1a;全称&#xff1a;gprs既传输速率理论的峰值为114Kbps&#xff0c;这是早其的无线网络传输方式。E&#xff1a;全称&#xff1a;EDGE既传输速率在…

nginx下只能通过域名,禁止使用ip访问

今天来了一个需求&#xff0c;ip访问返回500&#xff0c;域名访问正常&#xff0c;只需在nginx.conf中添加 server { listen 80 default; #default 必须加的return 500; } 也可以把这些流量收集起来&#xff0c;导入到自己的网站&#xff0c;只要做以下跳转设置就可以&#…

java接口构建英雄属性_Python接口类的多继承以及抽象类的单继承

一、接口类(面向对象开发的思想和规范)的多继承需求&#xff1a;定义一个tiger类&#xff1a;会走&#xff0c;会游定义一个hawk类&#xff1a;会走&#xff0c;会飞定义一个swan类&#xff1a;会走&#xff0c;会游&#xff0c;会飞(a)如果像以下代码的方式&#xff0c;则不能…

热血江湖战无止境与服务器连接不稳定,《热血江湖》V14.0“战无止境”新版玩不停...

《热血江湖》作为一款经典武侠网游&#xff0c;将韩国游戏风格与中国武侠元素融合得恰到好处&#xff0c;打造出极具趣味性的江湖世界。流畅的战斗动作&#xff0c;华丽的技能特效&#xff0c;通过3D的演绎烘托出惟妙惟肖的视觉效果。而在《热血江湖》V14.0“战无止境”中&…

服务器操作系统的安装步骤,服务器操作系统的安装步骤

服务器操作系统的安装步骤 内容精选换一换同步lib之前请确保已经完成增加设备。请确保DDK版本号与设备侧安装的软件包版本保持一致。请确保已经打开工程的target(可以通过工程的.project查看)和所同步设备的target保持一致&#xff0c;如果不一致&#xff0c;可以参见修改工程属…

docker 镜像 退出 保存_Docker保存修改后的镜像

我们运行的容器可能在镜像的基础上做了一些修改&#xff0c;有时候我们希望保存起来&#xff0c;封装成一个新的镜像。可以使用docker提供commit功能。现在以Ubuntu为例&#xff0c;在一个裸的Ubuntu上面安装vim编辑器&#xff0c;并且把这个修改保存下来&#xff0c;封装成一个…

当输入www.baidu.com会发生什么

&#xff08;1&#xff09;首先浏览器会先判断URL是否符合URL标准&#xff0c;如果不符合就交给搜索引擎。 &#xff08;2&#xff09;如果是正确的URL&#xff0c;浏览器会先检索该主机的HOST表&#xff0c;如果存在该域名的IP&#xff0c;则直接去访问&#xff1b;如果没有&a…

vld检测不输出_专业分享丨高频电刀的质量控制检测

作 者&#xff1a;梁世波&#xff0c;邓文涛单 位&#xff1a;右江民族医学院附属医院医疗设备科 (广西百色 533000)来 源&#xff1a;《医疗装备》杂志2020年第15期〔摘 要〕高频电刀是一种被广泛应用于医疗实践中的设备&#xff0c;加强质量控制和管理对其安全、有效的…

现实世界的Windows Azure 视频:新南威尔士州教育部(DET)利用Windows Azure实现在线科学测验...

新南威尔士州教育部是南半球最大的教育机构。他们想改进八年级的科学测验方式,以再现学生在实验室所做的并且相信互动在线科学测验能够测验更广泛的 技能而不仅仅是纯科学知识。然而&#xff0c;DET估计若他们同时为65,000位学生举行在线测验在服务器的基础设施上需要投资20万美…

正则不等于一个字符串_乳饮料不等于酸奶,记住一个关键词,花最少的钱买到真正的好酸奶...

昨天在直播的时候&#xff0c;很多网友提到了酸奶。相对于牛奶平淡无奇的口味&#xff0c;家里的老人和孩子们也更喜欢酸奶的口感&#xff0c;酸酸甜甜的味道也更人喜欢。只不过在购买酸奶的时候&#xff0c;有时候虽然钱花了不少&#xff0c;但是买回家的酸奶却并非真正的酸奶…

无法创建接口的实例_什么是接口?

接口接口概述接口,是java语言中一种类型,是方法的集合,如果说 类的内部封装了成员变量,构造 方法,和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法,默认方法和静态方法接口是对功能的扩展们也是声明规则的一种方式 狭义的角度来看,接口指的就是java的关键字,interfa…

PrefixSpan算法原理总结

前面我们讲到频繁项集挖掘的关联算法Apriori和FP Tree。这两个算法都是挖掘频繁项集的。而今天我们要介绍的PrefixSpan算法也是关联算法&#xff0c;但是它是挖掘频繁序列模式的&#xff0c;因此要解决的问题目标稍有不同。 一、1. 项集数据和序列数据 首先我们看看项集数据和序…