【Java】类型转换与类型提升

news/2024/10/12 12:55:56/

目录

1.类型转换

1.1自动类型转换(隐式)

1.2强制类型转化(显式)

2.类型提升

3.字符串类型


1.类型转换

Java作为一个强类型编程语言,当不同类型之间的变量相互赋值的时候,会有教严格的校验.

在Java中,当参与运算数据类型不一致时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换(隐式)和强制类型转换(显式)。

1.1自动类型转换(隐式)

自动类型转换即:代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。特点:数据范围小的转为数据范围大的时会自动进行。

1.2强制类型转化(显式)

强制类型转换:当进行操作时,代码需要经过一定的格式处理,不能自动完成。特点:数据范围大的到数据范围小的。
 

java">//示例
long a=10;
int b=(int)a;//long->int需要强制转换

注意事项:
1.不同数字类型的变量之间赋值,表示范围更小的类型能隐式转换成范围较大的类型
2.如果需要把范围大的类型赋值给范围小的,需要强制类型转换,但是可能精度丢失
3.将一个字面值常量进行赋值的时候, Java会自动针对数字范围进行检查
4.强制类型转换不- -定能成功,不相干的类型不能互相转换

 

2.类型提升

不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。

1. int与long之间: int会被提升为long


2.bytebyte的运算

结论 : byte byte 都是相同类型, 但是出现编译报错. 原因是, 虽然 a b 都是 byte, 但是计算 a + b 会先将 a 和 b 都提升成 int, 再进行计算, 得到的结果也是 int, 这是赋给 c, 就会出现上述错误.
由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte short 这种低于 4 个字节的类型, 会先提升成 int, 再参与计算
正确的写法:
类型提升小结 :
1. 不同类型的数据混合运算 , 范围小的会提升成范围大的 .
2. 对于 short, byte 这种比 4 个字节小的类型 , 会先提升成 4 个字节的 int , 再运算 .

3.字符串类型

Java 中使用 String 类定义字符串类型,比如:
在有些情况下,需要将字符串和整形数字之间进行转换:
1. int 转成 String
2. String 转成 int


http://www.ppmy.cn/news/1537886.html

相关文章

10.11 Qt

数据库查询案例 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlRecord> #include <QSqlError> #include <QInputDialog>QT_BEGIN_NAMESPACE namespace Ui { …

春日编程助手:Spring Boot答疑系统

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常适…

有点晕,inline, crossinline,noinline小计

inline 主要用于展开铺平函数&#xff0c;用于高频访问但是代码不是很多的方法&#xff0c;减少函数对象的定义 fun <T> List<T>.normalForeach(action:(T)->Unit){for(item in this){action(item)} }inline fun <T> List<T>.inlinedForeach(action…

数据结构——排序(插入排序)

目录 一、插入排序 二、直接插入排序 基本概念&#xff1a; 工作原理&#xff1a; 示例&#xff1a; 代码实现 三、希尔排序 &#xff08;一&#xff09;基本概念 &#xff08;二&#xff09;工作原理 &#xff08;三&#xff09;示例 &#xff08;四&#xff09;代码实…

C++ socket编程(3)

前面文章&#xff0c;介绍了一个简单socket通讯Demo&#xff0c; 客户端和服务器进行简单的交互。两个代码都很简单&#xff0c;如果情况一复杂&#xff0c;就会出错。这节我们把代码完善一下&#xff0c;实现一个客户端输入&#xff0c;发送&#xff0c;服务器echo的交互。本文…

Python3 爬虫 中间人爬虫

中间人&#xff08;Man-in-the-Middle&#xff0c;MITM&#xff09;攻击是指攻击者与通信的两端分别创建独立的联系&#xff0c;并交换其所收到的数据&#xff0c;使通信的两端认为其正在通过一个私密的连接与对方直接对话&#xff0c;但事实上整个会话都被攻击者完全控制。在中…

Redis面试题——第三篇

1. Redis的Red Lock是什么 Red Lock 是一种分布式锁的实现方案&#xff0c;旨在解决分布式环境中使用Redis实现分布式锁时的安全性问题。 一般情况下&#xff0c;我们在生产环境中会使用主从哨兵方式来部署Redis。 如果我们正在使用redis分布式锁&#xff0c;此时发生了主从切…

代码随想录 106. 岛屿的周长

106. 岛屿的周长 #include<bits/stdc.h> using namespace std;int main(){int n, m;cin >> n >> m;vector<vector<int>> mp(n, vector<int>(m, 0));for (int i 0; i < n; i){for (int j 0; j < m; j){cin >> mp[i][j];}}in…