类型转换

  • Java是强类型语言,在进行有些运算时,需要用到类型转换
低----------------------->--------------------------->高
byte, short, char --> int --> long --> float --> double
  • 运算中,不同类型的数据先转化为同一类型,再进行运算
  • 高容量转换为低容量需要进行强制转换,低容量转换高容量自动转换
  • 数据类型转换时,有一些特殊的类型会出现精度丢失或内存溢出问题
public static void main(String[] args) {int i = 128;byte j = (byte) i;// 强制转换 (类型)变量名 高-->低// 自动转换 低-->高System.out.println(i); // 输出值128System.out.println(j); // 输出值-128,Byte 最大值为127,强制转换时,会报内存溢出/** 注意点:* 1.不能对布尔类型进行转换* 2.不能把对象类型转换为不相干的类型* 3.在把高容量转换到低容量的时候,强制转换* 4.转换的时候可能存在内存溢出或者精度问题*/// 精度丢失System.out.println((int) 23.7); // 输出值23System.out.println((int) -45.89f); // 输出值-45// 字符与整型之间的转换char c = 'a';int d = c + 1;System.out.println(d); // 输出值98System.out.println((char) d); // 输出值b// 操作比较大的数据时,注意溢出问题// JDK7新特性可以在整型中增加下划线分割,为了方便对长数字的可读性// 可以书写为10_0000_0000,且不影响输出int money = 10_0000_0000;int years = 20;int totalMoney = money * years;System.out.println(totalMoney); // 输出值-1474836480,计算时溢出// 正确写法// 因为计算数据超出了整型的数值范围导致内存溢出// 针对这种情况需要将其中一个数值强转为long,这样其结果会自动转换为long类型long lTotalMoney = money * ((long) years);System.out.println(lTotalMoney); // 输出值20000000000
}

Java修炼之凡界篇 筑基期 第02卷 语法 第04话 类型转换相关推荐

  1. Java修炼之凡界篇 筑基期 第02卷 语法 第06话 运算符

    运算符 Java语言支持的运算符: 算术运算符:+, -, *, /, %, ++, – 赋值运算符:= 关系运算符:>, <, >=, <=, ==, !=, instanc ...

  2. Java修炼之凡界篇 筑基期 第02卷 语法 第03话 数据类型

    数据类型 PS:平常生活中,也会用到一些数据的类型,例如:数字.字符(文字).是.非,且数字分为整数和小数,在Java中也是和生活中一样,有属于自己的数据类型,Java种有八大基本数据类型和一些引用类 ...

  3. Java修炼之凡界篇 筑基期 第02卷 语法 第01话 注释

    注释 平时编写程序代码时,代码量在很少的时候,还能够记得和看懂自己写的程序,但是项目结构复杂并且时间长了之后,我们不一定会都记得,这个时候呢就需要用到程序的注释了 注释不会被程序所执行,是供编程的人员 ...

  4. Java修炼之凡界篇 筑基期 第01卷 入门 第04话 JDK JRE JVM

    JDK JRE JVM JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK), 在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里 ...

  5. Java修炼之凡界篇 筑基期 第02卷 语法 番外1 原码 反码 补码

    原码 反码 补码 博客整理自 原码, 反码, 补码 详解 - ziqiu.zhang - 博客园 (cnblogs.com) 机器数与真值 在学习原码.反码和补码之前,需要先了解什么是机器数,什么是真 ...

  6. Java修炼之凡界篇 筑基期 第05卷 数组 第04话 数组的使用

    数组使用 程序案例: public class ArrayUse {public static void main(String[] args) {int[] arrayInt = {4, 7, 1, ...

  7. Java修炼之凡界篇 筑基期 第06卷 面向对象 第05话 static关键字

    static 关键字 在<Java编程思想>有这样一段话: "static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建 ...

  8. Java修炼之凡界篇 筑基期 第05卷 数组 第03话 数组基本特点和边界

    数组基本特点和边界 数组基本特点 数组长度是确定的,数组一旦被创建,其大小就是不可以在更改 数组元素必须是相同类型,不允许出现混合类型 数组元素可以是任何数据类型,包括基本类型和引用类型 数组变量属于 ...

  9. Java修炼之凡界篇 筑基期 第05卷 数组 第06话 Arrays 类

    Arrays 类 数组工具类 java.util.Arrays 数组本身没有方法供开发人员进行调用,Java API 提供了一个工具类 Arrays 供开发人员进行使用,可以使用这个工具类对数据处理一 ...

最新文章

  1. 资源 | 10x Python开发者必读:本月Python文章TOP 10
  2. 展望2021年:智能机器人可监督工业机器人干活,效率提升30%
  3. Thrift介绍以及Java中使用Thrift实现RPC示例
  4. luogu P4238 多项式求逆 (模板题、FFT)
  5. Java基础系列8:Java的序列化与反序列化(修)
  6. linux人脸识别视频推流,RTMP推流协议视频智能分析/人脸识别/直播点播平台EasyDSS接口调用注意事项介绍...
  7. java类加public和不加public
  8. 春节快到了,来写个烟花动效吧
  9. java缓存技术redis原理_Java架构师-5分钟带你深入理解Redis的持久化方式及其原理...
  10. .net知识和学习方法系列(三)CSharp中控件台的输入输出
  11. oracle的.aud文件,Oracle 11g 在audit_file_dest目录下产生大量的aud文件
  12. 白话文阐述openTSDB
  13. Codeforces Round #439 (Div. 2)题解
  14. 超硬核 Web 前端学霸笔记,学完就去找工作!
  15. thinkpad x230 换三星 msata ssd 860 EVO
  16. JQuery中$.ajax()方法参数详解
  17. 物联网平台搭建的全过程介绍(一)——物联网简介
  18. python+selenium+request实行全自动12306抢票和购票
  19. ceph BALANCER
  20. 使用后羿采集器采集数据,并导出到MySql数据库中

热门文章

  1. android 基带版本怎么升级,Android如何升级5.1系统?安卓5.1刷机技巧
  2. 世平信息参与2020计世传媒优秀安全企业线上展示
  3. python图像拼接_python numpy 和 opencv 图像拼接
  4. 计算机编程中对象是什么意思,vb中“要求对象”是什么意思
  5. 一、Scrapy简介
  6. 政府招商引资合同履约怎么做好风险规避?
  7. kettle http 方式调用webservice
  8. php实现简单记事本功能
  9. u盘装系统找不到硬盘怎么办?会这三种技能就不发愁!
  10. Windows 安装Java (官网下载Java)