当前位置: 首页 > article >正文

Java基础语法精讲:类型转换、常用运算符与用户输入处理引言

Java作为一门面向对象的编程语言,其基础语法是每位开发者的必备技能。本文将从 类型转换运算符 和 用户输入处理 三个核心模块展开,结合代码示例与底层原理,带你深入理解这些基础但关键的知识点。

一、类型转换

1. 自动类型转换

规则:小范围类型的变量可直接赋值给大范围类型的变量。
原理:计算机自动扩展位数,补足高位符号位。

byte a = 10;     // byte范围:-128 ~ 127
int b = a;       // 自动转换为int类型
System.out.println(b); // 输出:10

支持自动转换的类型顺序
byte → short → int → long → float → double
char → int(char为无符号类型)。

2. 强制类型转换

规则:将大范围类型强制转换为小范围类型,需显式声明,可能导致数据溢出或精度丢失。

int a = 1500;
byte b = (byte) a;  // 强制转换为byte
System.out.println(b); // 输出:-36(溢出)

注意事项

  • 浮点型转整型时,直接截断小数部分。

  • 数据溢出时,结果不可预测。

3. 表达式中的类型转换

规则:表达式的最终类型由最高范围的类型决定,且 byteshortchar 会先提升为 int

byte a = 10;
short b = 20;
int c = a + b;  // a和b均转为int后再计算

二、运算符详解

1. 算术运算符

  • + 可作为连接符:与字符串相连时结果为字符串。

System.out.println("结果:" + 5 + 5); // 输出:结果:55
System.out.println(5 + 5 + "结果"); // 输出:10结果
  • 除法 /:整数相除结果仍为整数(取商)。

  • 取余 %:结果的符号与被除数一致。

2. 自增自减运算符

  • 前缀形式++a):先自增,后使用。

  • 后缀形式a++):先使用,后自增。

int a = 10;
int b = a++ + ++a;  // 10 + 12 = 22
System.out.println(b); // 输出:22

3. 逻辑运算符

  • 短路特性&& 和 || 若左表达式已确定结果,则右表达式不执行。

int a = 10;
if (a > 5 || a++ < 20) { // 右侧a++不执行System.out.println(a); // 输出:10
}

4. 三元运算符

语法条件表达式 ? 值1 : 值2

int score = 75;
String result = score >= 60 ? "通过" : "不通过";
System.out.println(result); // 输出:通过

三、用户输入处理:Scanner类

使用步骤

  1. 导包import java.util.Scanner;

  2. 创建Scanner对象Scanner sc = new Scanner(System.in);

  3. 接收输入

System.out.print("请输入年龄:");
int age = sc.nextInt();     // 接收整数
System.out.print("请输入姓名:");
String name = sc.next();    // 接收字符串
System.out.println("姓名:" + name + ", 年龄:" + age);

注意事项

  • nextInt() 和 next() 会忽略空格后的输入,若需读取整行,使用 nextLine()

四、底层原理补充

1. 数据存储与二进制

  • 最小存储单元:字节(1 Byte = 8 bit)。

  • 字符存储:ASCII编码(如 'A' 对应 65)。

  • 图片与音视频:以二进制形式存储像素或波形数据。

2. 进制转换

  • 十进制转二进制:除二取余法。

// 计算13的二进制
13 ÷ 2 = 6 余 1 ↑
6 ÷ 2 = 3 余 0 ↑
3 ÷ 2 = 1 余 1 ↑
1 ÷ 2 = 0 余 1 ↑
结果:1101(从下往上读)

五、总结

  • 类型转换:注意自动转换的范围顺序和强制转换的风险。

  • 运算符:掌握算术、逻辑、自增自减的特性,避免优先级错误。

  • 用户输入:熟练使用Scanner类,注意不同方法的区别。

理解这些基础概念后,可通过实际编码练习巩固知识。例如,尝试编写一个“数值拆分器”(将三位数拆分为个位、十位、百位),或实现一个简单的用户登录交互程序。

相关文章:

Java基础语法精讲:类型转换、常用运算符与用户输入处理引言

Java作为一门面向对象的编程语言&#xff0c;其基础语法是每位开发者的必备技能。本文将从 类型转换、运算符 和 用户输入处理 三个核心模块展开&#xff0c;结合代码示例与底层原理&#xff0c;带你深入理解这些基础但关键的知识点。 一、类型转换 1. 自动类型转换 规则&am…...

SpringBoot 入门--工程创建

IDEA创建SpringBoot项目 SpringBoot 3.1.5 需要java17 ① 创建Maven工程 ② 导入spring-boot-stater-web起步依赖 ③ 编写Controller ④ 提供启动类 1.打开IDEA&#xff0c;新建项目 2.点击下一步&#xff0c;并勾选web开发相关依赖 3.勾选完点击Create&#xff0c;然后配置…...

Quantum Computing:量子计算如何改变世界

一、量子革命&#xff1a;计算范式的颠覆性跃迁 1.1 从经典比特到量子比特 维度经典比特量子比特&#xff08;Qubit&#xff09;状态表示0或1叠加态&#xff08;α并行能力线性增长指数级增长&#xff08;2ⁿ并行状态&#xff09;关联特性独立运算量子纠缠&#xff08;Einste…...

Rust 之一 基本环境搭建、各组件工具的文档、源码、配置

概述 Rust 是一种强调性能、类型安全和并发性的通用编程语言。它强制执行内存安全&#xff0c;使用其特有的所有权机制&#xff0c;而无需传统的垃圾收集器。Rust 不强制执行编程范式&#xff0c;但受到函数式编程思想的影响。 最初是由 Mozilla 员工 Graydon Hoare 在 2006 年…...

贪心算法解题框架+经典反例分析,效率提升300%

贪心算法是一种在每一步选择中都采取当前状态下的最优决策&#xff0c;从而希望最终达到全局最优解的算法策略。以下从其定义、特点、一般步骤、应用场景及实例等方面进行讲解&#xff1a; 定义与基本思想 • 贪心算法在对问题求解时&#xff0c;总是做出在当前看来是最好的选…...

《基于机器学习的DDoS攻击检测与防御系统设计与实现》开题报告

目录 一、课题的研究目的和意义 1.1课题背景 1.2课题目的 &#xff08;1&#xff09;提高DDoS攻击检测的准确性 &#xff08;2&#xff09;加强DDoS攻击的防御能力 &#xff08;3&#xff09;提升网络安全防护的技术水平 1.3课题意义 &#xff08;1&#xff09;理论意义…...

面试之《前端常见的设计模式》

前端开发中运用多种设计模式可以提高代码的可维护性、可扩展性和可复用性。以下是一些常见的前端设计模式&#xff1a; 创建型模式 1. 单例模式 定义&#xff1a;确保一个类只有一个实例&#xff0c;并提供一个全局访问点。应用场景&#xff1a;在前端中&#xff0c;像全局状…...

Java volatile 关键字详解

Java volatile 关键字详解 1. volatile 的作用与原理 可见性保证: volatile 修饰的变量在修改后,会立即同步到主内存,其他线程读取时直接从主内存获取最新值,确保多线程环境下的可见性。例如: volatile boolean flag = false;当线程A修改flag为true后,线程B能立即感知到…...

【2025】基于springboot+vue的汽车销售试驾平台(源码、万字文档、图文修改、调试答疑)

基于 Spring Boot Vue 的汽车销售试驾平台通过整合前后端技术&#xff0c;实现了汽车销售和试驾预约的信息化和智能化。系统为管理员和用户提供了丰富的功能&#xff0c;提升了客户体验和销售效率&#xff0c;增强了数据分析能力&#xff0c;为汽车销售行业的发展提供了新的途…...

C语言每日一练——day_5

引言 针对初学者&#xff0c;每日练习几个题&#xff0c;快速上手C语言。第五天。&#xff08;连续更新中&#xff09; 采用在线OJ的形式 什么是在线OJ&#xff1f; 在线判题系统&#xff08;英语&#xff1a;Online Judge&#xff0c;缩写OJ&#xff09;是一种在编程竞赛中用…...

38.动态规划11

最长公共子序列 class Solution { public:int longestCommonSubsequence(string text1, string text2) {int n1text1.size();int n2text2.size();int res0;vector<int> dp(n2,0);for(int i0;i<n1;i){for(int jn2-1;j>0;j--){if(text2[j]text1[i]){for(int k0;k<…...

解析动态窗口法:机器人避障的智能 “导航仪”

在繁忙的智能仓库里,机器人正有条不紊地执行着搬运任务。这里货架林立,货物堆积如山,叉车往来穿梭,地面上还散落着一些临时放置的工具。一台小巧灵活的移动机器人,肩负着将特定货物从角落搬运至出货口的重任。只见它以稳定的速度朝着目标前进,突然,前方不远处一辆叉车急…...

【社区投稿】深入再谈智能指针、AsRef引用与Borrow借用

深入再谈智能指针、AsRef引用与Borrow借用 这是一个具有深度的技术主题。每次重温其理论知识&#xff0c;都会有新的领悟。大约 2 年前&#xff0c;我曾就这一技术方向撰写过另一篇短文《从类型转换视角&#xff0c;浅谈Deref<Target T>, AsRef<T>, Borrow<T&g…...

元组(Tuple)详解——c#

在C#中&#xff0c;元组&#xff08;Tuple&#xff09; 是一种轻量级的数据结构&#xff0c;用于将多个值组合成一个单一的对象。元组非常适合在不需要定义新类或结构体的情况下&#xff0c;临时存储和传递多个相关的值。 C# 中的元组有两种形式&#xff1a; 传统元组&#xf…...

串口通信函数汇总-ing

谢谢各位佬的阅读&#xff0c;本文是我自己的理解&#xff0c;如果您发现错误&#xff0c;麻烦请您指出&#xff0c;谢谢 首先谈谈我自己对于串口的理解&#xff0c;随便拿一个嵌入式的板子&#xff0c;它上面有两个引脚&#xff0c;一个是rx&#xff0c;一个是tx&#xff0c;r…...

01.Kubernetes 概述

Kubernetes 概述 Kubernetes 概述1. Kubernetes系统组件、集群及工作机制1.1 Kubernetes 集群的节点类型1.2 Kubernetes 集群架构1.2.1 API Server1.2.2 Cluster Store &#xff08;etcd&#xff09;1.2.3 Controller Manager1.2.4 Scheduler1.2.5 Kubelet1.2.6 Kube Proxy 1.3…...

十种处理权重矩阵的方法及数学公式

1. 权重归一化&#xff08;Weight Normalization&#xff09; 目的&#xff1a;通过分离权重向量的范数和方向来加速训练。公式&#xff1a;对于权重向量 w \mathbf{w} w&#xff0c;归一化后的权重 w ′ \mathbf{w} w′ 为&#xff1a; w ′ w ∥ w ∥ \mathbf{w} \frac{…...

JVM垃圾回收面试题及原理

1. 对象什么时候可以被垃圾器回收 如果一个或多个对象没有任何的引用指向它了&#xff0c;那么这个对象现在就是垃圾&#xff0c;如果定位了垃圾&#xff0c;则有可能会被垃圾回收器回收 如果要定位什么是垃圾&#xff0c;有两种方式来确定 引用计数法可达性分析算法 1.1 …...

Flutter 小技巧之通过 MediaQuery 优化 App 性能

许久没更新小技巧系列&#xff0c;温故知新&#xff0c;在两年半前的《 MediaQuery 和 build 优化你不知道的秘密》 我们聊过了在 Flutter 内 MediaQuery 对应 rebuild 机制&#xff0c;由于 MediaQuery 在 MaterialApp 内&#xff0c;并且还是一个 InheritedWidget &#xff0…...

操作系统知识点23

1.实时操作系统的主要设计目标&#xff1a;在严格时间氛围内对外部请求做出反应。 2.当用户程序正在处理器上运行时&#xff0c;若此刻取到了一条特权指令&#xff0c;则处理器将停止执行该指令&#xff0c;并产生一个“非法操作”的事件 3.某网络监控系统中。多个被授权的用…...

【解决报错】:detected dubious ownership in repository at ‘D:/idea_code/xxx‘问题

解决报错&#xff1a;detected dubious ownership in repository at D:/idea_code/xxx‘问题 git config --global --add safe.directory *原因 这个错误提示表明 Git 检测到仓库的所有权存在问题&#xff0c;仓库的所有者与当前用户不匹配。Git 在 2.35.2 版本之后引入了一个…...

三角函数:从宇宙法则到AI革命的数学密钥

——跨越三千年的数学语言与现代科技全景透视 一、数学本质&#xff1a;宇宙的波动密码 1.1 拓扑学视角下的三角函数 三角函数本质是单位圆上点的坐标参数化&#xff0c;其数学表达可抽象为&#xff1a; { x cos ⁡ θ ℜ ( e i θ ) y sin ⁡ θ ℑ ( e i θ ) \begin…...

SpringBoot基础Kafka示例

这里将生产者和消费者放在一个应用中 使用的Boot3.4.3 引入Kafka依赖 <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId> </dependency>yml配置 spring:application:name: kafka-1#kafka…...

Spring 的三种注入方式?

1. 实例的注入方式 首先来看看 Spring 中的实例该如何注入&#xff0c;总结起来&#xff0c;无非三种&#xff1a; 属性注入 set 方法注入 构造方法注入 我们分别来看下。 1.1 属性注入 属性注入是大家最为常见也是使用最多的一种注入方式了&#xff0c;代码如下&#x…...

STM32第一天建立工程

新建一个工程 1&#xff1a;新建一个文件&#xff0c;添加文件 a:DOC工程说明 》doc说明文档 b&#xff1a;Libraries固件库 》cmsis内核文件 &#xff08;一般这就是stm32内核文件&#xff09; 》FWLIB外设文件 &#xff08;这种就是stm32外设文件不全&#xff09; 》start…...

记录一下返修

1.对复杂度的分析还不够&#xff1b; 2.融合两种指标的解释还不够&#xff0c;审稿人认为这两种指标存在冲突&#xff0c;不能同时优化&#xff0c;但其实我们考虑的是公平性保证整个调度周期内用户分配到了更加平均的sum-rate,而se是为了追求每个调度时刻都尽可能找到信道条件…...

搭建本地化笔记AI:用Copilot+deepseek+nomic-embed-text构建本地智能知识系统

安装Ollama https://ollama.com/ 下载模型 下载大语言模型 根据自己电脑的配置选择模型的大小 ollama run deepseek-r1:8b 下载向量处理模型 创建向量数据库时需要使用Embedding模型对文本进行向量化处理 ollama pull nomic-embed-text 查看安装的模型 ollama listNAME …...

【C语言】指针篇

目录 C 语言指针概述指针的声明和初始化声明指针初始化指针 指针的操作解引用操作指针算术运算 指针的用途动态内存分配作为函数参数 指针与数组数组名作为指针通过指针访问数组元素指针算术和数组数组作为函数参数指针数组和数组指针指针数组数组指针 函数指针函数指针的定义和…...

【蓝桥杯单片机】第十一届省赛

一、真题 二、创建工程 1.在C盘以外的盘新建文件夹&#xff0c;并在文件夹里面创建两个文件夹Driver 和Project 2.打开keil软件&#xff0c;在新建工程并选择刚刚建好的project文件夹&#xff0c;以准考证号命名 3.选择对应的芯片型号 4.选择否&#xff0c;即不创建启动文件 …...

【存储中间件】Neo4J图数据库超详细教程(一):相关介绍、特点及优势、数据模型、软件安装

文章目录 Neo4J超详细教程一、Neo4J相关介绍1.为什么需要图数据库方案1&#xff1a;Google方案2&#xff1a;Facebook 2.特点和优势3.什么是Neo4j4.Neo4j数据模型图论基础属性图模型Neo4j的构建元素 5.软件安装 个人主页&#xff1a;道友老李 欢迎加入社区&#xff1a;道友老李…...