【面试题】s += 1 和 s = s + 1的区别

文章目录

  • 1.问题
  • 2.发现过程
  • 3.解析

1.问题

以下两个程序真的完全等同吗?

short s = 0;
s += 1;

short s = 0;
s = s + 1;

2.发现过程

初看s += 1 和 s = s + 1好像是等价的,没有什么区别。很长一段时间内我也是这么觉得,因为当时学习c语言的时候教科书上将s += 1转换成s = s + 1帮助我们去理解,所以我将这个迁移到了java语言当中。但是直到遇到了一个有意思的题目,于是亲自在idea中去测试了一下,结果发现s += 1 没有报错,而 s = s + 1报错了。

在这里插入图片描述
通过idea我们会发现,报错的原因是因为我们将short类型赋值给int类型,而没有进行强制类型转换。

3.解析

在这里插入图片描述
在这里插入图片描述
s += 1的底层会有一个强制类型转换,将右边的结果转换成s的类型。

在这里插入图片描述

在这里插入图片描述

作者:Listener-1379    
出处:Listener-1379博客
github地址:https://github.com/beyong2019

本博客中未标明转载的文章归作者Beyong有,欢迎转载,但未经作者同意必须保留此段声明,且在文章明显位置给出原文连接,否则保留追究法律责任的权利。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python学习笔记23 - 目录操作

os模块操作目录相关函数 os.path模块操作目录相关函数 案例1 —— 列出指定目录下的所有.py文件 案例2 —— walk()

模电和数电哪个更难学?

模电和数电各有其难点,因此很难说哪个更难。 模拟电路(模电)涉及到连续的电压和电流信号,其分析和设计需要考虑许多因素,如信号失真、噪声、频率响应等。模电的设计通常需要考虑更多的物理参数和元件特性,…

李廉洋:4.15黄金,原油最新资讯,美盘走势分析及策略。

由于欧洲央行很可能先于美联储降息,美元走强。法国兴业银行分析师基特•朱克斯表示,市场“假设我们看到欧洲央行将在6月降息,但美联储不会”,这对美元有利。朱克斯表示,尽管在货币政策决定之前会公布一些相关数据&…

Web应用程序中的常见安全漏洞

大家好,我是咕噜铁蛋!今天,我想和大家聊聊一个在我们日常开发中经常遇到的问题——Web应用程序中的安全漏洞。在这个数字化时代,Web应用几乎无处不在,它们不仅方便了我们的生活,也推动了社会的进步。然而&a…

中霖教育:一建需不需要继续教育?

根据规定,一级建造师必须在其注册期内完成规定的继续教育学时,否则无法进行注册延期。 一级建造师的注册证书的有效期限设定为三年,为确保资格的有效性并申请续期,持证者需在该有效期内满足制定的继续教育标准。 继续教育课程结…

windows应急中的快捷键

windows应急中的快捷键 应急的时候,快捷键很重要,记录一下windows主机排查需要用到的快捷键 windows快捷键 appwiz.cpl 是打开安装面板 程序和功能 控制面板程序和功能 搜索程序和功能 控制而板主页 卸载或更改程序 若要卸酸程序,请从列表中将其…

【Java探索之旅】数组概念与初始化指南:动静结合

🎥 屿小夏 : 个人主页 🔥个人专栏 : Java编程秘籍 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一、初识数组1.1 为什么要有数组?1.2 数组的的概念 二、数组的创建及初始化…

多模态(clip/ALBEF)

一. CLIP 1. clip的核心思想是通过海量的弱监督文本对通过对比学习,将图片和文本通过各自的预训练模型获得的编码向量在向量空间上对齐。 clip 的text encode: 在Text Encoder中,我们会对每个句子增加一个Class Token,用于整合特征&#x…

排序算法—堆排序

文章目录 堆排序堆思路过程建堆排序 代码实现 堆排序 时间复杂度:O(N*logN) 稳定性:不稳定(相同元素排序后的相对位置改变) 堆 堆的逻辑结构是一棵完全二叉树;堆的物理结构是一个数组,通过下标表示父子结…

推荐5款 深受欢迎 的AI开源项目

本周 GitHub圈选 项目推荐: InstantID(小红书AI图像生成工具) CWMP(ChatGPT Web Midjourney Proxy) aicover(AI红包封面制作神器) ML-YouTube-Courses(机器学习的学习库&#xff…

深入K8S实战

K8S: 深入K8S实战进阶篇 1、搭建 Kubernetes 集群 1.1、搭建方案 1.1.1、minikube minikube 是一个工具, 能让你在本地运行 Kubernetes。 minikube 在你的个人计算机(包括 Windows、macOS 和 Linux PC)上运行一个一体化(all-i…

Gartner 《2024安全和风险管理技术路线图》:高价值技术 DSP 进入广泛部署阶段

近期,Gartner 发布《2024年技术采用路线图:安全与风险管理》(以下简称:《路线图》),该信息图表识别了全球企业正在采用的 44 种与安全相关的技术,并根据采用阶段、部署风险和企业价值进行了映射…

HuggingFists-如何复用流程(二)

上一篇文章中,我们介绍了如何在HuggingFists系统中复用流程。如何定义流程,接收外部数据流以及写出数据流。通过接收和写出数据流实现流程的嵌套引用。在实际的应用场景中,被引用的子流程除了需要与主流程的数据流进行交互外,有时其流程内部的…

悬镜安全持续霸榜安全牛《中国网络安全全景图》供应链安全赛道

2024年4月12日,国内知名网络安全专业咨询机构安全牛正式发布了第十一版网络安全行业全景图(以下简称“全景图”),悬镜安全凭借沉淀多年的技术创新和应用实践,连续四年强势领跑数字供应链安全领域,引领DevSe…

MyBatis-Spring整合

引入Spring之前需要了解mybatis-spring包中的一些重要类; http://www.mybatis.org/spring/zh/index.html 什么是 MyBatis-Spring? MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。 知识基础 在开始使用 MyBatis-Spring 之前&#x…

Sorting Algorithms in Python (排序算法)

本篇文章主要介绍几种经典排序算法:冒泡排序、快速排序、选择排序、堆排序、插入排序、希尔排序、归并排序、桶排序和基数排序。并给出用python实现的算法代码。 目录 一、冒泡排序 二、快速排序 三、选择排序 四、堆排序 五、插入排序 六、希尔排序 七、归…

大厂Java笔试题之判断一个数是否自守数

题目:自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 625,76^2 5776,9376^2 87909376。 请求出n(包括n)以内的自守数的个数 数据范围: 1≤n≤10000 输入描述: int型整数 输出描述&…

推荐3个yyds的AI开源项目!

在这个数字化飞速发展的时代,有一堆人工智能开源工具,它们正悄悄地改变着我们的生活和工作方式。今天,我就带大家一起来深度了解几款近期大火的人工智能工具,看看它们是怎样为我们的生活带来便利和创新的。 马赛克杀手APISR 首先…

怎样关闭谷歌浏览器自动更新,亲测ok

步骤一 在服务中禁用Google更新 步骤二 Chrome更新是利用Update文件夹里的升级程序来升级的,需要要删除里面的文件,再让Chrome没法在Update文件夹里继续自动生成更新程序。所以还要清空Update文件夹并设置权限,让Chrome没有权限修改这个文件…

分享|为什么说Temu项目是蓝海项目?

在当今日新月异的互联网行业中,Temu项目以其独特的商业模式和前瞻性的市场布局,迅速崛起成为一颗耀眼的新星。它被业内普遍认为是一片尚未被完全开发的蓝海,具有巨大的市场潜力和发展空间。那么,为什么说Temu项目是蓝海项目呢? 首…