JavaSE基础(二)—— 类型转换、运算符、键盘录入

news2024/11/17 19:46:13

目录

一、类型转换

1. 自动类型转换

1.1 自动类型转换的底层原理:

​1.2 自动类型转换的其他形式​编辑

2. 表达式的自动类型转换

3. 强制类型转换

3.1 强制类型转换底层原理​编辑

3.2 注意事项

二、运算符

1. 算数运算符

1.1 案例:数值拆分 

2. “+” 做连接符

3. 自增自减运算符

3.1 自增、自减拓展案例(有些面试题会出现)

4. 赋值运算符

5. 关系运算符

6. 逻辑运算符

6.1 短路逻辑运算符

7. 三元运算符

8. 运算符优先级

三、案例知识:键盘录入技术


一、类型转换

1. 自动类型转换

为什么要进行类型转换?存在不同类型的变量赋值给其他类型的变量。

类型范围小的变量,可以直接赋值类型范围大的变量。

1.1 自动类型转换的底层原理:

1.2 自动类型转换的其他形式 

2. 表达式的自动类型转换

在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算。

注意事项:

  • 表达式的最终结果类型由表达式中的最高类型决定
  • 在表达式中,byte、short、char 直接转换成int类型参与运算的。

3. 强制类型转换

int a = 20;
byte b = a; //报错

问题:类型范围大的数据或者变量,不能直接赋值类型范围小的变量,会报错。 

强制类型转换:可以强行将类型范围大的变量、数据赋值给类型范围小的变量。

int a = 20;
byte b = (byte)a;

3.1 强制类型转换底层原理

3.2 注意事项

强制类型转换可能造成数据(丢失)溢出
浮点型强转成整型,直接丢掉小数部分,保留整数部分返回

二、运算符

定义:对字面量或者变量进行操作的符号

1. 算数运算符

符号作用说明
+参考数学
-参考数学
*参考数学,与“×”相同
/与“÷”相同,注意:在Java中两个整数相除结果还是整数,因为最高类型是整数
%取余获取的是两个数据做除法的余数

1.1 案例:数值拆分 

需求:一个三位数,将其拆分为个位、十位、百位后,打印在控制台

公式总结:
个位 :数值 % 10
十位 :数值 / 10 % 10
百位 :数值 / 10 / 10 % 10
千位 :数值 / 10 / 10 / 10 % 10;
... 

2. “+” 做连接符

“+”符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。 能算则算,不能算就在一起。 

3. 自增自减运算符

符号作用说明
++自增变量自身的值加1
--自减变量自身的值减1

注意:

  • ++ 和 -- 既可以放在变量的后边,也可以放在变量的前边。
  • ++ 、-- 只能操作变量,不能操作字面量的。

++、--如果不是单独使用(如在表达式中、或者同时有其它操作),放在变量前后会存在明显区别:

  • 放在变量的前面,先对变量进行+1、-1,再拿变量的值进行运算
int a = 10;
int rs = ++a;
  •  放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1、-1
int b = 10;
int rs = b++;

3.1 自增、自减拓展案例(有些面试题会出现)

//技巧:每次运算后记录
int c = 10;
int d = 5;
int rs = c++ + ++c - --d - ++d + 1 + c--;
//c 10 11 12 11
//d 5 4 5
//rs 10 + 12 - 4 - 5 + 1 + 11
System.out.println(rs); //26
System.out.println(c); //11
System.out.println(d); //5

4. 赋值运算符

就是“=”,基本作用是赋值

4.1 扩展赋值运算符

符号作用说明
+=加后赋值a+=b 等价于 a = (a的数据类型)(a+b); 将a + b的值给a
-=减后赋值a-=b 等价于 a = (a的数据类型)(a-b); 将a - b的值给a
*=乘后赋值a*=b 等价于 a = (a的数据类型)(a*b); 将a * b的值给a
/=除后赋值a/=b 等价于 a = (a的数据类型)(a/b); 将a / b的商给a
%=取余后赋值a%=b 等价于 a = (a的数据类型)(a%b); 将a % b的商给a

注意:扩展的赋值运算符隐含了强制类型转换

5. 关系运算符

是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(false,true)。

符号说明
==a==b,判断a和b的值是否相等,成立为true,不成立为false
!=a!=b,判断a和b的值是否不相等,成立为true,不成立为false
>a>b, 判断a是否大于b,成立为true,不成立为false
>=a>=b,判断a是否大于等于b,成立为true,不成立为false
<a<b, 判断a是否小于b,成立为true,不成立为false
<=a<=b,判断a是否小于等于b,成立为true,不成立为false

注意:在做相等判断是,千万不要把 == 误写成 =

6. 逻辑运算符

可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果。

符号介绍说明
&逻辑与必须都是true,结果才是true; 只要有一个是false,结果一定是false。
|逻辑或只要有一个为true、结果就是true
逻辑非你真我假、你假我真。 !true=false 、 !false= true
^逻辑异或如果两个条件都是false或者都是true则结果是false。两个条件不同结果是true。

6.1 短路逻辑运算符

符号介绍说明
&&短路与判断结果与“&”一样。过程是左边为 false,右边则不执行。
||短路或判断结果与“|”一样。过程是左边为 true, 右边则不执行。

注意:逻辑与 “&” 、逻辑或“|”: 无论左边是 false还是 true,右边都要执行。实际开发中、常用的逻辑运算符还是:&& 、 || 、 !

7. 三元运算符

格式:

执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2。

8. 运算符优先级

在表达式中,哪个运算符先执行后执行是要看优先级的,例如 “*、/” 的优先级高于”+、-”;!、-(负号)。

三、案例知识:键盘录入技术

需求:请完成Java程序与用户交互,比如录入用户输入的名称、年龄,怎么办?

 API (Application Programming Interface,应用程序编程接口)

  • Java写好的程序(功能代码),咱们可以直接调用。
  • Oracle 也为Java写好的程序提供了相应的 API文档(技术使用说明书) 。

下载API文档:http://www.oracle.com/technetwork/java/javase/downloads/index.html
 

键盘录入的开发步骤:

  • 导包:import java.util.Scanner;
  • 抄写代码得到扫描器对象: Scanner sc = new Scanner(System.in)
  • 抄写代码等待接收用户输入的数据: sc.nextInt() 、sc.next()
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入您的年龄:");
        int age = sc.nextInt();
        System.out.println("年龄是:" + age);

        System.out.println("请输入您的昵称:");
        String name = sc.next();
        System.out.println("欢迎:" + name);
    }
}

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

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

相关文章

【群智能算法】一种改进的哈里斯鹰优化算法 IHHO算法[1]【Matlab代码#17】

文章目录 1. 原始HHO算法2. 改进的哈里斯鹰优化算法2.1 动态自适应逃逸能量E2.2 拉普拉斯交叉算子2.3 动态自适应权重 3. 部分代码展示4. 仿真图展示5. 资源获取 1. 原始HHO算法 详细介绍此处略&#xff0c;可参考HHO算法介绍 2. 改进的哈里斯鹰优化算法 2.1 动态自适应逃逸…

【算法】刷题中的位运算

作者&#xff1a;指针不指南吗 专栏&#xff1a;算法篇 &#x1f43e;人类做题的过程&#xff0c;其实是暴搜的过程&#x1f43e; 文章目录 1.位运算概述2.位运算符3.位运算应用3.1整数的奇偶性判断3.2有关 2 的幂的应用3.3lowbit(x)返回x的最后一位13.4二进制数中1的个数3.5求…

6.S081——陷阱部分(一篇读懂Xv6系统调用)——xv6源码完全解析系列(5)

0.briefly speaking 这篇博客将要开始尝试阅读和研究与Xv6陷阱机制相关的代码&#xff0c;主要有以下文件&#xff0c;最重要的是结合Xv6 book将Xv6处理陷阱的相关逻辑和流程弄透。在Xv6的语境中所谓陷阱的触发有以下三种情况&#xff1a; 系统调用严重错误&#xff08;比如除…

设备仪器仪表盘读数识别算法 yolov5

设备仪器仪表盘读数识别系统基于YoLov5网络模型分析技术&#xff0c;设备仪器仪表盘读数识别算法模型自动识别指针型仪表读数。Yolo算法采用一个单独的CNN模型实现end-to-end的目标检测&#xff0c;核心思想就是利用整张图作为网络的输入&#xff0c;直接在输出层回归 bounding…

【Maven笔记2】Maven安装与配置

1、前置准备 maven是使用Java语言进行开发的&#xff0c;因此在安装maven之前&#xff0c;先需要有java运行环境。如何确认本机是否安装了JDK环境呢&#xff1f;打开终端运行如下命令&#xff1a; java -version如下图显示说明已经安装了JDK环境。 备注&#xff1a;如何安装J…

Intel Xeon(Ice Lake) Platinum 8369B阿里云CPU处理器

阿里云服务器CPU处理器Intel Xeon(Ice Lake) Platinum 8369B&#xff0c;基频2.7 GHz&#xff0c;全核睿频3.5 GHz&#xff0c;计算性能稳定。目前阿里云第七代云服务器ECS计算型c7、ECS通用型g7、内存型r7等规格均采用该款CPU。 Intel Xeon(Ice Lake) Platinum 8369B Intel …

OSI七层网络参考模型

七层模型的诞生 深夜中&#xff0c;在一家美国酒吧坐着几个正在谈论迪斯尼电影里的7个小矮人&#xff0c;他们把小矮人的名字写在餐巾纸上&#xff0c;有人开玩笑说7对于网络分层是个好数字&#xff0c;这几个人就是制定OSI标准小组的成员&#xff0c;后来OSI真的就设计成了七…

TensorFlow入门图像分类-猫狗分类-MobileNet优化

在上一篇文章中《Tensorflow入门图像分类-猫狗分类-安卓》&#xff0c;介绍了使用TensorFlow训练一个猫狗图像分类器的模型并在安卓应用上使用的全过程。 在这一篇文章中&#xff0c;将采用 MobileNet 来重新训练一个猫狗图像分类器。 一、 MobileNet 介绍 MobileNet是一种轻量…

服务(第十六篇)mysql①基础

什么是数据库&#xff1f; 数据&#xff1a; ①描述事物的符号记录称为数据&#xff08;Data&#xff09;&#xff0c;数字、文字、图形、图像、声音、档案记录等&#xff1b; ②数据是以“记录”的形式按照统一的格式进行存储的&#xff0c;而不是杂乱无章的。 行&#xf…

35岁以10亿美元身价登上《财富》杂志亿万富豪榜的电商传奇谢家华

Zappos的介绍 Zappos可谓是电商的传奇&#xff0c;国内同类电商是乐淘。Zappos是一家在线卖鞋和服装的公司&#xff0c;1999年创立&#xff0c;2009年被亚马逊以12亿元收购&#xff0c; 多次入选财富杂志最佳雇主公司top100。 Zappos的创始人及CEO 提到Zappos就不得不介绍下…

SQL知识汇总

什么时候用存储过程合适 当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用存储过程&#xff1b;当在一个事务的完成需要很复杂的商业逻辑时&#xff08;比如&#xff0c;对多个数据的操作&#xff0c;对多个状态的判断更改等&#xff09;要考虑&#xff1b…

05.rabbitMQ之搭建的各种坑

1.持久化需要重新设置队列 2.异步发布确认的坑, 生产者发消息太快只会确认最大的编号 1.消费者还是要确认消息 channel.basicAck(message.getEnvelope().getDeliveryTag(), false); 因为你发送的太快了&#xff0c;只会返回成功接收的最大的编号 3.消费者消息堆积(开启了消息手…

InnoDB 磁盘结构之数据字典和双写缓冲区

数据字典&#xff08;InnoDB Data Dictionary&#xff09; MySQL中&#xff0c;数据字典包括了: 表结构、数据库名或表名、字段的数据类型、视图、索引、表字段信息、MySQL版本信息、存储过程、触发器等内容 InnoDB数据字典由内部系统表组成&#xff0c;这些表包含用于查找表…

7万字水利数字孪生工程解决方案(word可编辑)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除。 1.1 系统开发方案 1.1.1 系统设计开发思路 &#xff08;1&#xff09;基于层次分解的设计 xxx水利数字孪生工程将采用基于层次分解的系统模型,系统采用这种方式进行层次划…

【P5】JMeter CSV Data Set Config(CSV 数据文件设置)

文章目录 一、测试计划演示二、CSV Data Set Config&#xff08;CSV 数据文件设置&#xff09;主要参数说明2.1、忽略首行&#xff1a;True2.2、是否允许带引号&#xff1f;&#xff1a;False2.3、遇到文件结束符再次循环&#xff1f;&#xff1a;False2.4、遇到文件结束符停止…

Apache 可能会出手接盘 Google Wave

尽管Google计划在明年终止Google Wave项目&#xff0c;但他们提供Wave in a Box开源项目允许你在自己的服务器上跑一个Google Wave服务玩。据The Register报道&#xff0c;Apache Software Group正在试图将Wave in a Box移植到目前的管理系统里。尽管目前还处于早期孵化阶段&am…

AI模型部署概述

心口如一&#xff0c;犹不失为光明磊落丈夫之行也。——梁启超 文章目录 :smirk:1. AI模型部署方法:blush:2. AI模型部署框架ONNXNCNNOpenVINOTensorRTMediapipe如何选择 :satisfied:3. AI模型部署平台 &#x1f60f;1. AI模型部署方法 在AI深度学习模型的训练中&#xff0c;…

链游“风暴之年”已来 一文解读Web3游戏的前生今世

链上世界进入游戏市场&#xff0c;让越来越多游戏厂商不由得感叹区块链游戏&#xff08;简称“链游”&#xff09;的风暴之年正在加速到来。如今&#xff0c;游戏活动转变了单一的休闲娱乐理念&#xff0c;逐渐走向Web3发展个性化、可定义的未来。 前不久&#xff0c;阿里云作为…

S3C6410 中的 irqdomain 之 gpio

文章目录 VIC domain 与 gpio domain 的硬件拓扑图描述linux cascaded irq domainlinux irq domain 实例VIC domain 与 gpio domain 的硬件拓扑语言描述VIC 与 INT_EINTx 的关系INT_EINTx 与 GPIO的关系INT_EINT0INT_EINT1INT_EINT2INT_EINT3INT_EINT4INT_EINT4 与 External in…

【Elasticsearch】DSL操作相关

文章目录 DSL操作索引操作新建索引查询索引查看所有索引删除索引 映射操作创建映射查看映射索引映射关联(同创建映射类似) 文档操作创建文档查询指定ID文档查询所有文档全局修改文档局部修改文档删除文档条件删除 数据搜索数据准备条件查询(match)多字段条件查询(multi_match)关…