Java学习第02天-类型转换、运算符

目录

类型转换

自动类型转换

表达式的自动类型转换

强制类型转换

运算符

基本运算符

案例解答

+连接字符串

自增自减运算符

面试习题

赋值运算符

比较运算符

逻辑运算符

基本逻辑运算符

短路逻辑运算符

三元运算符

基础知识

拓展案例

运算符优先级

读取用户输入


类型转换

自动类型转换

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

public class AutoTypeTran {public static void main(String[] args) {char a = 'a';int res = a;System.out.println(a);System.out.println(res);}
}

表达式的自动类型转换

  • 表达式的最终结果类型由表达式中的最高类型决定;
  • 表达式中,byte、short、char 是直接转换成int类型参与运算的;
public class AutoTypeTran2 {public static void main(String[] args) {byte a = 'a';short b = 21;double c = 4.25;double res = a + b + c;System.out.println(res);// byte、short、char是直接转换成int类型参与运算的;byte d = 'e';short e = 156;// byte m = d + e;  // 报错int m = d + e;System.out.println(m);}
}

强制类型转换

数据类型 变量 = (数据类型) 变量/数据;

  • 可能出现数据丢失;
  • 小数强制转换成整数是直接截断小数保留整数。
public class TypeTran {public static void main(String[] args) {// 正常强制类型转换int a = 20;byte res = (byte) a;System.out.println(res);  // 20// 溢出 / 数据丢失int b = 800;res = (byte) b;System.out.println(res);  // 32// 浮点数强转成整型double score = 99.5;int res2 = (int) score;System.out.println(res2);  // 99}
}

运算符

基本运算符

符号包括:+ - * / %

对应的含义:加 减 乘 除 取余

!需要注意:在Java中两个整数相除,得到的还是整数

public class Operation {public static void main(String[] args) {// 加、减、乘、除、取余int a = -110;int b = 15;System.out.println(a + b);  // -95System.out.println(a - b);  // -125System.out.println(a * b);  // -1650System.out.println(a / b);  // -7 [去除小数点后面的数据]System.out.println(a % b);  // -5// 补充:整数除以整数想要得到小数System.out.println(1.0 * a / b);  // -7.333333333333333}
}

案例解答

解析3位整数的百位、十位、个位的数字,并输出。

public class CaseOperation {public static void main(String[] args) {int pendingData = 123;System.out.print("这是个位:");System.out.println(pendingData % 10);System.out.print("这是十位:");System.out.println(pendingData / 10 % 10);System.out.print("这是百位:");System.out.println(pendingData / 10 / 10 % 10);}
}

+连接字符串

‘+’符号与字符串运算的时候用作连接符,结果是字符串。

public class ConnectString {public static void main(String[] args) {int a = 20;System.out.println(a + "abcd");  // 20abcdSystem.out.println(a + 'a');  // 117System.out.println(a + 20 + 'a' + "abcd");  // 137abcdSystem.out.println("abcd" + a + 20 + 'a');  // abcd2020a}
}

自增自减运算符

++ 和 -- 既可以放在变量的后边,也可以放在变量的前面;

++ 和 -- 只能操作变量,不能操作字面量;

放在变量的前面,则是先运算,放在变量后面,则是先取值;

public class AddSelf {public static void main(String[] args) {int i = 10;int j = i++;System.out.println(i);  // 11System.out.println(j);  // 10int a = 10;int b = ++a;System.out.println(a);  // 11System.out.println(b);  // 11}
}

面试习题

推测下面的输出

public class AddSelfCase {public static void main(String[] args) {int c = 10;int d = 5;//  c 10 11 12 11//  d 5 4 5//  res = 10  + 12  - 4   - 5   + 1 + 12int res = c++ + ++c - --d - ++d + 1 + c--;System.out.println(c);  // 11System.out.println(d);  // 5System.out.println(res);  // 26}
}

赋值运算符

基本赋值运算符:=

拓展赋值运算符:+=、-=、*=、/=、%=

其中拓展赋值运算符:a += b 等价于 a = (a 的数据类型) (a + b);

public class Assignment {public static void main(String[] args) {byte a = 10;byte b = 30;// a = a + b;  // 报错a += b;  // 等价于 a = (byte) a + b;}
}

比较运算符

public class Comparative {public static void main(String[] args) {int a = 10;int b = 10;System.out.println(a == b);  // trueSystem.out.println(a != b);  // falseSystem.out.println(a > b);  // falseSystem.out.println(a < b);  // falseSystem.out.println(a >= b);  // trueSystem.out.println(a <= b);  // true// 下面不是比较运算符,只是用来对比观察System.out.println(a = b);  // 10}
}

逻辑运算符

基本逻辑运算符

符号介绍说明
&逻辑与两者全为 true ,结果才为 true
|逻辑或两者有一个为 true ,结果就是 true
!逻辑非相反
^逻辑异或相同为false,不同为true

短路逻辑运算符

符号介绍
&&逻辑与(左边为 false ,右边则不执行)
||逻辑或(左边为 true, 右边则不执行)

注意:实际开发中,常用的逻辑运算符还是:&&、||、!

public class Logical {public static void main(String[] args) {int a = 10;double money = 800;System.out.println(a > 5 & money > 500);System.out.println(a > 11 && money++ > 500);System.out.println(money);// true// false// 800.0}
}

三元运算符

基础知识

格式:条件表达式 ? 值1 : 值2;

执行流程,首先计算关系表达式的值,如果是 true , 返回值1;否则返回值2.

public class Ternary {public static void main(String[] args) {// 格式:条件表达式 ? 值1 : 值2;// 需求: 找出两个整数中较大的值int a = 10;int b = 20;int res = a > b ? a : b;System.out.println(res);}
}

拓展案例

求三个整数的最大值

public class Ternary2 {public static void main(String[] args) {int a = 10;int b = 20;int c = 3343;int temp = a > b ? a : b;int max = temp > c ? temp: c;System.out.println(max);System.out.println("--------------方法二--------------");max = a > b ? (a > c ? a : c) : (b > c ? b : c);System.out.println(max);}
}

运算符优先级

优先级运算符
1()
2!、-、++、--
3*、*、%
4+、-
5<<、>>、>>>
6<、<=、>、>=、instanceof
7==、!=
8&
8^
10|
11&&
12||
13?:
14=、+=、-=、*=、/=、%=、&=
public class Priority {public static void main(String[] args) {int a = 10;System.out.println(a > 5 || a > 5 && a > 15);System.out.println((a > 5 || a > 5) && a > 15);// true// false}
}

读取用户输入

  • 导包:import java.util.Scanner;
  • 创建扫描器对象:Scanner sc = new Scanner(System.in);
  • 接收用户输入的数据:sc.nextInt(); 或者 sc.next();
import java.util.Scanner;public class ScannerDemo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输出您的名字:");String name = sc.next();System.out.println("请输出你的年龄:");int age = sc.nextInt();System.out.println("Hello " + name + ", 你已经" + age + "岁了!");}
}

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

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

相关文章

UNeXt: a Low-Dose CT denoising UNet model with the modified ConvNeXt block

UNeXt&#xff1a;采用改进的ConvNeXt块的低剂量CT去噪UNet模型 论文链接&#xff1a;https://ieeexplore.ieee.org/document/10095645 项目链接&#xff1a;没找到 Abstract 近几十年来&#xff0c;临床医生广泛使用计算机断层扫描(CT)进行医学诊断。医疗辐射有潜在危险&am…

77、贪心-买卖股票的最佳时机

思路 具体会导致全局最优&#xff0c;这里就可以使用贪心算法。方式如下&#xff1a; 遍历每一位元素找出当前元素最佳卖出是收益是多少。然后依次获取最大值&#xff0c;就是全局最大值。 这里可以做一个辅助数组&#xff1a;右侧最大数组&#xff0c;求右侧最大数组就要从…

ADS1.2中的代码debug的时候不出来代码的解决办法

我总觉得ADS1.2这个软件挺奇怪的&#xff0c;一阵一阵的&#xff0c;我遇到了很多奇怪的问题&#xff0c;这里记录一下吧。 1、新建文件的时候&#xff0c;没法选择这个add to project 解决办法&#xff1a;如果没有已存在的.mcp文件&#xff0c;就先新建project&#xff0c;然…

项目运行到手机端

运行到真机 手机和点到连在同一个wifi网络下面点击hbuiler上面的预览得到一个&#xff0c;network的网址这个时候去在手机访问&#xff0c;那么就可以访问网页了 跨域处理 这个时候可能会访问存在跨域问题 将uniapp的H5版本运行到真机进行调试&#xff0c;主要涉及到跨域问题…

java-Spring-mvc-(请求和响应)

目录 &#x1f4cc;HTTP协议 超文本传输协议 请求 Request 响应 Response &#x1f3a8;请求方法 GET请求 POST请求 &#x1f4cc;HTTP协议 超文本传输协议 HTTP协议是浏览器与服务器通讯的应用层协议&#xff0c;规定了浏览器与服务器之间的交互规则以及交互数据的格式…

【机器学习】HQ-Edit引领图像编辑新潮流

科技新纪元&#xff1a;HQ-Edit引领图像编辑新潮流 一、HQ-Edit的诞生&#xff1a;一场技术的革命二、技术实现与优势&#xff1a;强大的编辑能力和精准的匹配三、应用前景与实例展示&#xff1a;InstructPix2Pix的突破 在数字化时代&#xff0c;图像编辑技术正以前所未有的速度…

M3D-NCA: Robust 3D Segmentation with Built-In Quality Control论文速读

文章目录 M3D-NCA: Robust 3D Segmentation with Built-In Quality Control摘要方法实验结果 M3D-NCA: Robust 3D Segmentation with Built-In Quality Control 摘要 这是关于医学图像分割的一篇论文的结构化总结&#xff1a; 背景和挑战&#xff1a; 医学图像分割依赖于大型…

【热闻速递】Google 裁撤 Python研发团队

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 【&#x1f525;热闻速递】Google 裁撤 Python研发团队引入研究结论 【&#x1f5…

xyctf ez_rand

[核心的代码就是这一部分&#xff0c;只要得到v4的值&#xff0c;也就是随机种子&#xff0c;那就可以把值弄出来了。所以我们需要做的就是爆破随机种子。 然后有一点是需要注意的&#xff0c;IDA这里显示的数据有可能是小端序的&#xff0c;所以我们需要export data&#xff…

DSP实时分析平台设计方案:924-6U CPCI振动数据DSP实时分析平台

6U CPCI振动数据DSP实时分析平台 一、产品概述 基于CPCI结构完成40路AD输入&#xff0c;30路DA输出的信号处理平台&#xff0c;处理平台采用双DSPFPGA的结构&#xff0c;DSP采用TI公司新一代DSP TMS320C6678&#xff0c;FPGA采用Xilinx V5 5VLX110T-1FF1136芯片&#xff…

向量的旋转矩阵

我们都知道&#xff0c;矩阵的乘法可以表示旋转。那么&#xff0c;这一理论的数学机理是什么呢&#xff1f;以及&#xff0c;这个旋转角度该怎么用矩阵表示呢&#xff1f; 本文用二维向量旋转来推导旋转矩阵的公式。假设&#xff0c;我们有一个向量P(x, y)&#xff0c;准备通过…

手撕sql面试题:找出所有观看视频ID “1001“ 的观看时长大于他们观看视频ID “1002“ 的观看时长的用户ID

分享最近面试的sql面试题&#xff1a; 下面是表结构&#xff1a; CREATE TABLE video_records ( video_id char(4) NOT NULL COMMENT 视频id, user_id char(4) NOT NULL COMMENT 用户id, play_duration int NOT NULL COMMENT 观看时长, PRIMARY KEY (video_id,…

Ubuntu卸载已安装软件

前言 在Linux系统上安装了一些软件&#xff0c;但是卸载起来相比于Windows系统麻烦的多&#xff0c;这里总结了两种办法&#xff0c;希望对遇到这种问题的小伙伴能够有所帮助 1.Ubuntu Software 卸载 1.点击桌面上的Ubuntu Software并且选择installed 选中想要卸载的软件再按…

51. 【Android教程】JSON 数据解析

在上一节我们学习了 xml 数据格式&#xff0c;如果你觉得 xml 的数据比较冗余&#xff0c;标签、属性等等定义过于复杂&#xff0c;那么这一节我们将继续学习另一种更精简、更高效的数据格式—— Json。它广泛的运用于数据持久化以及网络传输中&#xff0c;这一节我们一起学习 …

Hi3519AV100 处理器⾼速全局快⻔相机

⾼速全局快⻔相机采⽤ 1英⼨全局快⻔ Sensor&#xff0c;⽀持 H.264/H.265 编码&#xff0c;8 百万 分辨率模式下最⾼帧率可达 50 帧/秒&#xff0c;1080P 模式下最⾼帧率可达 120 帧/秒。主控采⽤ Hi3519AV100 处理器&#xff0c;集成 2 Tops AI 算⼒ NPU &#xff0c;⽀持⼤…

浮子式水位计施工细则

1浮子式水位计应安装在水位测井内&#xff0c;安装示意图见下图。 2设备安装要求 以测井中心为基准参考点&#xff0c;将水位计底板放在工作平台上。将悬索与平衡锤固定或锁紧&#xff0c;慢慢将平衡锤放至井底。 3&#xff09;悬索另一端绕于水位轮&#xff0c;留长1m&#…

018、Python+fastapi,第一个Python项目走向第18步:ubuntu24.04 安装cuda和pytorch环境

一、说明 我们安装了pytorch环境之后&#xff0c;会用yolo v9 来测试一下&#xff0c;看8g 显存能不能跑下来&#xff0c;上次用无影云电脑&#xff0c;4cpu8g内存直接爆了&#xff0c;云电脑也死机了&#xff0c;提示一直占用内存不释放&#xff0c;我自己的云电脑不能占用内…

AI机器视觉平台赋能:实现智慧工厂质检产品缺陷精准识别

背景 随着人工智能浪潮的涌起&#xff0c;智能技术与制造业的交融日益紧密&#xff0c;智能化成为现代制造业不可或缺的核心竞争力。传统制造业与智能制造业在生产效率、产品质量等方面的巨大差异&#xff0c;正促使传统制造业积极拥抱智能化变革&#xff0c;以缩小发展鸿沟。 …

2024年五一杯高校数学建模竞赛(A题)|钢板切割问题 | 建模解析,小鹿学长带队指引全代码文章与思路

我是鹿鹿学长&#xff0c;就读于上海交通大学&#xff0c;截至目前已经帮200人完成了建模与思路的构建的处理了&#xff5e; 本篇文章是鹿鹿学长经过深度思考&#xff0c;独辟蹊径&#xff0c;通过路径优化解决钢板切割问题。结合贪心算法&#xff0c;Floyd-Warshall等多元算法…

vue3实现移动端,PC端响应式布局

纯移动端|PC端 这种适用于只适用一个端的情况 方法&#xff1a;amfe-flexible postcss-pxtorem相结合 ① 执行以下两个命令 npm i -S amfe-flexible npm install postcss-pxtorem --save-dev② main.js文件引用 import amfe-flexible③ 根目录新建一个postcss.config.js文件…