7、Java类型转换
类型转换

自动类型转换
自动类型转换指的是容量小的数据类型可以自动转换为空量大的数据类型。(容量大小不是看字节数来定的,是按照类型可以容纳多的数来定的,所以long,可以自动转为float)
//特例:
byte a = 123; //常量是为int,但是这里没有报错,就是因为自动转换
//byte b = 1234; //报错,是因为1234这个常量的值超过byte类型的最大值了
强制类型转换
强制类型转换,是用于显式的转换一个数值的类型,在有可能丢失信息的情况下进行的转换是可能造成精度的溢出或降低的。
例:
double a = 1.2222;
int b = (int) a;
System.out.println("b=" + b);
//结果为:b=1
//精度变低了,并且没有小数部分了
基本数据转换的一个经典错误
操作较大的数的时候,有时会在不经意间溢出,尤其是操作整数的时候。
int a = 1000000000; //10亿
int b = 20;
int num = a * b;
System.out.println("num=" + num);
//输出的结果:num=-1474836480
//输出的结果是一个负数,是因为a和b的乘积已经超过了int的最大值了
//发生了内存溢出问题,所以就变成一个负数了。但是如果是下面这样呢:
long num2 = a * b;
System.out.println("num2=" + num2);
//输出的结果还是:num2=-1474836480
//输出的结果还是一个负数,是因为 = 符号从右往左运算的,先计算左边的值
//再赋值给右边,当右边计算完成时,还是一个int类型,
//但是已经溢出了,再转为long类型也没有用了
//下面的是正确的:
long num3 = a * (long)b;
System.out.println("num3=" + num3);
//结果为:num3=20000000000
//为什么可以成功呢?
//因为在等号右边进行计算前,b已经转为long类型了,
//所以当一个表达式中有一个long类型的时候,这个表达式的值为long的。
细节决定成败!
个人愚见,如有不对,恳请扶正!
7、Java类型转换的更多相关文章
- java类型转换
//java类型转换public class Demo2 { public static void main(String[] args){ int num1 = 55; int num2 =77; ...
- Java 类型转换精度问题
基本数据类型占用内存大小 最近项目中修复了一个关于类型转换精度丢失的问题,以前对于类型转换会丢失精度只知其然,不知其所以然,这次了解了下相关原理,也分享给大家.先来回顾一下 Java 的基本数据类型中 ...
- Java类型转换详解
Java类型转换详解 最近有同学问:自动类型转换老是记不住,到底是大转小,还是小转大 其实这个不用死记硬背,很好理解,我们拿 int 和 short 来举例: int 是 4 字节,也就是 32 bi ...
- Java 类型转换以及Object转成其他类型
Object转int int count=(int)map.get("count") int count=Integer.parseInt((String)map.get(&quo ...
- java 类型转换(摘自网络)
java基本类型转换规则 1.基本数据类型的转换是指由系统根据转换规则自动完成,不需要程序员明确地声明不同数据类型之间的转换. 转换在编译器执行,而不是等到运行期再执行. 2.基本数据类型 ...
- SQLServer类型与Java类型转换问题解决
ResultSet 接口提供用于从当前行获取列值的获取 方法(getBoolean.getLong 等).可以使用列的索引编号或列的名称获取值.一般情况下,使用列索引较为高效.列从 1 开始编号.为了 ...
- 从字节码看java类型转换【 深入理解 (T[]) new Object[size] 】
我们都知道,java中对类型的检查是很严格的,所以我们平操作时,也往往很小心. 如题: (T[]) new Object[size],这种写法是一般我们是不会干的!但是有点经验的同学,还是会遇到这样写 ...
- Java 类型转换(int->String)
1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...
- java 类型转换:
数值数据类型: 1.自动类型转换 byte->short ->int->long-->float--->double 范转小的类型向范围大的类型号转换,由系统自动完成 ...
- java类型转换详解(自动转换和强制转换)
自动转换 class Hello { public static void main(String[] args) { //自动转换 int a = 5; byte b = 6; int c = a ...
随机推荐
- Python发带附件的邮件
python实现发送带附件的邮件 import smtplib from email.mime.text import MIMEText from email.mime.multipart impor ...
- ios 软键盘弹出布局被顶上去 已解决
document.body.addEventListener('focusout', () => { //软键盘收起的事件处理 set ...
- liunx 中设置zookeeper 自启动(service zookeeper does not support chkconfig)
在liunx 上设置zookeeper 自启动 1.进入目录 cd /etc/init.d 2.创建一个文件 vim zookeeper 3.编辑zookeepr 文件 连接liunx使用的软件是fi ...
- C#连接数据库时Appsettings 与connectionStrings的区别
C#连接数据库时Appsettings 与connectionStrings的区别 转载lscyo 最后发布于2018-08-08 18:38:04 阅读数 3366 收藏 展开 一..Appset ...
- SUSE中搭建kafka
搭建环境: JDK: java version 1.8.0_221 zookeeper:zookeeper-3.5.2 kafka: kafka-2.11-1.1.0 一.安装JDK 由于需要jav ...
- 编码 - 设置 win10 下 cmd 编码格式
概述 cmd 编码格式修改 背景 之前尝试过修改 gitbash(mingw) 的 Character Set 这次尝试修改一下 cmd 的编码格式 准备 os win10.1903 1. 查看 当前 ...
- 组合数取mod
组合数取mod 条件mod是质数,inv 是逆元,fac是阶层: 用于n在10^5左右 maxn=100505: ll fact[maxn],inv[maxn]; ll Pow(ll x,ll n){ ...
- JavaScript DOM–元素操作
获取元素 根据 ID 获取元素 语法: document.getElementById(id) <div id='time'>2020-01-09</div> <scri ...
- web自动化环境搭建(python+selenium+webdriver)
本文档以谷歌浏览器为例,故自动化测试环境为下: 自动化工具为:selenium+webdriver 脚本语言为:Python3.X 浏览器:Chrome 系统环境:Win10 编译工具:Pycharm ...
- 前端框架vue.js系列(9):Vue.extend、Vue.component与new Vue
前端框架vue.js系列(9):Vue.extend.Vue.component与new Vue 本文链接:https://blog.csdn.net/zeping891103/article/det ...