JAVA SE 005——类型转换
JAVA SE
类型转换
自动类型转换(AutoTypeConvert)
- 1 自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型
- 2 在赋值运算或算术运算时,数据类型相同,否则要进行类型转换;除boolean类型外,所有的基本数据类型(整型、浮点型和字符型)因各自的精度不同,赋值时都要考虑这个问题
- 3 无数据丢失的自动转换byte->short->int、char->int、int->long、int->double和float->double,可能有精度丢失的自动转换int->float、long->float和long->double
- 4 可以将整型常量直接赋值给byte、short和char等类型变量,而不需要进行强制类型转换,只要不超出其数据表示范围
- 5 算数运算中相邻两个操作数先转化为同一类型,转换从低级到高级,然后进行运算;运算的结果再和下一个操作数据进行运算,规则相同
源程序:自动类型转换
/*** * @author money**/
public class AutoTypeConvert {public static void main(String[] args) {byte b = 127; //在byte的有效范围内,int直接赋值给byte/*byte b1 = 300; 300超过byte可以表示的最大数,编译报错*/char c = 65535; // char类型可以表示最大数字是65535short s = 32767; System.out.println("在byte的有效范围内,int可以直接赋值给byte:"+b);System.out.println("在char的有效范围内,int可以直接赋值给char:"+c);System.out.println("在short的有效范围内,int可以直接赋值给short:"+s);// 无数据丢失的自动类型转换short s1 = b; // 先将b的转换成short类型,再赋值给s1int i1 = s1;int i2 = c;long l = i1;double d = i2;float f1 = 3.14F;double d1 = f1;System.out.println("byte->short->int自动类型转换:"+i1);System.out.println("char->int自动类型转换:"+i2);System.out.println("int->long自动类型转换:"+l);System.out.println("int->double自动类型转换:"+d);System.out.println("float->double自动类型转换:"+d1);// 可能有精度丢失的自动转换float f2 = i2;float f3 = l;double d2 = l;System.out.println("int->float自动类型转换:"+f2);System.out.println("long->float自动类型转换:"+f3);System.out.println("long->double自动类型转换:"+d2);}
}
运行结果:在byte的有效范围内,int可以直接赋值给byte:127在char的有效范围内,int可以直接赋值给char:?在short的有效范围内,int可以直接赋值给short:32767byte->short->int自动类型转换:127char->int自动类型转换:65535int->long自动类型转换:127int->double自动类型转换:65535.0float->double自动类型转换:3.140000104904175int->float自动类型转换:65535.0long->float自动类型转换:127.0long->double自动类型转换:127.0
强制类型转换(ForceTypeConvert)
- 1 强制类型转换是从存储范围大的数据类型转换到存储小的数据类型
- 2 强制类型转换可能造成精度的降低或溢出
- 3 小数强制转换成整数,无条件舍弃小数点后的所有数字
- 4 强制转换格式:
(type)var
,type表示将值var转换成想要的目标数据 - 5 操作比较大的数时,应留意数据是否溢出,即数字超过该数据类型表示的最大数
源程序:强制类型转换
/*** * @author money**/
public class ForceTypeConvert {public static void main(String[] args) { int i = (int)300.14; // 小数强转整数,舍弃小数位byte b = (byte)i; // 超过byte的表示范围,有精度的丢失float f = 3.14F;// 先将b自动转换成float类型与f相乘,结果强转为intint result = (int)(i*f);System.out.println("小数强转为整数:"+i);System.out.println("超过表示范围的强转:"+b);System.out.println("四则运算中的强转:"+result);}
}
运行结果:小数强转为整数:300超过表示范围的强转:44四则运算中的强转:942
JAVA SE 005——类型转换相关推荐
- Java SE 005 运算符 续
Java SE 005 运算符 续 前言:此笔记为圣思园张龙老师讲述的java视频课程笔记,自己看视频学习时记录的,用于积累与复习,在此分享给学习软件编程的兄弟姐妹们,以供参考. 1.关系运算符 大于 ...
- Java SE 005 运算符续
(1)一个人只要自己不放弃自己,整个世界也不会放弃你. (2)天生我才必有大用 (3)不能忍受学习之苦就一定要忍受生活之苦,这是多么痛苦而深刻的领悟. (4)做难事必有所得 (5)精神乃真正的刀锋 ( ...
- java se运算符优先级,【JAVA SE基础篇】10.运算符优先级与类型转换
[JAVA SE基础篇]10.运算符优先级与类型转换 1.运算符的优先级 运算符的优先级在考试中会考,了解即可,多用就会熟能生巧 实际使用过程中建议用小括号来分优先级 关键就是:逻辑非>逻辑与& ...
- Java SE 基础知识(一)
一.基础知识 1. Java SE : Java Standard Edition Java ME : Java Micro Edition Java EE : Java Enterprise Edi ...
- 【JAVA SE】第一章 Java语言概述、环境变量和HelloWorld
第一章 Java语言概述.环境变量和HelloWorld 文章目录 第一章 Java语言概述.环境变量和HelloWorld 一.Java语言概述 1.Java简介 2.Java发展历史 3.Java ...
- Java复习总结(二)Java SE 面试题
Java SE基础知识 目录 Java SE 1. 请你谈谈Java中是如何支持正则表达式操作的? 2. 请你简单描述一下正则表达式及其用途. 3. 请你比较一下Java和JavaSciprt? 4. ...
- Java SE 第三讲(原生数据类型使用陷阱 Pitfall of Primitive Data Type)
Java SE 第三讲: 1. Java中的原生数据类型共有8种: 1) 整型:使用int表示.(32位) 2) 字节型:使用byte表示.(表示-128-127之间的256个整数, 8位). 3)短 ...
- 圣思园张龙-Java SE 第三讲(原生数据类型使用陷阱 Pitfall of Primitive Data Type)
Java SE 第三讲: 1. Java中的原生数据类型共有8种: 1) 整型:使用int 表示.(32位) 2) 字节型:使用byte表示.(表示-128-127之间的256个整数, 8位) ...
- ⑦Java SE知识点回顾与小结(面向对象)
Java SE 面向对象 一.面向对象的优点: 1)面向对象的思维方式更贴近于现实生活的思维方式 2)面向对象思维方式更体现于管理者,面向过程体现于执行者 3)可以将复杂的问题简单化 二. ...
最新文章
- HDU3068 最长回文
- kill Signal
- hbase开发环境搭建及运行hbase小实例(HBase 0.98.3新api)
- python当中pip使用_python
- 运行mysql数据库的命令_mysql 数据库常用命令
- 在AndroidStudio中数据存储第三方数据管理Bmob的使用
- JSR303常见参数
- 技术实践第二期|Flutter异常捕获
- python工作目录_Python目录的基本操作
- myeclipse 10.7安装过程与初次启动
- metrics的timer功能在java项目中的使用方法
- springboot+mybatis 的org.mybatis.spring.MyBatisSystemException 解决方法
- windows server 2012 开始菜单
- 计算机辅助设计技术案例,【智能科技学院】学院前沿技术运用课程组开展“计算机辅助设计”专题讲座...
- linux 环境变量_linux的环境变量
- cat /proc/cpuinfo命令详解
- ideal_lp.m、freqz_m.m、freqz_m2.m
- 安装深度linux系统卡住不动,简单有效!一招解决深度Linux死机问题
- 聊聊那些计量软件(区别、流行度 R Matlab SPSS SAS STATA)
- java加载顺序_类加载过程中几个重点执行顺序整理
热门文章
- CMD控制台提示“telnet不是内部或外部命令,也不是可运行的程序或批处理文件”
- tunnel和channel区别
- java小游戏-飞翔的小鸟
- iframe例子 (
- 黑马程序员pink老师前端h5(html5)+css3(16)P94-P104伪类选择器上并集选择器子选择器后代选择器emmet语法生成标签快速格式化代码复合选择器简介
- 《Linux驱动:网络设备驱动》
- VBA每日一练(4),补充VBA的基础语句知识,基本控制结构,I/O基础
- ie浏览器不能能上网,但火狐等浏览器可以
- python和wps-基于python的docx模块处理word和WPS的docx格式文件方式
- 蓝牙芯片|伦茨科技-智能蓝牙BLE5.2芯片ST17H66