3.5 类型转换

news/2025/3/15 1:14:01/

3.5 类型转换

我们知道Java是强类型语言,有些运算需要用到类型转换。

运算中,不同类型的数据先转化为同一类型,然后进行运算

低--------------------------------------->高
byte,short,char->int->long->float->double

低和高指的是容量,字节大小

public class Demo05{public static void main(String[]args){int i = 128;byte b = (byte)i;//强制类型转换,将int类型转换成byte类型System.out.println(i);System.out.println(b);}
}
//---------------------------------------输出结果为
128
-128

之所以会是-128是因为byte最大值为127,此时就会内存溢出的问题。

在转换的时候要注意内存溢出

强制类型转换:这是一种从高到低的转换

//强制类型转换
(类型)变量名

自动类型转换:是从低到高的转换

public class Demo05{public static void main(String[]args){int i = 128;double b = i;//从低到高的转换,不需要任何的修饰符System.out.println(i);System.out.println(b);}
}
//---------------------------------------输出结果为
128
128.0

注意点

/*
注意点
1. 不能对布尔值进行转换
2. 不能把对象类型转换为不相干的类型
3. 把高容量转换到低容量的时候,需要强制转换,反之不用强制
4. 转换的时候可能存在内存溢出或者精度问题!
*/
public class Demo05{public static void main(String[]args){System.out.println((int)23.7);System.out.println((int)-45.89f);char c = 'a';int d = c+1;System.out.println(d);System.out.println((char)d)}
}
//---------------------------------------输出结果为
23
-45
98
b

常见问题

/*
1. 操作比较大的数的时候,注意溢出问题
2. JDK7新特性,数字之间可以用下划线分割,而下划线并不会被输出,只是为了区分方便
*/
public class Demo06{public static void main(String[]args){int money = 10_0000_0000;System.out.println(money);int years =20;int total =money*years;System.out.println(total);long total2 = money*years;System.out.println(total2);long total3 = money*((long)years);System.out.println(total3);}
}
//---------------------------------------输出结果为
1000000000
-1474836480//这就是因为计算时内存溢出
-1474836480//因为money与years都是int类型,相乘之后默认也会被认为是int类型,计算完之后才把结果转换为long类型,此时结果还是溢出,也就是说转换之前已经出现问题了。
20000000000

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

相关文章

小米为什么造不出芯片

小米造不出芯片,造了多少轮了,一个轮子也没见到。 再反观OPPO,说造就真很快造好了。居然因此入选科技top50榜单。 为啥米。我觉得就是因为小米没钱。 说没钱,大概有人会说比小米没钱的多了去了。小米已经很赚钱了。 但是跟OPPO比…

比亚迪王传福谈“小米雷军造车”

本文转载自IT之家 6 月 10 日早间消息,在亚布力中国企业家论坛上 ,比亚迪董事长兼总裁王传福调侃了一波小米造车,表示很多大咖进来造车,50 亿不算钱。比如说像雷军,1000 个亿。但现在具有造车优势的企业并不多&#x…

Vue3 跨页面实现点击事件 -- mitt

注:此处为vue3 setup写法 1.安装 npm i mitt -s 2.引入-- main.js文件中 // main.js import mitt from mittapp.config.globalProperties.Bus mitt()3.使用 页面A import { getCurrentInstance } from vue // 获取到 全局事件总线 const {Bus} getCurrentInsta…

【C++】浅析C++中的虚函数

关于虚函数 Q1&#xff1a;观察一个类引入虚函数后&#xff0c;类会发生什么变化&#xff1f; 首先&#xff0c;创建一个空类A&#xff0c;并实例化出A的一个对象a&#xff0c;计算一下这个对象占用多少字节&#xff1a; #include<iostream> using namespace std;clas…

三星内存android用法,三星One UI(Android 9)功能焦点:自动释放内存和存储空间...

Galaxy智能手机拥有保持设备最佳运行所需的系统工具&#xff0c;包括通过停止后台应用程序来清除设备内存并通过删除不必要的文件释放存储空间。但是&#xff0c;用户有时候不会关注他们设备的这些方面&#xff0c;因此三星在One UI推出了自动优化的选项。 自动优化&#xff0c…

安卓系统手机软件_内存不够?别急,五款安卓手机内存最高达到了16GB

手机卡住了&#xff0c;有可能打个电话得等半分钟 这五款手机分别是&#xff1a;三星S20&#xff0c;小米10&#xff0c;努比亚红魔5S&#xff0c;联想拯救者&#xff0c;ROG游戏手机3 手机运行内存大&#xff0c;当然好处多多&#xff1a; 1、同时运行更多的应用程序&#xff…

android6要多大运存,内存多大手机才能不卡? 现在终于有了答案

原标题&#xff1a;内存多大手机才能不卡&#xff1f; 现在终于有了答案 随着手机更新换代速度的不断提升&#xff0c;手机配置也在不断刷新记录。十核心处理器、4K屏幕早已出现&#xff0c;甚至运行内存在去年已经升级到6GB。在今年的CES 2017上&#xff0c;更是让我们见到首款…

Android 从内存模型深究内存优化本质

文章目录 一、类加载机制1. ClassLoader的类型2. ClassLoader的加载过程 二、Java虚拟机的运行时内存模型1. 程序计数器PC2. 虚拟机栈3. 本地方法栈4. 方法区5. 常量池&#xff1a;6. Java堆 三、垃圾标记算法1、引用计数算法&#xff1a;2、根搜索算法3、Java中的引用类型 四、…