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

目录

一、类型转换

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);
    }
}

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

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

相关文章

PCA主成成分分析例题详解

主成分分析是一种降维算法&#xff0c;它能将多个指标转换为少数几个主成分&#xff0c;这些主成分是原始变量的线性组合&#xff0c;且彼此之间互不相关&#xff0c;其能反映出原始数据的大部分信息 需要了解具体细节可看此视频&#x1f449;&#xff1a;什么是主成成分分析PC…

Linux安装MongoDB数据库,并内网穿透远程连接

文章目录 前言1. 配置Mongodb源2. 安装MongoDB3. 局域网连接测试4. 安装cpolar内网穿透5. 配置公网访问地址6. 公网远程连接7. 固定连接公网地址8. 使用固定地址连接 转载自Cpolar Lisa文章&#xff1a;Linux服务器安装部署MongoDB数据库 - 无公网IP远程连接「内网穿透」 前言 …

SpringBoot访问静态资源

SpringBoot项目中没有WebApp目录&#xff0c;只有src目录。在src/main/resources下面有static和templates两个文件夹。SpringBoot默认在static目录中存放静态资源&#xff0c;而templates中放动态页面。 static目录 SpringBoot通过/resources/static目录访问静态资源&#xff…

完成A轮融资,倍思如何发力场景化为品牌创造广阔未来?

凛冬过后的消费电子正在重新凝聚资本的目光。 近日&#xff0c;深圳市倍思科技有限公司宣布完成由深创投、中金资本联合领投&#xff0c;越秀产业基金、高榕资本跟投&#xff0c;金额数亿元人民币的A轮融资。 分析人士指出&#xff0c;消费电子的行业景气度在逐渐恢复&#x…

中国社科院与美国杜兰大学金融管理硕士项目——迎接立夏,切莫忘记自我成长

五月的风吹走了春季&#xff0c;今天我们迎来立夏。作为夏季的第一个节气&#xff0c;立夏常被人们当做万物蓄满能量&#xff0c;即将加速生长的标志。而在职的我们&#xff0c;也应该跟这世间万物一样&#xff0c;在季节交替之时沉淀自己、努力向上成长。在社科院与杜兰大学金…

“人工智能教父”从谷歌离职 称后悔发展AI,为世人敲响警钟?

在加入谷歌的第十年、深度学习迎来爆发式发展的当下&#xff0c;被誉为“人工智能教父”的Geoffrey Hinton已从谷歌离职&#xff0c;只是为了告诫人们AI已经变得很危险。 公开资料显示&#xff0c;Geoffrey Hinton在2013年加入谷歌&#xff0c;曾任副总裁&#xff0c;研究机器学…

成为数据分析师,需要具备哪些技能?

随着互联网的发展&#xff0c;数据分析师的特点越来越明显&#xff0c;对数据分析师综合素质的要求也较高。 1、较强的数据挖掘、信息整理、和逻辑分析能力 数据分析&#xff0c;也是数据分析师的一个方向。 制作日常性的经营报表&#xff0c;对公司或者行业KPI指标进行拆解…

Mysql索引(3):索引分类

1 索引分类 在MySQL数据库&#xff0c;将索引的具体类型主要分为以下几类&#xff1a;主键索引、唯一索引、常规索引、全文索引。 分类含义特点关键字主键索引针对于表中主键创建的索引 默认自动创建, 只能有一个 PRIMARY 唯一索引 避免同一个表中某数据列中的值重复可以有多…

【Android入门到项目实战-- 8.4】—— 如何解析JSON格式数据

目录 一、准备工作 二、使用JSONObject 三、使用GSON 比起XML&#xff0c;JSON的主要优势在于它的体积更小&#xff0c;在网络上传输的时候可以更省流量&#xff0c;但缺点是语义性较差&#xff0c;看起来不直观。 一、准备工作 还是使用前面文章的方法&#xff0c;在服务器…

每日学术速递4.29

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.LG 1.A Cookbook of Self-Supervised Learning 标题&#xff1a;自监督学习食谱 作者&#xff1a;Randall Balestriero, Mark Ibrahim, Vlad Sobal, Ari Morcos, Shashank Shekhar, Tom…

【黑马程序员 C++教程从0到1入门编程】【笔记8】 泛型编程——模板

https://www.bilibili.com/video/BV1et411b73Z?p167 C泛型编程是一种编程范式&#xff0c;它的核心思想是编写通用的代码&#xff0c;使得代码可以适用于多种不同的数据类型。 而模板是C中实现泛型编程的一种机制&#xff0c;它允许我们编写通用的代码模板&#xff0c;然后在需…

【Spring篇】IOC/DI注解开发

&#x1f353;系列专栏:Spring系列专栏 &#x1f349;个人主页:个人主页 目录 一、IOC/DI注解开发 1.注解开发定义bean 2.纯注解开发模式 1.思路分析 2.实现步骤 3.注解开发bean作用范围与生命周期管理 1.环境准备 2.Bean的作用范围 3.Bean的生命周期 4.注解开发依赖…

相当Python程序员,选择培训班还是自学?我结合自己的经历谈谈看法

前几天我写了一篇文章&#xff0c;分享了自己当上程序员的经历。然后&#xff0c;我收到了很多小伙伴的提问&#xff0c;都在问同一个问题&#xff0c;即如何选择报培训班还是自学。今天&#xff0c;我结合自己的个人经历&#xff0c;来谈一下个人的看法。 我认为这个问题的第…

Linux线程:死锁

1. 死锁 &#xff08;1&#xff09;概念 死锁&#xff08;DeadLock&#xff09;指两个或两个以上的进程或线程执行时&#xff0c;由于竞争临界资源而造成阻塞的现象&#xff1b;若不干涉&#xff0c;则无法推进下去。 &#xff08;2&#xff09;死锁的原因 ① 竞争临界资源…

06_Uboot顶层Makefile分析_前期所做内容

目录 U-Boot顶层Makefile分析 版本号 MAKEFLAGS变量 命令输出 静默输出 设置编译结果输出目录 代码检查 模块编译 获取主机架构和系统 设置目标架构、交叉编译器和配置文件 调用scripts/Kbuild.include 交叉编译工具变量设置 导出其他变量 U-Boot顶层Makefile分析…

TCP/IP网络编程(一)

TCP/IP网络编程读书笔记 第1章 理解网络编程和套接字1.1 理解网络编程和套接字1.1.1 构建打电话套接字1.1.2 编写 Hello World 套接字程序 1.2 基于Linux的文件操作1.2.1 底层访问和文件描述符1.2.2 打开文件1.2.3 关闭文件1.2.4 将数据写入文件1.2.5 读取文件中的数据1.2.6 文…

操作系统考试复习——第四章 存储器管理 4.1 4.2

存储器的层次结构&#xff1a; 存储器的多层结构&#xff1a; 存储器至少分为三级&#xff1a;CPU寄存器&#xff0c;主存和辅存。 但是一般分为6层为寄存器&#xff0c;高速缓存&#xff0c;主存储器&#xff0c;磁盘缓存&#xff0c;固定磁盘&#xff0c;可移动存储介质。…

( “ 图 “ 之 拓扑排序 ) 207. 课程表 ——【Leetcode每日一题】

❓207. 课程表 难度&#xff1a;中等 你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示如果要学习课…

自动驾驶中地图匹配定位技术总结

引言 汽车定位是让自动驾驶汽车知道自身确切位置的技术&#xff0c;在自动驾驶系统中担负着相当重要的职责。汽车定位涉及多种传感器类型和相关技术&#xff0c;主要可分为卫星定位、惯性导航定位、地图匹配定位以及多传感器融合定位几大类。其中地图匹配定位技术利用道路物理…

redis使用总结

目录 redis安装与登录redis 持久化RDB(Redis DataBase)AOF(Append Only File)RDB-AOF混合持久纯缓存模式 redis 的 keyredis 的数据类型和常见应用场景StringListHashMapSet集合ZSet有序集合bitmap位图HyperLogLog基数统计GEO 地理空间Stream 流bitfiled redis 事务事务的正常执…