文档章节

类型转换

Typing_Orange
 Typing_Orange
发布于 2017/04/15 23:48
字数 723
阅读 12
收藏 0

 

  1. 隐式类型转换

    Java8种基本类型可以进行混合运算,不同类型的数据在运算过程中,首先会自动转换为同一类型,再进行运算。数据类型根据占用存储空间的大小分为高低不同的级别,占用空间小的级别低,占用空间大的级别高,自动类型转换遵循低级到高级转换的规则。

  2. 显式类型转换

    当把高精度的变量的值赋给低精度的变量时,必须使用显式类型转换运算(又称强制类型转换)。语法如下所示:

    (类型名)要转换的值


     

补充:

  Java语言和解释器限制使用强制和转换,以防止出错导致系统崩溃。整数和浮点数运算符间可以来回强制转换,但整数不能强制转换成数组或对象。对象不能被强制为基本类型。

  Java中整数运算符在整数运算时,如果操作数是long类型,则运算结果是long类型,否则为int类型,绝不会是byte,short或char型。这样,如果变量i被声明为short或byte,i+1的结果会是int。如果结果超过该类型的取值范围,则按该类型的最大值取模

long max_Value = Integer.MAX_VALUE;
System.out.println(max_Value+"——int类型最大值");

int d = (int)(max_Value+1);//因为long类型最大值超过int类型的取值范围,则按int类型的最大值取模。
System.out.println(d+"——long类型最大值强制转换成int类型");
		
int e = Integer.MAX_VALUE;
long f = e+1;//变量e此时已经成int类型最大数值了,而1也int类型,因此此时e+1 已经成了负数,所以long类型的变量f接受后也是负数
System.out.println(f+"——int类型最大值+1赋值给long类型变量" );
		
int g = Integer.MAX_VALUE;
long h = (long)g+1;//利用(long)的向上强制类型转换,可以将int最大值+1平滑过渡到long类型变量中
System.out.println(h+"——int类型最大值提前强制转换成long类型后,再+1赋值给long类型变量");
		
int i = Integer.MAX_VALUE;
long j = (long)(i+1);//注意:该赋值过程中,由于(i+1)有个小括号括起来,在这个小括号中已经运算出-2147483648的值,之后再用(long)的强制类型转换也无济于事了。
System.out.println(j+"—— 优先执行int类型最大值+1运算再强制转换成long类型");

运行结果:

2147483647——int类型最大值
-2147483648——long类型最大值强制转换成int类型
-2147483648——int类型最大值+1赋值给long类型变量
2147483648——int类型最大值提前强制转换成long类型后,再+1赋值给long类型变量
-2147483648——优先执行int类型最大值+1运算再强制转换成long类型

 

© 著作权归作者所有

Typing_Orange
粉丝 15
博文 47
码字总数 30624
作品 0
南京
私信 提问

暂无文章

Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
7
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
7
0
Flutter系列之在 macOS 上安装和配置 Flutter 开发环境

本文为Flutter开发环境在macOS下安装全过程: 一、系统配置要求 想要安装并运行 Flutter,你的开发环境需要最低满足以下要求: 操作系统:macOS(64位) 磁盘空间:700 MB(不包含 IDE 或其余...

過愙
昨天
6
0
OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
昨天
2.5K
16
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
昨天
42
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部