java运算注意事项
/*
对于byte、short、char。插入三种类型来说,如果右侧固执的数值没有超过范围,那么java编译器就会自动隐含地位我们
补上一个(byte) ,(short),(char) 1、如果没有超过左侧的范围,编译器补上强转
2、如果超过了左侧范围,那么直接编译报错
*/ public class Demo02Notice{
public static void main(String[] args){
//右侧确实是一个int数字,但是没有超过左侧的范围,就是正确的
// int————> byte 不是自动转换类型
byte num1 = 30; // (byte)30; 右侧没有超过范围
System.out.println(num1); //30 //byte num2 = 128 右侧超过范围 // int ————> char 没有超过范围
//编译器将自动补上一个隐含的(char)
char zifu = 65;
System.out.println(zifu);//A
}
} /*
在变量进行赋值的时候,如果右侧的表达式当中的全部是常量,没有任何变量‘
那么编译器java将会直接将若干个常量表达式计算得到结果;
short result = 5 + 8; // 等号右边的全是常量,没有任何边变量参与运算
编译之后。得到的.class字节码文件当中相当于【直接就是】:short result = 13;
右侧的常量结果数值没有超过左侧范围,所以正确————这成为“编译器的常量优化” 但是,一旦表达式当中有变量参与,那么就不能进行这种优化了。
*/
public class Demo02Notice2{
public static void main(String[] args){
short num1 = 10; // 正确写法,右侧没有超过左侧的范围 short a = 5;
short b = 6;
// short + short ----> int + int ----> int
//short result = a+b; // 错误写法!左侧主要是int类型 // 右侧不用变量,而是采用常量,而且只有两个常量
short result = 5 + 8;
System.out.println(result); } }
java运算注意事项的更多相关文章
- 关于Java运算中类型自动提升的问题
1.表达式中的自动类型提升: 表达式求值时,Java自动的隐含的将每个byte.short或char操作数提升为int类型,这些类型的包装类型也是可以的. 例如:short s1 = 1; s1 = ...
- BigDecimal进行除法divide运算注意事项
Java编程中 BigDecimal进行除法divide运算时,如果结果不整除,出现无限循环小数.则会抛出以下异常: java.lang.ArithmeticException: Non-term ...
- java 突击队注意事项:在路上
情绪: 灵活:让标准成为价格值.为了给你一个想法和标准,你可以有一个不同的使用.不是死扣定理.决这个问题. 看书:分两类,一类依据知识点进行罗列.并且结构清晰,能够看完一章有选择进行总结(不是笔记,总 ...
- (五)java运算
java在运算的时候,会存在数据类型的转换,其中一种是自动类型转换,也称为隐式类型转换,这种转换需要满足一定的条件: 1.这两种类型是兼容的,例如同时都是整数类型或者都是数字类型 2. ...
- Java运算符号,对象赋值,别名
生活发生的一切,才会促使着我继续前行,今天继续更新哦,看书中的代码练习. 例子1 引入net.mindview.util.Print.* ,方便打印结果. package com.date0529; ...
- java基础(四) java运算顺序的深入解析
1. 从左往右的计算顺序 与C/C++不同的是,在Java中,表达式的计算与结果是确定的,不受硬件与环境的影响.如: int i = 5; int j = (i++) + (i++) +(i++) ...
- Java 异常注意事项
异常的注意事项: 1,子类在覆盖父类方法时,父类的方法如果抛出了异常, 那么子类的方法只能抛出父类的异常或者该异常的子类. 2,如果父类抛出多个异常,那么子类只能抛出父类异常的子集. ...
- widows和Linux java加密注意事项
/** * @Title: EncrypAES.java * @Package com.weidinghuo.payment.util * @Description: TODO(用一句话描述该文件做什 ...
- Java Calendar 注意事项
Java JDK 提供了java.util.Calendar来处理日期和时间.Calendar是一个抽象类,是所有日历的模板,因此我们可以继承Calendar来实现其他的历法(比如阴历). Java提 ...
随机推荐
- windows H2database 安装
转载百度经验 H2是一个开源的.纯java实现的关系数据库,小巧并且使用方便,十分适合作为嵌入式数据库使用 首先打开浏览器进入H2官网http://www.h2database.com/html/ma ...
- IBM研究人员开发了一对低功耗,高性能的计算机视觉系统
机器学习算法近年来有了突飞猛进的发展.例如,像Facebook这样的最先进的系统,可以在一小时内训练图像分类算法,而不会牺牲准确性.但是,许多这些系统都是在具有强大GPU的高端机器上进行培训的,随着物 ...
- JDBC调用oracle 存储过程
1.创建一个oracle存储过程 p_empInfo2 并执行,使这段sql代码能编译存储到oracle数据库中. --输入员工号查询某个员工(7839)信息,将薪水作为返回值输出,给调用的程序使用 ...
- cf1278D——树的性质+并查集+线段树/DFS判环
昨天晚上本来想认真打一场的,,结果陪女朋友去了.. 回来之后看了看D,感觉有点思路,结果一直到现在才做出来 首先对所有线段按左端点排序,然后用并查集判所有边是否联通,即遍历每条边i,和前一条不覆盖它的 ...
- 【靶场练习_sqli-labs】SQLi-LABS Page-2 (Adv Injections)
Less-21:括号+单引号绕过+base64cookie编码 总感觉我已经把sql注入做成代码审计了:P <?php //including the Mysql connect paramet ...
- 7 November in 614
每日总结不能少!让自己的头脑好好清醒清醒,才不会犯那些所谓的低级错误! Contest A. ssoj3045 A 先生砍香蕉树 根据数据范围 \(m\le 1000,b\le 10000\),显然本 ...
- (三)修改内核大小,适配目标板Nand flash分区配置
一. 修改内核大小 1. 在你的配置文件下uboot/include/config/xxx.h 里面有一个宏定义 #define MTDPARTS_DEFAULT "mtdparts=jz2 ...
- java继承方法覆盖
public class TestB { private void f() { System.out.println("TestB"); } public static void ...
- Selenium:火狐Try Xpath插件替代Firebug和Firepath
什么是Xpath? XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素. 工具 Xpath的练习建议大家安装火狐浏览器后,下载插件,try path. 在Selenium中 ...
- ss证书问题
#SSL--校验网站证书 #一.什么是SSL证书 from urllib import request #ssl免验证 import ssl ssl._create_default_https_con ...