精华内容
下载资源
问答
  • 自动类型转换

    万次阅读 多人点赞 2019-02-01 19:51:57
    (一)自动类型转换  在java 程序中,不同的基本类型的值经常需要进行相互类型转换,类型转换分为自动类型转换和强制类型转换。布尔类型boolean占有一个字节,由于其本身所代码的特殊含义,boolean类型与其他基本...

    (一)自动类型转换

         在java 程序中,不同的基本类型的值经常需要进行相互类型转换,类型转换分为自动类型转换和强制类型转换。布尔类型boolean占有一个字节,由于其本身所代码的特殊含义,boolean类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错。

        java的所有数值型变量可以进行相互转换,如果系统支持把某种基本类型的值直接赋值给另一种基本类型的变量,则这种方式成为自动类型转换。

         当把一个表数范围较小的数值或变量直接赋给另外一个表数范围比较大的变量时,系统将可以自动类型转换,否则需要强制转换。

        图中箭头左边的数值可以自动转换为右边的数值。

           (2)byte型可以转换为short、int、、long、float和double; 
      (3)short可转换为int、long、float和double; 
      (4)char可转换为int、long、float和double; 
      (5)int可转换为long、float和double; 
      (6)long可转换为float和double; 
      (7)float可转换为double; 

     

    (二)基本类型转换为字符串

    不仅如此,把任何基本类型的值和字符串进行连接运算时,基本类型的值将自动转换成为字符串类型,虽然字符串类型不是基本类型,而是引用类型。因此,如果想将基本类型的值转换为对应的字符串,可以把基本类型的值和一个空字符串进行连接。

     

       (三)强制类型转换

         强制类型转换,即强制显示的把一个数据类型转换为另外一种数据类型。

        如果希望图中箭头右边的类型转换为左边的类型,则必须进行强制类型转换,强制类型转换的格式:

      (targetValuevalue

        强制类型转换的运算符是圆括号,当进行强制类型转换的时候,类似把一个大瓶里的水倒入一个小瓶子,如果大瓶子里的水不多还好,如果大瓶子了的水很多,将会引起溢出,从而造成数据丢失这种转换也被称为缩小转换。

    (四)表达式的自动提升

       当一个算数表达式中包含多个基本类型的值的时候 ,整个算数表达式的数据类型将发生自动提升。java定义了如下的自动提升规则:     1 所有的byte类型,short类型和char类型将被提升到int类型。     2 整个算数表达式的数据类型自动提升到与表达式中最高等级操作数同样的类

    (五)总结

    1    java中整数类型默认是int类型,小数类型默认是double类型。

    2    char可以当做一种特殊的整数类型

    3    int无法转换为boolean

    4    小数类型转为整数类型,小数可能被舍弃,出现精度损失,所以需要强制转换。

    5    boolean 类型不能转换为其它数据类型。

     

     

    展开全文
  • 基本数据类型转换 自动类型转换 强制类型转换

    基本数据类型转换

    自动类型转换



    强制类型转换

     


     

    展开全文
  • //自动类型转换 //float大于long和double /*当表达式为:float A = 2; 这个时候,满足了数据类型从小到大变化的特点,于是便发生了自动类型转换(隐式)*/ //强制类型转换 /*如果数据从表示范围大的类型向表示范围...
    package com.company;
    //自动类型转换
    //float大于long和double
    /*当表达式为:float A = 2; 这个时候,满足了数据类型从小到大变化的特点,于是便发生了自动类型转换(隐式)*/
    
    //强制类型转换
    /*如果数据从表示范围大的类型向表示范围小的类型转变,那么需要使用强制类型转换*/
    
    /*
    注意事项
    1、强制类型转换一般不推荐使用,可能产生精度损失、数据溢出
    2、byte/short/char这三种类型都可以发生数学运算,例如加法“+”
    3、byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型再运算
    4、boolean类型不能发生数据类型转换
     */
    
    public class Main {
    
        public static void main(String[] args) {
    	// write your code here
            //自动类型转换
            long num1 = 100;//左边为长整型,右边默认为整型,左边范围大于右边,发生自动类型转换
            System.out.println(num1);
    
            //强制类型转换
            int num2 = (int)100L;
            System.out.println(num2);
        }
    }
    
    
    展开全文
  • 一、 自动类型转换(隐式类型转换) 整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。 自动转换从低级到高级。 自动转换有以下规律: 1、小的类型自动转化为...

    一、 自动类型转换(隐式类型转换)

    • 整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

    自动转换从低级到高级。

    在这里插入图片描述

    自动转换有以下规律:

    1、小的类型自动转化为大的类型
    2、整数类型可以自动转化为浮点类型,可能会产生舍入误差
    3、字符可以自动提升为整数

    示例代码:
    隐式类型转换

        int i = 128;
        double b = i;//128.0
    
    

    在这里插入图片描述

    整数类型可以自动转化为浮点类型,可能会产生舍入误差

    • Float和Double提供了快速的运算,然而问题在于转换为二进制的时候,有些数字不能完全转换,只能无限接近于原本的值
            float floatValue1=2+10f;
    		float floatValue2=floatValue1-11.9f;
    		System.out.println(floatValue2);//0.10000038
    
    

    在这里插入图片描述
    字符可以自动提升为整数

            char Value1 ='a';
    		int Value2=Value1+10;
    		System.out.println(Value2);//107
    
    

    在这里插入图片描述

    二、 强制类型转换(显式类型转换)

    强制转换格式:(类型)变量名

    • 强制类型转换,在要强制类型转换的前面加上括号,然后在括号里面加上你要转换的类型

    (强制转换需要程序员手动处理)
    注意点:
    1、强制类型转换可能导致溢出或损失精度
    2、在把容量大的类型转换为容量小的类型时必须使用强制类型转换
    3、浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
    4、不能对布尔值进行转换
    5、不能把对象类型转换为不相干的类型

    示例代码:导致溢出(1)
    容量大类型转容量小类型

    • 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
    • 溢出: 数据类型超过了计算机字长的界限而出现的数据溢出。
              int i = 128;
              byte b = (byte)i;//-128  内存溢出
            // 00000000 00000000 00000000 10000000 128的原码
    		// 00000000 00000000 00000000 10000000 128的反码
    		// 00000000 00000000 00000000 10000000 128的补码
    		// 10000000 的补码
    		// 11111111 反码
    		// 10000000
            /**
    		* 关于 原码,反码,补码的知识(了解)
    		* 正数的反码,补码是其本身;
    		* 负数的反码是符号位保持不变,其余位取反;负数的补码是在其反码的基础上+1
        	*/
    

    1、为什么会是负的呢?
    2、byte 最大值是 127,这里给了它128,所以它超出了最大值,数据类型超过了计算机字长的界限而出现的数据溢出
    在这里插入图片描述
    示例代码:导致溢出(2)

    package com.gr.demo;
    public class demo4 {
    	public static void main(String[] args) {
    		//操作比较大的数的时候,注意溢出问题
    		//JDK7新特性,数字之间可以用下划线分割
    		int money = 10_0000_0000;
    		int years = 20;
    		int tota1 = money*years;//-1474836480 计算的时候溢出了
    		System.out.println(tota1);//-1474836480
    		long tota2 = money*years;//默认是int,转换之前已经存在问题了?
    		long tota13 = money*((long)years);//先把一个数转换为Long 在计算之前就把精度解决掉了
    		System.out.println(tota13);//20000000000
    	}
    }
    
    

    在这里插入图片描述
    示例代码:损失精度

    • int是要强制类型转换后的数据类型
    • 浮点数转换整数是通过舍弃小数得到的,而不是四舍五入
    System.out.println((int)23.7);//23 舍弃小数
    System.out.println((int)-45.89f);//-45 舍弃小数
    

    在这里插入图片描述

    示例代码:字符强制转换成数字

    char c1 = 'a';
    		 char c2 = '中';
    		 
    		 System.out.println(c1);//a
    		 System.out.println((int)c1);//97 强制转换
    		 
    		 System.out.println(c2);//中
    	System.out.println((int)c2);//20013 强制转换
    
    • 注意:所有的字符本质还是数字
    • Char类型 会涉及到Unicode编码问题 上面的小写a就代表着97,大写的A代表着65。
      在这里插入图片描述
      ASCLL编码表片段,这个不是很详细,大家可以大概看看:
      在这里插入图片描述
    展开全文
  • 一、自动类型转换规则(类型兼容) 1.规则1: 如果一个操作数为double型,则整个表达式可提升为double型 2.规则2 满足自动类型转换的条件: ①两种类型要兼容:数值类型(整型和浮点型)互相兼容 ②目标类型大于源...
  • 自动类型转换规则: 规则1:如果一个操作数为double型,则整个表达式可提升为double型。 规则2:满足自动类型转换的条件。 两种类型要兼容:数值类型(整形和浮点型)互相兼容; 目标类型大于源类型:例如:double...
  • 自动类型转换(默认转换) 把一个范围小的数值或变量直接赋值给另一个数据范围大的变量时,系统可以进行自动类型转换。 注意:不能将数据范围大的变量或数值赋值给范围小的变量,例如:int a = 25; byte b = a; 会...
  • 自动类型转换就是编译器默默地、隐式地、偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生。(1)将一种类型的数据赋值给另外一种类型的变量时就会发生自动类型转换,例如: float f = 100; 100 ...
  • JavaScript强制类型转换和自动类型转换 强制类型转换 JavaScript 支持使用以下函数进行强制类型转换。 Boolean(value):把参数值转换为布尔型值。 Number(value):把参数值转换为数字。 String(value):把参数值...
  • 自动类型转换和强制类型转换 标签(空格分隔): C 双学位高级语言程序设计 C算术运算和表达式 C语言中经常遇到不同数据类型在同一运算中转化的情况,这遵循下述规则。 long double > double > float > ...
  • Java中的自动类型转换 在 Java 程序中,不同的基本数据类型的数据之间经常需要进行相互转换。例如: , 代码中 int 型变量 score1 可以直接为 double 型变量 score2 完成赋值操作,运行结果为: ...
  • Java类型转换之自动类型转换和强制类型转换区别理解总结
  • Oralce 对不同的类型数据的处理有显式类型转换( Explicit )和自动类型转换( 隐式类型转换 )两种方式。 为什么不建议使用自动类型转换 显式类型转换会让SQL可读性更强,自动类型转换没有这个优点。 ALTER SESSION ...
  • 一:自动类型转换 自动类型转换注意针对Number数据类型来说的 当2个不同类型的数据进行运算的时候,默认向更高精度转换 数据类型精度从低到高:bool int float complex #关于bool类型的两个值:True转化成整型是1 ...
  • 1.自动类型转换 自动类型转换:指的是容量小的数据类型自动转换为容量大的数据类型。 常见数据类型的转换方式如下图所示: 值得注意的是: 蓝色虚线部分表示的是在转换时可能会有精度的损失。 boolean类型...
  • java自动类型转换

    2018-03-23 20:47:38
    java自动类型转换java转型范围,自动转型和强制转型1.自动类型转换 也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以 Java 语言在设计时,没有为该操作...
  • java自动类型转换与强制类型转换

    千次阅读 2018-02-03 16:41:40
    自动类型转换就是自发的进行,你可以从输出的结果看出,外表是看不出来的。我们知道数据类型有很多种,大小也不一样,就像水桶似的,有1升的,2升的,4升的,自动类型转换就相当于把小的水桶里面的水装到大的里面去...
  • Java:自动类型转换和强制类型转换的规则

    万次阅读 多人点赞 2017-07-27 19:27:48
    自动类型转换规则: 强制类型转换: 代码示例: package com.jredu.ch02; public class Ch04 { public static void main(String[]args){ //自动类型转换 //基本数据的自动类型转换只有7种...
  • java的自动类型转换和强制类型转换

    千次阅读 2015-05-18 19:08:46
    一、自动类型转换 在 Java 程序中,不同的基本数据类型的数据之间经常需要进行相互转换。例如: , 代码中 int 型变量 score1 可以直接为 double 型变量 score2 完成赋值操作,运行结果为: 82.0  ...
  • 自动类型转换与强制类型转换: /** * 自动类型转换与强制类型转换 */ public class Example { public static void main(String[] args) { byte b = 127; char c = 'W'; short s = 23561; int i = 3333; ...
  • JavaScript自动类型转换

    千次阅读 2018-03-12 14:50:06
    我们无法明确声明其类型,变量的类型根据其实际值来决定,而且在运行期间,我们可以随时改变这个变量的值和类型,另外,变量在运行期间参与运算时,在不同的运算环境中,也会进行相应的自动类型转换自动类型转换...
  • C++自动类型转换

    2017-11-30 21:35:45
    在C++中,如果编译器看到一个表达式或函数调用使用了一个不合适的类型,它会执行一个自动类型转换,将不合适的类型转换为合适的类型。对于自定义类,可以通过定义该类的构造函数的方法将其它类型转换为本自定义类;...
  • 自动类型转换

    千次阅读 2019-05-12 19:57:26
    MyBatis(自动类型转换器) 1.实体类(boolean) // 以dept表中的flag为例 public class Dept{ private Integer deptno; private boolean flag; } 2.表中字段(int) 3.开发并自定义转换器 import java.sql....
  • 目录 目录 类型判断 ...自动类型转换 目录导航 类型判断 typeof JS 中可以使用关键字 typeof 判断 demo typeof "hello" typeof true typeof 1 typeof 1.23 typeof [1,2,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,870
精华内容 9,548
关键字:

自动类型转换