Java中强制类型转换

article/2025/10/1 7:55:17

Java中强制类型转换

一、整型强转

类型转换都是小范围向大范围转换的,大范围往小范围转化需要用到强制转换,转换后的值会有所损失。

不同数据类型精度由小到大排列如下:char-->byte --> short --> int --> long --> float --> double 

先让我们一起看看小精度数据类型向大精度数据类型转换会出现什么问题吧。

class test02{public static void main(String[] args){byte b1=100;System.out.println(b1);}
}

 

输出结果如上,我们知道Java开发过程中数值默认输出为 int 型,但是明明 byte 比 int 小为什么输出结果没有问题呢?

那是因为,100在byte型(- 128~127)数值的范围内,所以输出没有问题,同理可得,只要被赋的值在小精度数据类型的范围内,输出结果都是没有问题的。

那如果被赋的值超出范围了会出现什么问题呢?

class test02{public static void main(String[] args){byte b2=300;System.out.println(b2);}
}

 

输出结果如上,它说:从int转换到byte可能会有损失,那到底会损失成什么样呢? 损失的原理是什么呢?

我们可以尝试强制转换,将int型强制转换为byte型,转换的方法就是在被赋的值前面加(byte)

class test02{public static void main(String[] args){byte b3=(byte)300;System.out.println(b3);}
}

可以看到,经过强制转换后的100变为了44,原理如下:

int型数值的存储大小为4字节,byte为1字节,那么

int型 100 的二进制数为00000000 00000000 00000001 0010 1100‬,强制转换为byte型数值后,它的二进制数就会变为1字

节,前面的3个字节都会被损失掉,即变为                     0010 1100,将它换算为十进制数就是输出结果44啦~

 

哪么两个相加不超范围的byte数,输出结果会是怎样的呢?

class test02{public static void main(String[] args){byte b7=50;byte b8=50; byte b9=b7+b8;System.out.println(b9);}
}

这是为什么呢? 50 + 50 =100,没有超出范围呀,怎么还是报错了呢?原因是这样的:

b9并不知道b7和b8是什么类型的数值,所以为了避免出现二义性,该程序不予以计算,就出现了上述结果啦~

short转int 如果赋值不当,出错结果同上。

那么我们再来看一段程序:

class test02{public static void main(String[] args){int i1=300;int i2=300;int i3=(int) i1 + i2;System.out.println(i1);System.out.println(i3);}
}

咦~这次输出结果怎么没有出现问题呢?

是因为Java中默认数据类型为int型,左右两边类型一致,当然不会出错啦~

如果数值过大超出int型怎么办?答案就是在整数常量后面+ l 或者L将其转换为 long常量,那么对于超级大的数字比如:1234456749143769471835, 超过long的取值范围了怎么办?答案就是调用 BigInteger BigDecimal 两个函数去解决。

二、浮点型强转

由上述案例可得,从double转换到float可能会有损失,所以解决方案就是在float类型的常量后面+F

class Test02{public static void main(String[] args){float f=3.14F;System.out.println(f);double d=10;System.out.println(d);double d1=3.14;double d2=3.14;double d3=d1+d2;System.out.println(d3);}
}

输出结果如上。

如何打印一个字符变量呢?

先去码表中找到编号相对应的字符,然后将字符编号赋给字符变量,最后打印即可,比如在ASCII码表中小写字母“a”对应97号,那么就将97 赋给字符变量即可,代码实现如下

class test02{public static void main(String[] args){char c1=97;System.out.println(c1);char c2='A';System.out.println(c2);}
}

还有就是将一个字符常量赋给字符变量时,那么无论如何赋值,一旦打印结果一定是字符,如上。

字符变量在参与运算时,是以编号身份参加的,那么如何查看'我'这个字符的编码呢?直接输出 System.out.println('我'+0);查看

我  的编码是多少,然后再输出打印即可。

同理,我 前后的字符也可以由此实现,具体代码如下。

class test02{public static void main(String[] args){System.out.println('我'+0);char c= 25105;System.out.println(c);System.out.println((char)('我'+1));System.out.println((char)('我'-1));System.out.println((char)8888888);}
}

为啥会出现问号呢?是因为ASCII码表中没有该编号,所以出现了 问号。

请使用至少两种方式求符号'我'的Unicode码
|-- 自动类型转换
|-- 强制类型转换

public class Type {public static void main(String[] args) {char a ='我';//方法1:自动类型转换int b =( a + 1) - 1;System.out.println(b);//方法2:强制类型转换int c = (int)a;System.out.println(c);}
}

 


http://chatgpt.dhexx.cn/article/vIZaHHDU.shtml

相关文章

(强制)类型转换方法

目录 一、C语言中的类型转换 二、C中的强制类型转换 2.1 static_cast 2.2 reinterpret_cast 2.3 const_cast 2.4 dynamic_cast 2.5 总结 一、C语言中的类型转换 在C语言中,若赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或…

rgba 兼容性处理

根据caniuse&#xff08;http://caniuse.com/#searchrgba&#xff09;&#xff0c;rgba兼容性为IE9以及以上浏览器。 实例代码&#xff1a; 1 <!doctype html>2 <html lang"en">3 4 <head>5 <meta charset"UTF-8" />6…

rgba无效php,ValueError:无效的RGBA参数:导致此错误的原因是什么?

我正在尝试使用来自:this stackoverflow post的想法创建一个三维彩色条形图。 首先,我使用以下代码创建一个三维条形图:import numpy as np import matplotlib.colors as colors import matplotlib.cm as cm import matplotlib.pyplot as plt from mpl_toolkits.mplot3d imp…

scss @for与rgba函数巧妙使用

SCSS for与rgba函数使用 这里再次记录下~~~ 文章目录 SCSS for与rgba函数使用效果图templatejsscss其他用法each参数变量...占位符选择器 %fooat-root 效果图 template <template><view class"list"><view class"item" :class"[item-…

RGBA: 了解

RGBA: 了解 rgba&#xff08;0&#xff0c;0&#xff0c;0&#xff0c;0&#xff09;四个值&#xff0c;前三个值的范围是0~255之间的整数或0-100的百分数 前三个值&#xff0c;描述的是三原色&#xff0c;最后一个则代表透明度选值在0~1之间&#xff1a; 0 表完全透明 0.5…

CSS3 RGBA颜色

前面我们一起探讨了一下CSS3 Gradient&#xff08;css3 渐变&#xff09;&#xff0c;今天我们一起来探讨一下CSS3中的RGBA。RGB对于大家来说一点不陌生&#xff0c;他就是红色R绿色G蓝色B&#xff0c;那现在我们所说的RGBA又是什么呢&#xff1f;说得简单一点就是在RGB的基础上…

CSS3 RGBA

转载自&#xff1a;http://www.w3cplus.com/content/css3-rgba 前面我们一起探讨了一下CSS3 Gradient&#xff08;css3 渐变&#xff09;&#xff0c;今天我们一起来探讨一下CSS3中的RGBA。RGB对于大家来说一点不陌生&#xff0c;他就是红色R绿色G蓝色B&#xff0c;那现在我们…

rgba的使用

rgba有四个值&#xff0c;前三个值都是数字&#xff0c;用来调颜色&#xff0c;最后一个值表示透明度&#xff0c;值在0-1。 1表示不透明&#xff0c;0表示透明&#xff0c;0-1之间可以调整透明的程度 最后值为0时 <!DOCTYPE html> <html><head><meta ch…

rgba无效php,rgba设置的背景透明没用啊

本来跟着老师的做的&#xff0c;设置了background-color: rgba(255,255,255,0.1);结果就成上边的样子了&#xff0c;求大神指导啊&#xff0c;啊啊啊啊.graySection .articlPreview .imgSection { width: 45%; } .imgSection img { width: 100%; } .graySection .articlPreview…

html边框白色实线rgba,CSS3 RGBA 属性高级用法

这个属性的兼容问题比较简单&#xff0c;IE8已经支持这个属性&#xff0c;IE6和IE7也可以通过hack支持。RGBA和CSS2里的RBG属性差不多&#xff0c;只是RGBA属性多了一个透明度的定义&#xff0c;CSS3标准里对RGBA属性的解释如下&#xff1a; /* 基本语法 */em { color: Rgba(re…

CSS中RGBA和渐变色

颜色值RGBA 我们熟悉的rgb颜色标准&#xff0c;是由r&#xff08;red&#xff09;、g&#xff08;green&#xff09;、b&#xff08;blue&#xff09;三种颜色叠加变化形成各种颜色 取值0-255&#xff0c;或0-100% rgba就是在rgb基础上增加了alpha不透明度参数 .demo {width…

Drools入门介绍

Drools 介绍 是一个业务规则管理系统&#xff0c;具有基于前向链和后向链推理的规则引擎&#xff0c;允许对业务规则和复杂事件处理进行快速可靠的评估。规则引擎也是创建专家系统的基本构建块&#xff0c;在人工智能中&#xff0c;专家系统是模拟人类专家决策能力的计算机系统…

Drools入门系列

Drools入门系列&#xff08;一&#xff09;HelloWorldDrools入门系列&#xff08;二&#xff09;HelloWorld详解之Sample.drlDrools入门系列&#xff08;三&#xff09;HelloWorld详解之kmodule.xmlDrools入门系列&#xff08;四&#xff09;HelloWorld详解之JUnit Test类Drool…

初探Drools

文章目录 背景一、Drools基本概念1.1 规则引擎1.2 Drools简介 二、Drools基本用法2.1 规则文件2.2 配置文件2.3 数据驱动 三、Drools进阶用法3.1 DSL语言3.2 其他 四、Workbench五、android端集成六、类比其他Java规则引擎七、应用场景与展望 背景 笔者最近在研究、使用Java规…

Drools学习01

Drools学习 1.springbootdroolsstringTemplate 1.1主要依赖导入 <!--使用drools的主要依赖--> <dependency><groupId>org.drools</groupId><artifactId>drools-compiler</artifactId><version>7.73.0.Final</version> <…

Drools基础语法

Drools基础语法 规则文件构成 在使用Drools时非常重要的一个工作就是编写规则文件&#xff0c;通常规则文件的后缀为.drl。 drl是Drools Rule Language的缩写。在规则文件中编写具体的规则内容。 一套完整的规则文件内容构成如下&#xff1a; Drools支持的规则文件&#xff…

【Drools一】值得打工人学习的规则引擎Drools

本文主要对Drools的使用业务场景做简单介绍。 规则引擎 规则引擎&#xff1a;全称为业务规则管理系统&#xff0c;英文名为BRMS(即Business Rule Management System)。规则引擎的主要思想是将应用程序中的业务决策部分分离出来&#xff0c;并使用预定义的语义模块编写业务决策…

Drools 入门例子

本人参照drools-4.0.7-examples修改&#xff0c;可以到这个网址去下载&#xff1a;http://www.jboss.org/drools/downloads.html 1:下载4.0版eclipse &#xff1a; eclipse-java-ganymede-win32.zip并解压到D:/eclipse-java-ganymede-win32不需安装 2:下载drools插件 http://ww…

Drools

Drools入门系列&#xff08;一&#xff09;HelloWorldDrools入门系列&#xff08;二&#xff09;HelloWorld详解之Sample.drlDrools入门系列&#xff08;三&#xff09;HelloWorld详解之kmodule.xmlDrools入门系列&#xff08;四&#xff09;HelloWorld详解之JUnit Test类Drool…

规则引擎 Drools

规则引擎 Drools 文章目录 规则引擎 Drools1. 问题引出2. 规则引擎概述2.1 什么是规则引擎2.2 使用规则引擎的优势2.3 规则引擎应用场景2.4 Drools介绍 3.Drools入门案例3.1 业务场景说明3.2 开发实现3.3 小结3.3.1 规则引擎构成3.3.2 相关概念说明3.3.3 规则引擎执行过程3.3.4…