zoukankan      html  css  js  c++  java
  • 自动类型转换和强制类型转换

    如果系统支持把某种基本类型的值直接赋给另一种基本类型的变量,这种方式被称为自动类型转换。当把一个取值范围小的数值或变量直接赋给另一个取值范围大的变量时,系统可以进行自动类型转换。

    Java 中所有数值型变量之间可以进行类型转换,取值范围小的可以向取值范围大的进行自动类型转换。就好比有两瓶水,当把小瓶里的水倒入大瓶时不会有任何问题。Java 支持自动类型转换的类型如下图所示。

    在上图所示的类型转换图中,箭头左边的数值可以转换为箭头右边的数值。当对任何基本类型的值和字符串进行连接运算时,基本类型的值将自动转换为字符串类型,尽管字符串类型不再是基本类型,而是引用类型。因此,如果希望把基本类型的值转换为对应的字符串,可以对基本类型的值和一个空字符串进行连接。

    如果希望把上图中箭头右边的类型转换为左边的类型,则必须使用强制类型转换。Java 中强制类型转换的语法格式如下所示。

    (targetType)value
    
    public class QiangZhi {
        public static void main(String[] args) {
            int iValue = 233; // 定义 int 型变量 iValue 的初始值是 233
            // 强制把一个 int 类型的值转换为 byte 型
            byte bValue = (byte) iValue;
            // 将输出-23
            System.out.println(bValue);
            double dValue = 3.98;
            // 强制把一个 double 类型的值转换为 int 型
            int toI = (int) dValue;
            // 将输出 3
            System.out.println(toI);
        }
    }
    

    在上述代码中,当把一个浮点数强制类型转换为一个整数时,Java 将直接截断浮点数的小数部分。除此之外,上面的程序还把 233 强制类型转换为 byte 型整数,从而变成 −23,这就是典型的溢出。

  • 相关阅读:
    jmeter压力测试报错:java.net.BindException: Address already in use: connect
    C# 对话框总结(转载)
    C# 文件操作方法大全(转载)
    C#实现进度条progress control(转载)
    在Windows下架设FTP服务器
    .Net环境下,使用installutil.exe注册、删除windows服务
    用双网卡实现跨网段访问(转载)
    HTTP协议详解(转载)
    学习开发web服务(转载)
    C# 实现http协议的GET和POST请求(转载)
  • 原文地址:https://www.cnblogs.com/sakura579/p/13844186.html
Copyright © 2011-2022 走看看