Java中short和int的转换
例子[1]:
第一种情况:
short a = 1;
a = a + 1; // 这一步会报错
System.out.print(a);
编译器会报错,原因如下:

第二种情况:
short a = 1;
a += 1;
System.out.print(a);
这种情况不会报错。
java语言规范中关于复合赋值的解释是这样的:E1 op= E2等价于
E1=(T)(E1 op E2),这里的T是E1的数据类型,即复合赋值是自带了隐式的强制类型转换的。
第三种情况:
short a = 1;
short b = 1;
short c = a + b;
这种情况依然会编译出错,因为Java中存在的类型升级,导致两个short类型的运算也会转换成int进行。
类型升级
在Java中,对基本数据类型做比较或者运算时,如果两边的数据类型不同,在可以比较的前提下会首先进行类型升级:
- 如果任一方为
double,则另一方转换为double- 否则如果任一方为
float,则另一方转换为float- 否则如果任一方为
long,则另一方转换为long- 否则两边都会转换为
int
- 否则两边都会转换为
- 否则如果任一方为
- 否则如果任一方为
即从高到低分别为double, float, long, int
即使是两个short类型运算,也会转换成int进行,这就是前面第三种情况出现错误的原因。
参考https://blog.csdn.net/allenjay11/article/details/78613862 ︎
Java中short和int的转换的更多相关文章
- 一段代码了解Java中char和int的转换
题目要求: 将输入的大写字母转成对应小写的后5个,如A转换后为f:如果转换后大于z则从a重新计,即多出1就转成a,多出2就转成b以此类推. Java代码: ```java private static ...
- java中short、int、long、float、double取值范围
一.分析基本数据类型的特点,最大值和最小值.1.基本类型:int 二进制位数:32包装类:java.lang.Integer最小值:Integer.MIN_VALUE= -2147483648 (-2 ...
- Java中short、int、long、float、double的取值范围
一.基本数据类型的特点,位数,最大值和最小值.1.基本类型:short 二进制位数:16 包装类:java.lang.Short 最小值:Short.MIN_VALUE=-32768 (-2的15此方 ...
- Java中数据类型及其之间的转换
Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...
- Java中数据类型及其之间的转换(转)
Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...
- 关于==和equals()方法&Java中string与char如何转换&String,StringBuffer
1.对于基本数据类型,可以直接使用==和!=进行内容比较 如:int x=30; int y=30; x==y; //true 基本数据类型 简单类型(基本类型) bo ...
- java中string和int互相转化
1 怎样将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...
- Java中字符转int
Java中字符转int 方法一代码: //直接使用静态方法,不会产生多余的对象,但会抛出异常 //parseInt 方法都有两个参数, 第一个参数就是要转换的对象, 第二个参数是进制基数, 可以是 2 ...
- java中string和int互相转化 (转)
1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...
随机推荐
- Python语言系列-04-高阶函数
闭包 #!/usr/bin/env python3 # author:Alnk(李成果) # 什么是闭包 # 1,闭包存在于函数中 # 2,闭包就是内层函数对外层函数(非全局变量)的引用 # 3,最内 ...
- 【笔记】二分类算法解决多分类问题之OvO与OvR
OvO与OvR 前文书道,逻辑回归只能解决二分类问题,不过,可以对其进行改进,使其同样可以用于多分类问题,其改造方式可以对多种算法(几乎全部二分类算法)进行改造,其有两种,简写为OvO与OvR OvR ...
- spring-data-jdbc的基础使用(一)
前言 很多人知道Mybatis,知道Jpa,但是对spring-data-jdbc可能了解的少之又少.注意我们这里说的是data-jdbc,而不是普通的jdbc.它拥有了类似jpa的一些特性,比如能够 ...
- Kerberos认证流程简述
摸鱼了很长一段时间,被大佬按在地上摩擦,一时间精神恍惚想不起来写点啥,正好回来碰巧给别人讲kerberos协议认证流程,结果讲来讲去把自己讲晕了,就非常尴尬 于是有了这篇文章(友情提示:无事莫装X,装 ...
- Sqli-Labs less32-37
Less-32 前置基础知识:宽字节注入 参考链接: https://blog.csdn.net/helloc0de/article/details/76180190 https://blog.csd ...
- mysql事务的4大特性
事务的四大特性(简称ACID) 1.原子性(Atomicity) 事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做. 2.一致性(Consistency) 事务执行的结果必须是使数据 ...
- PHP随手记2--获取随机n位不重复字符
定义一个函数返回26英文字母中n位不重复随机字符 基本思路是利用内置函数生成随机数,取出该位置字母之后将其删除,再进行下一次随机,最后实现字符串拼接就ok! 代码很简单,通俗易懂,直接上代码吧: 1 ...
- qt 中的自定义pushbutton
- 链表LinkedList、堆栈Stack、集合Set
链表LinkedList LinkedList 也像 ArrayList 一样实现了基本的 List 接口,但它在 List 中间执行插入和删除操作时比 ArrayList 更高效.然而,它在随机访问 ...
- 通过location响应头实现重定向
package day08; import java.io.IOException; import javax.servlet.ServletException; import javax.servl ...