Java突击复习小练习,附带讲解

练习:

1.下面的代码在主方法中可以正常执行吗,如果不能,为什么?

2.已知i的值为10,请问在情况一和情况二中j的值是否相同呢?如果不相同,它们的值分别是多少呢?为什么?

3.在主方法运行这段代码后,i、j和f的值分别是多少呢?


 

答案:

一、

不能,因为a和b会在运行过程中转换成int类型,得出的结果自然也是int类型,所以没办法赋给byte类型的c了,必须对c的数据类型进行更改或是手动的强制转换a+b后的值,(byte)(a+b)

二、

一旦自增自减操作需要参与运算,我们就需要对其进行区分, 到底是++i(前++),还是i++(后++)。

这里的前后是指,在从变量中将数据取出后,准备放入操作数栈进行运算时,进行自增自减操作的时机的前后。

前++,JVM会在把数据放在操作数栈中之前就使其增加,增加后的值会直接进入操作数栈,参与正常的运算。

而执行后++操作时,JVM则会先把数据放在操作数栈中之后,再使其增加,因此,参与运算的还是原来的数据,此时并不会发生变化,等运算过后,再把新的值置于其中。

判断之后,我们再来分析程序:

起初,i变量中存储的是都是10

在情况一中,i++ 因为是后++,所以会先从i变量中将10取出, 放入操作数栈,然后,再对i变量中的值进行自增1,变成11,但只有操作数栈中的10才能直接参与赋值运算,11在操作数栈之外,因此j的值为10而不是11。

而在情况二中,是前++,所以我们在进入操作数栈之前就进行了自增操作,然后再进行赋值运算,因此i和j的值都为11。

三、

运行后可知,i和j结果都为11,而f的值为true。

因为是后++,所以JVM会把先i放进操作数栈中进行比较,后对其进行自增操作,因此比较时:10<11为真。又因为是或运算所以有一边为真就为真,所以f的值也就为真。比较后i自增为11,所以i的值为11。

那么为什么j的值还是11没有发生变化呢?不是有++操作吗?

因为这是一个短路或运算,只要前面的结果为真,后面表达式就不会再执行了,因此j不会发生变化。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

3D打印:重塑模具制造业的创新引擎

在科技浪潮的推动下&#xff0c;3D打印技术正以前所未有的速度渗透到制造业的核心&#xff0c;尤其在模具制造领域&#xff0c;它正引领一场深刻的创新革命。该技术通过颠覆传统制造范式&#xff0c;显著优化了模具生产的复杂流程&#xff0c;实现了从设计到成品的一体化的高效…

系统架构设计师教程 第4章 信息安全技术基础知识-4.3 信息安全系统的组成框架4.4 信息加解密技术-解读

系统架构设计师教程 第4章 信息安全技术基础知识-4.3 信息安全系统的组成框架 4.3 信息安全系统的组成框架4.3.1 技术体系4.3.1.1 基础安全设备4.3.1.2 计算机网络安全4.3.1.3 操作系统安全4.3.1.4 数据库安全4.3.1.5 终端安全设备4.3.2 组织机构体系4.3.3 管理体系4.4 信息加…

【PostgreSQL 16】专栏日常

本专栏从 3 个月前开始着手准备&#xff0c;利用周末及节假日的时间来整理。 ldczzDESKTOP-HVJOUVN MINGW64 ~/mypostgres (dev) $ git lg |tee * 7a7f468 - (HEAD -> dev, origin/main, origin/dev, main) 完成服务端编程的初步整理 (6 minutes ago) <Laven Liu> * …

masscan 端口扫描——(Golang 简单使用总结)

1. 前言 最近要做一个扫描 ip 端口的功能 扫描的工具有很多&#xff0c;但是如何做到短时间扫描大量的 ip 是个相对困难的事情。 市场上比较出名的工具有 masscan和nmap masscan 支持异步扫描&#xff0c;对多线程的利用很好&#xff0c;同时仅仅支持 syn 半开扫描&#xff…

GraphHopper-map-navi_路径规划、导航(web前端页面版)

文章目录 一、项目地址二、踩坑环境三、问题记录3.1、graphhopper中地图问题3.1.1. getOpacity不存在的问题3.1.2. dispatchEvent不存在的问题3.1.3. vectorLayer.set(background-maplibre-layer, true)不存在set方法3.1.4. maplibre-gl.js.map不存在的问题3.1.5. Uncaught Ref…

聊聊基于Alink库的特征工程方法

独热编码 OneHotEncoder 是用于将类别型特征转换为独热编码的类。独热编码是一种常用的特征编码方式&#xff0c;特别适用于处理类别型特征&#xff0c;将其转换为数值型特征。 对于每个类别型特征&#xff0c;OneHotEncoder 将其编码成一个长度为类别数量的向量。 每个类别对…

在线教育数仓项目(数据采集部分1)

文章目录 数据仓库概念项目需求及架构设计项目需求分析系统数据流程设计框架版本选型集群规模估算集群资源规划设计 数据生成模块目标数据页面事件曝光启动播放错误 数据埋点主流埋点方式&#xff08;了解&#xff09;埋点数据上报时机埋点数据日志结构 服务器和JDK准备服务器准…

JMeter接口测试:测试中奖概率!

介绍 Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具&#xff0c;用于对软件做压力测试。JMeter 最初被设计用于 Web 应用测试&#xff0c;但后来扩展到了其他测试领域&#xff0c;可用于测试静态和动态资源&#xff0c;如静态文件、Java 小服务程序、CGI 脚本、J…

【机器学习】解开反向传播算法的奥秘

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 解开反向传播算法的奥秘反向传播算法的概述反向传播算法的数学推导1. 前向传播2…

【计算机网络】WireShark和简单http抓包实验

一&#xff1a;实验目的 1&#xff1a;熟悉WireShark的安装流程和界面操作流程。 2&#xff1a;学会简单http的抓取和过滤&#xff0c;并分析导出结果。 二&#xff1a;实验仪器设备及软件 硬件&#xff1a; Windows 2019操作系统的计算机等。 软件&#xff1a;WireShark、…

草图也能秒变完整画稿?三星 Galaxy Z Fold6 、Flip6硬件升级

在科技的不断进步中&#xff0c;智能手机行业的竞争愈发激烈&#xff0c;各大厂商纷纷推出创新产品以吸引消费者。 最近&#xff0c;三星在 Galaxy Unpacked 发布会上就带来了 Galaxy Z Fold6 和 Flip6 两款手机新品&#xff0c;这两款设备不仅在硬件上有所突破&#xff0c;更…

docker dotnet-dump离线部署

1.下载指定dotnet版本的dotnet-dump 示例地址&#xff1a; https://www.nuget.org/packages/dotnet-dump/3.1.141901#dependencies-body-tab 我本地测试的是netcore 3.1 2. 在本地解压 将文件解压出来。看到any目录,能看到我们要用的dotnet-dump文件 3. 将tools/netcoreapp2.…

C++文件系统操作6 - 跨平台实现查找指定文件夹下的特定文件

1. 关键词 C 文件系统操作 查找指定文件夹下的特定文件 跨平台 2. fileutil.h #pragma once#include <string> #include <cstdio> #include <cstdint> #include "filetype.h" #include "filepath.h"namespace cutl {/*** brief The fi…

【吊打面试官系列-Dubbo面试题】服务调用是阻塞的吗?

大家好&#xff0c;我是锋哥。今天分享关于 【服务调用是阻塞的吗&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 服务调用是阻塞的吗&#xff1f; 默认是阻塞的&#xff0c;可以异步调用&#xff0c;没有返回值的可以这么做。 Dubbo 是基于 NIO 的非阻塞实现…

Axious的请求与响应

Axious的请求与响应 1.什么是Axious Axious是一个开源的可以用在浏览器和Node.js的异步通信框架&#xff0c;它的主要作用就是实现AJAX异步通信&#xff0c;其功能特点如下&#xff1a; 从浏览器中创建XMLHttpRequests ~从node.js创建Http请求 支持PromiseAPI 拦截请求和…

深入解析AI技术:从深度学习到GPT大模型的全面探索

深入解析AI技术&#xff1a;从深度学习到GPT大模型的全面探索 引言 在21世纪的科技浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;无疑是最引人注目的领域之一。从简单的语音助手到复杂的自动驾驶系统&#xff0c;AI正以前所未有的速度改变着我们的世界。而深度学习&a…

【Python机器学习】朴素贝叶斯——使用朴素贝叶斯进行文档分类(理论基础)

机器学习的一个重要应用就是文档的自动分类。在文档分类中&#xff0c;整个文档&#xff08;比如电子邮件&#xff09;是实例&#xff0c;而电子邮件中的某些元素则构成特征。虽然电子邮件是一种会不断增加的文本&#xff0c;但我们同样也可以对新闻报道、用户流言、公文等其他…

如何获得一个MySQL 5.7 社区版数据库

已有一个OCI计算实例&#xff0c;Oracle Linux 7.9&#xff0c;1OCPU&#xff0c;16G内存&#xff1a; $ cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.9 (Maipo)$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte O…

jdk版本区别

JDK&#xff08;Java Development Kit&#xff09;是 Java 开发工具包&#xff0c;它包括了 Java SE&#xff08;Standard Edition&#xff09;、编译器、调试器和其他开发工具。Oracle 公司是 JDK 的主要供应商&#xff0c;它提供了多个版本的 JDK&#xff0c;每个版本都有自己…

C++之栈和队列使用及模拟实现

目录 栈的使用 队列的使用 栈的模拟实现 队列的模拟实现 deuqe容器介绍 在C语言中我们已经学习了栈和队列的相关性质&#xff0c;今天我们主要来学习C语法中栈和队列的相关概念。 栈的使用 在C中栈是一种容器适配器&#xff0c;在其内部适配了其它的容器&#xff0c;其相…