JavaSE-数据类型之间的强制性转换
数据类型之间的强制性转换
在 Java 中,数据类型之间的转换主要分为两种:自动类型转换(也称为隐式类型转换)和强制类型转换(也称为显式类型转换)。自动类型转换通常发生在更宽泛的数据类型向更狭窄的数据类型转换时,而强制类型转换则需要程序员显式地进行。
自动类型转换(隐式类型转换)
自动类型转换发生在基本数据类型之间,从较小范围的类型自动转换为较大范围的类型。例如:
- 从
byte或short转换为int或long。 - 从
int转换为long或float或double。 - 从
float转换为double。
这些转换不需要程序员显式地进行,Java 编译器会自动处理。
强制类型转换(显式类型转换)
当需要将一个数据类型转换为一个更狭窄的数据类型时,需要使用强制类型转换。这种转换可能会丢失精度或引发异常,因此需要程序员显式地进行。常见的强制类型转换包括:
从
long转换为int:long a = 12345678901234L;
int b = (int) a; // 强制类型转换
从
double转换为int:double a = 123.456;
int b = (int) a; // 强制类型转换,只取整数部分
从
float转换为byte:float a = 123.456f;
byte b = (byte) a; // 强制类型转换,只取整数部分
从
char转换为int:char a = 'A';
int b = (int) a; // 强制类型转换,将字符转换为其 ASCII 码值
从
int转换为char:int a = 65;
char b = (char) a; // 强制类型转换,将 ASCII 码值转换为字符
注意事项
- 精度丢失:在从浮点数转换为整数时,小数部分会被截断。
- 溢出:在将较大的数值转换为较小的数据类型时,可能会发生溢出。例如,将
long转换为int时,如果数值超出int的范围,结果将是不确定的。 - 异常:在某些转换中,如将
double转换为int,如果数值太大或太小,可能会抛出java.lang.NumberFormatException。
示例代码
public class TypeCasting {
public static void main(String[] args) {
long a = 12345678901234L;
int b = (int) a; // 强制类型转换,可能会丢失精度
double c = 123.456;
int d = (int) c; // 强制类型转换,只取整数部分
float e = 123.456f;
byte f = (byte) e; // 强制类型转换,只取整数部分
char g = 'A';
int h = (int) g; // 强制类型转换,将字符转换为其 ASCII 码值
int i = 65;
char j = (char) i; // 强制类型转换,将 ASCII 码值转换为字符
System.out.println("b = " + b);
System.out.println("d = " + d);
System.out.println("f = " + f);
System.out.println("h = " + h);
System.out.println("j = " + j);
}
}
在实际编程中,合理地使用数据类型转换可以提高代码的灵活性和效率,但也要注意避免潜在的问题。
JavaSE-数据类型之间的强制性转换的更多相关文章
- PHP数据类型之间的强制转换
1.实型数据强制转换为整型数据 $float1=2.7; $int1=(int)$float1; echo var_dump($int1),"<br>"; 输出: in ...
- JavaSE:数据类型之间的转换(附常见面试题)
数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...
- JavaSE| 数据类型| 运算符| 进制与补码反码等
JavaSE JavaSE是学习JavaWeb.JavaEE以及Android开发的基础 边听边思考边做“笔记” 不要完全依赖书和视频: 捷径:敲.狂敲: 规范:加注释: 难点,不懂的记录下时间再回头 ...
- java中的、标识符、运算符以及数据类型之间的转换。
---恢复内容开始--- 数据类型之间的转换: 1:自动转换:就是不用说出要转换成什么类型,由java中的虚拟机自动将小数据类型转换成大数据类型,但大数据中的数据精度有可能被破坏. 2:强制转换:强制 ...
- Java基础——数据类型之间的转换
Java数据类型分为三大类,即布尔型.字符型和数值型.其中数值型又分为整型和浮点型.Java的基本数据类型(8种)为布尔型boolean(1字节):字符型char(2字节):整型byte(1字节).s ...
- Java中的基本数据类型和基本数据类型之间的转换
在Java中有8中基本数据类型,分别为: 整型: byte.short.int.long 浮点型:float.double 布尔型:boolean 字符型:char. byte: 8位, 封装 ...
- 浅谈C#语言中的各种数据类型,与数据类型之间的转换
什么是数据类型? 数据类型,百度百科是这样解释的:数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作.这样的解释对于一个初学者来说未必太过于深奥. 简单点说,数据类型就是不同长度的 ...
- Java中几种常用数据类型之间转换的方法
Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ...
- 系统学习(javascript)_基础(数据类型之间的转换)
在js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(利用javascript弱变量类型转换). 强制转换: 利用js提供的函数parseInt(),parseFloat(),Number( ...
- 10-10C#基础---数据类型之间的转换
10-10 C#基础数据类型转换(熟练掌握) 第一课 数据类型之间的转换 基本类型的转换:自动转换(隐式转换)和强制转换(显示转换) 装箱转换:允许值类型隐式转换成引用类型. 拆箱转换:允许将引用类 ...
随机推荐
- 异步日志分析:MongoDB与FastAPI的高效存储揭秘
title: 异步日志分析:MongoDB与FastAPI的高效存储揭秘 date: 2025/05/22 17:04:56 updated: 2025/05/22 17:04:56 author: ...
- K8s新手系列之DaemonSet资源
概述 官网文档:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/daemonset/ DaemonSet简称ds Dae ...
- Ubuntu Vmware虚拟机 没有共享文件夹/mnt/hgfs 解决
问题现象 在Vmware虚拟机设置共享文件夹后,在Ubuntu系统侧应该在/mnt/hgfs目录下可见.然而,有时在重启虚拟机后不存在该文件夹. 解决方法 在终端中执行以下代码,需要root权限. s ...
- 五分钟扫盲:25个工作中常用的Linux命令
目录 §基础篇 cd 命令 ls / ll 和 clear 命令 grep 命令 : 查找关键字 find命令 kill tail cp命令 mv命令 rm命令 mkdir命令 rmdir 命令 ca ...
- linux配置Maxwell
1.Maxwell-1.30.0及以上的版本不再支持JDK1.8,而JDK1.8支持的最后一个版本为1.29.2 2.下载Maxwell的压缩包,上传到服务器并解压 3.tar -xf maxwell ...
- SAP的PI日志查看工具
被很多人吐槽的SAP PI能坚挺的活下来,真是不容易... SXI_MONITOR是PI的标准的消息查看器,如果又权限的话,甚至可以做自定义字段的查询增强(如果对单据创建接口,增加单号...速度杠杠的 ...
- ET框架服务端部署到Linux--升级3.1
框架升级3.1参考:https://www.cnblogs.com/cj8988/p/14098017.html 安装.netcore 3.1 我的安装方法,直接下载文件(Centos7系统,之前安装 ...
- Rust修仙之道 第五章:模块境 · 构建术式藏经阁
第五章:模块境 · 构建术式藏经阁 "术不可一览而尽,灵不可乱而无序.将万法藏于阁中,方能道术归一." 顾行云在编撰灵兽系统时,法术文件越写越长,变量冲突频发,灵气流转迟缓.他终于 ...
- 简单的sqlHelper类
public class SQLHelper { //连接数据库 static string connStr = ConfigurationManager.Conn ...
- HashMap居然可以和它直接合体???
LinkedHashMap集合继承于HashMap,学习LinkedHashMap重点对比 LinkedHashMap 与 HashMap 的异同 特别强调两者的 Entry(节点)数据结构.数据结构 ...