这里存在一个变量类型提升的问题
因为Java优化的问题,byte,char,short参与运算会自动向int转换

package com.study.JavaBase;import org.junit.Test;/*** @Description* short s1 = 1; s1 = s1 + 1;有什么错?* short s1 = 1; s1 += 1;有什么错?* @Date 2021/9/4 16:23* @Created by 折腾的小飞*/
public class AssigningOperatorDemo {@Testpublic void test(){short s1=1;System.out.println(s1 = (short) (s1 + 1)); // 提示提升类型为int,int赋给short需要强制转型// 2System.out.println(s1 += 1); // += 会进行特殊处理// 3short s2 = 2;System.out.println((s2 + 1)); //short + int// 3System.out.println(getClassType((s2 + 1))); // 类型为Integer,int会自动装箱向Integer转换// java.lang.IntegerSystem.out.println((s2 + s2)); // short + short// 4System.out.println(getClassType((s2 + s2)));// 类型还是为Integer,int会自动装箱向Integer转换// java.lang.Integerchar s3 = 3;System.out.println((s3 + s3)); // char + char// 6System.out.println(getClassType((s3 + s3)));// 类型还是为Integer// java.lang.Integerbyte s4 = 4;System.out.println((s4 + s4));System.out.println(getClassType((s4 + s4)));// java.lang.Integer}// 获取类型public String getClassType(Object obj){return obj.getClass().getName();}
}

哎,之前的+=的结果是什么类型

System.out.println(getClassType(s1 += 2)); // java.lang.Short

发现s1没有转换为int,显示+=经过了特殊处理,运算完成后,判断变量的范围是否在short s1的范围内,会自动转换。
那就来测试一下一个计算完成后,超过范围的,测试一下char,其他的同理

System.out.println(getClassType((s2 + 127))); //2+127,显然超过了char的范围-128~127


正确!

short s1 = 1; s1 = s1 + 1;和short s1 = 1; s1 += 1;的区别相关推荐

  1. 字符串处理:输入字符串s1和s2以及插入位置f,在字符串s1中的指定位置f处插入字符串s2。如输入BEIJING, 123, 3,则输出:BEI123JING。

    输入 第一行和第二行分别输入两个字符串s1和s2,第三行输入插入位置f. 每个字符串的长度不超过100个字符. 输出 输出一行插入后的字符串. 样例输入: BEIJING 123 3 样例输出: BE ...

  2. 2.判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 =AABCD和s2 = BCDAA,返回1给定s1=abcd和s2=ACBD,返回0.AABCD左旋一个字符得到ABCD

    void left_move(char s1[], int i) {int len = strlen(s1);while (i--) //若i为2,该循环就执行两次,每一次就是左旋转1个字符{int ...

  3. c语言判断字符串s1是否大于s2,判断字符串s1是否大于字符串s2,应该使用()。A.if(strcmp(s1,s2)<0)B.if(s1>s2)C.if(strcmp(s2,s1)_开卷宝...

    编写一个函数fun(),它的功能是:实现两个字符串的连接(不使用库函数strcat,即把p2所指的字符串连 编写一个函数fun(),它的功能是:实现两个字符串的连接(不使用库函数strcat,即把p2 ...

  4. java s1 s2 s3 s4_电源管理中的S0 S1 S2 S3 S4 S5

    电源选项中S1,S2,S3,S4,S5的含义 以 ACPI 的規格來說吧! ACPI(Advanced Configuration and Power Interface),即高级配置与电源接口.这种 ...

  5. Java中int和short的取值范围_java中short、int、long、float、double取值范围

    1. 基本类型:int 二进制位数:32 包装类:java.lang.Integer 最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方) 最大值:Integer. ...

  6. short s1 = 1; s1 = s1 + 1; 有错吗?short s1 = 1; s1 += 1 有错吗

    short s1 = 1; s1 = s1 + 1; 有错吗?short s1 = 1; s1 += 1 有错吗? 前者不正确,后者正确.对于 short s1 = 1; s1 = s1 + 1;由于 ...

  7. 经典算法面试题目-判断s2是否是s1的旋转字符串(1.8)

    题目 Assume you have a method isSubstring which checks if one word is a substring of another. Given tw ...

  8. 萤石云好友分享的监控怎么看_萤石S1:英超赛场上雄起的中国品牌

    北京时间4月26日20:30,英超2014/15赛季第34轮,曼联客场0比3不敌埃弗顿,麦卡锡.斯通斯和米拉拉斯先后进球.曼联在连败的情况下积分榜跌至第四.后弗格森时代的曼联最近刚刚有点起色,似乎这场 ...

  9. 18-EMM Procedure 6. Handover without TAU - Part 3. S1 Handover

    原文链接:http://www.netmanias.com/en/?m=view&id=techdocs&no=6286 I. Introduction 之前的文档,我们讨论了X2切换 ...

  10. 比较两个字符串s1和s2的大小,如果s1s2,则输出一个正数;若s1=s2,则输出0;若s1小于s2,则输出一个负数。要求:不用strcpy函数;两个字符串用gets函数读入。

    题目描述 比较两个字符串s1和s2的大小,如果s1>s2,则输出一个正数:若s1=s2,则输出0:若s1<s2,则输出一个负数.要求:不用strcpy函数:两个字符串用gets函数读入.例 ...

最新文章

  1. 基于道路标线的城市环境单目定位
  2. 两年的等待,近700页干货,同系列累计销量25万+,第三版内容更扎实
  3. javascript随机生成GUID
  4. Android --- 199 198开头手机号正则表达式无效
  5. ner 评估指标_序列标注算法评估模块 seqeval 的使用
  6. My Account dependency /UI5/CL_UI5_APP_INDEX_LREP~UI5_INFO_FETCH_FROM_DB strange manifest.json
  7. 【数字信号处理】——Python频谱绘制
  8. aelf帮助C#工程师10分钟零门槛搭建DAPP私有链开发环境
  9. android studio插入数据表中没有_学Java能拿高薪吗 Java中常见排序算法有哪些
  10. 已知矩阵 matlab,在MATLAB中,已知矩阵A,那么A(:,2:end)表示
  11. CVPR 2020百度-涵盖全视觉领域22篇
  12. php+日期周几,如何判断php一个日期是周几
  13. 用Python海龟画科比LOGO
  14. 方法及方法的重载|数组
  15. 美容店信息管理系统与小程序设计与实现
  16. 【C语言】分享一些个人C语言程序代码[大一下集合]
  17. EI、SCI、SSCI、核心期刊“老博期刊”
  18. Houdini18.5下载安装
  19. html密码框密码如何隐藏,webAPI: 密码框的密码显示和隐藏的功能
  20. Mybatis-Reflector

热门文章

  1. 从NCBI当中SRA数据库中下载高通量测序数据
  2. 边缘计算Edage Computing
  3. 如何重新创建mysql数据库_重新创建数据库与数据表《 MySQL 基础 》
  4. tensorflow 加载下载波士顿房价数据集
  5. 卷积网络基础知识---Depthwise Convolution Pointwise Convolution Separable Convolution
  6. 指定ASP .NET Core Web应用端口
  7. CentOS 7安装使用Github
  8. JAVA里tokens意思_Java TokenMetadata.sortedTokens方法代码示例
  9. redis和memecache有什么区别?
  10. 【Netty】传输(Transport)