精华内容
下载资源
问答
  • 关于类型转换一般规律:小类型向大类型可以自动类型转换,而大类型向小类型转换,需要手动强制类型转换。注意:1.类型大小不是按字节大小区分,而是按照它范围来定,比如long long1 = 300F;//报错,编译...

    关于类型转换

    一般规律:小类型向大类型可以自动类型转换,而大类型向小类型转换,需要手动的强制类型转换。

    注意:

    1.类型的大小不是按字节大小区分的,而是按照它的范围来定的,比如

    long long1 = 300F;//报错,编译无法通过

    float float1 = 300L;//编译可以通过,并且可以正常运行

    long占八个字节,float占四个字节,但实际上float表示的范围要比long更大,(这主要是底层采用存储方式不同造成的)所以long类型的常量可以赋值给float类型的变量,而反过来却不行。

    2.这个规则也可以用在引用数据类型上,如果是引用类型,类型的大小则由他们的继承或实现关系来决定。

    关于自动java中编译器做的自动强制类型转换

    byte byte1 = 1;

    short short1 = 2;

    char char1 = 3;

    类似上面的代码,相信大家都写过,实际上,也能编译通过,并且正常运行。但是,如果作为初学者,不应该有疑惑吗?java中的整型常量是int类型的,将一个int类型的常量,赋值给byte、short或char类型的变量,却不会报错??不是小类型才可以进行自动类型转换转为大类型的吗?大类型的转小类型需要进行强制类型转换,并且可能会损失精度的。这里是为什么呢?

    其实是java中有一种机制:只要一个int类型的常量,在byte、short或char类型的范围之类的,就可以直接赋值给byte、short或char的变量,检查工作是java的编译器自动进行的。

    注意:

    1.只能是常量,不能是变量或变量参与运算的表达式。

    byte byte1 = 1;

    short short1 = 2;

    char char1 = 3;

    int int1 = 3;

    short short2 = byte1 + 1;//报错,编译无法通过

    short short3 = int1;//报错,编译无法通过

    short short4 = 3;//编译通过,并且可以正常运行

    因为java编译器只会自动检测字面常量是否超出了类型的范围,而不会对变量的值或有变量参与的运算结果进行检测。

    “short short2 = byte1 + 1;”在做运算的时候,会自动上升为int类型,然后编译器就会检测到结果是一个int类型的值,而前面的变量是一个short类型的。不是小类型转大类型,所以直接编译报错。

    “short short3 = int1;” 直接通过变量的类型就有问题,而不会通过上下文来判断值是否超出了范围。

    2.对于纯常量的表达式,也是可以的

    short short4 = 1 + 2;//编译通过,并且可以正常运行

    因为简单的常量表达式,java的编译器可以直接就运算出结果,然后再进一步检测是否超出了范围。

    3.这个机制只是针对int转byte、short或char

    float float1 = 3.14;//报错,编译无法通过

    对于其它的基本数据类型或引用数据类型,是没有这个机制的,只能使用文章开头说的一般规律。

    其它一些简单的测试,比如超出范围就会编译报错.

    展开全文
  • 自动类型转换

    2018-09-03 20:12:00
    变量的数据类型可以转换的转换的方法有两种, 一种是自动转换,一种是强制转换。自动转换自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以下规则:1.若参与运算量的类型不同,则...

    这方面的内容经常记了又忘,所以把它给贴上来。

    变量的数据类型是可以转换的。转换的方法有两种, 一种是自动转换,一种是强制转换。

    自动转换

    自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以下规则:

    1.若参与运算量的类型不同,则先转换成同一类型,然后进行运算。

    2.转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。

    3.所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。

    4.char型和short型参与运算时,必须先转换成int型。

    5.在赋值运算中,赋值号两边量的数据类型不同时, 赋值号右边量的类型将转换为左边量的类型。 如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度, 丢失的部分按四舍五入向前舍入。

    当参加算术或比较运算的两个操作数类型不统一时,将简单类型向复杂类型转换,
    char(short) -> int(long) -> float -> double

    转载于:https://www.cnblogs.com/zhlabcd/p/9580622.html

    展开全文
  • 数据类型的转换分为两种,第一种是自动类型转换(是隐式转换),第二种是强制数据类型转换,(是显示转换)。这次,小编先介绍的是,数据类型的自动转换。在自动类型数据转换中:第一,代码需要进行特殊处理,...

    各位小伙伴们大家好,这次,小编要介绍的是数据类型的转换,之前小编有提到过一些基本的数据类型。什么是数据类型转换呢?就是数据类型不一样的时候,将会发生一些数据类型的转换,比如可以将int型转换成long型。

    数据类型的转换分为两种,第一种是自动类型转换(是隐式转换),第二种是强制数据类型转换,(是显示转换)。这次,小编先介绍的是,数据类型的自动转换。

    在自动类型数据转换中:第一,代码不需要进行特殊处理,自动完成。

    第二,要遵循从小到大的原则,就是小的数据类型可以默认转换成大的数据类型。(数据类型与字节数不一定相关。)

    405163ca050b4d5afa007c36ca982890.png

    为了方便理解,小编在这里粘几行代码吧。

    package nj;

    public class Demo01DateType {

    public static void main(String[] args){

    System.out.println(100);//整数,没有指定关键字,默认为int类型。

    System.out.println(1.12);//浮点数,没有指定关键字,默认为double类型。

    数据类型的自动转换1,从int型到long型

    //左边是long类型,右边是默认的int类型,左右不一样

    //一个等号代表赋值,将右侧的int常量,交给左侧的long变量进行存储。

    //int-->long遵循了从小到大的原则。

    long num1=100;

    //自动类型转换

    System.out.println(num1);

    数据类型的自动转换2,从float到double

    //左double右float两边数据类型不一样。

    //float到double符合从小到大的原则。

    double num2=2.5F;//自动类型转换

    System.out.println(num2);

    数据类型的自动转换3,从long到double

    //左边是float类型,右边是long

    //左边是double,右边是long

    //long-->double符合从小到大的原则

    double num3=30L;//自动类型转换

    System.out.println(num3);

    }

    }

    关于数据类型的自动转换,小编就先说说到这里,小伙伴们要记住,数据类型的自动转换需要符合从小到达的原则哦。希望这篇文章可以帮到大家,也欢迎各位小伙伴补充和纠错。

    展开全文
  • Java中的自动类型转换

    2020-06-13 10:51:45
    当然自动类型转换是需要满足特定条件: 1. 目标类型能与源类型兼容,如 double 型兼容 int 型,但是 char 型能兼容 int 型 2. 目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节,...

    在 Java 程序中,不同的基本数据类型的数据之间经常需要进行相互转换。例如:

    代码中 int 型变量 score1 可以直接为 double 型变量 score2 完成赋值操作,运行结果为: 82.0 

    这种转换称为自动类型转换

    当然自动类型转换是需要满足特定的条件的:

    1.  目标类型能与源类型兼容,如 double 型兼容 int 型,但是 char 型不能兼容 int 型

    2.  目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节,因此 double 类型的变量里直接可以存放 int 类型的数据,但反过来就不可以了

     

    展开全文
  • 一般规律:小类型向大类型可以自动类型转换,而大类型向小类型转换,需要手动强制类型转换。 注意: 1.类型大小不是按字节大小区分,而是按照它范围来定,比如 long long1 = 300F;//报错,编译无法通过 ...
  • 自动类型转换: 在 Java 程序中,不同基本数据类型数据之间经常需要进行相互转换。...当然自动类型转换是需要满足特定条件: 1. 目标类型能与源类型兼容,如 double 型兼容 int 型,但是 char 型...
  • java自动类型转换与强制类型转换

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

    2020-01-29 19:35:33
    自动类型转换的是容量小的数据类型可以自动转换为容量大的数据类型。红色的实线表示无数据丢失的自动类型转换,而虚线表示在转换时可能会有精度的损失。 红色实线是没有精度损失的转换,蓝虚线是有精度损失的 ...
  • php之数据类型自动转换,php之数据类型转换1:概述 ---php是一种弱类型语言,它可以根据运行环境变化而自动进行数据类型转换1.1转换成布尔类型原则以下值都将转换成布尔类型中false:A.布尔类型false;B.空...
  • java中要求参与运算数据,必修要保证数据一致性,如果数据类型一致将发生强制类型转换。 数据类型转换有两种方式 自动转换(自动完成),代码需要进行特殊处理,自动转换过来,从小范围到大范围进行转换...
  • 原标题:Python中如何进行数据类型转换?这一次要讲的是Python中的数据类型转换,Python中的数据类型转换是什么?就是将数据由当前类型变化为其他...1.自动类型转换不需要人工干预2.自动类型转换大多发生在运算或者...
  • 自动类型转换: ...在上图中黑色实线表示无数据丢失的自动类型转换,红色虚线则表示在转换时可能会丢失精度 强制类型转换: 又被称为造型,用于显示转换一个数值类型。在有可能丢失信息情况下进...
  • 数据类型转换可以分为隐式转换(自动类型转换)和显式转换(强制类型转换)两种。 整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型数据先转化为同一类型,然后进行运算。 转换从低级到高级。 低 ...
  • c++重载自动类型转换

    2018-06-21 19:48:37
    所谓重载自动类型转换,就是用户自己定义类自动转换方式。。。。、 我越来越懒了,直接贴代码吧。 operator type(){ //type为 `转换到类型` //需要指定返回值类型,因为返回肯定是 `要转换到类型` } ...
  • 1.自动转换 C++语言不自动转换兼容类型,例如,下面语句: int *p = 10; 是非法,因为左边是指针类型,而...C++程序员可以指示C++如何自动进行转换,或通过强制类型转换来完成。在C++中,接受一个参数构造
  • 由java继承和向上转型,子类可以很自然地转换为父类对象,即父类类型可以直接引用子类对象,但是子类类型不能直接引用父类对象,需要进行强制转换。子类比父类拥有更多属性和更强功能,这个时候我们使用功能较...
  • java小类型可以自动往大类型进行转换,但大类型自动往小类型转换,这是为了防止丢失精度,如果非要转换,可以进行强转(将类型如int用一对括号括起来就好了),强转后果就是丢失精度。不过如果定义一个数据,...
  •  自动类型转换就是自发的进行,你可以从输出结果看出,外表是看出来。我们知道数据类型有很多种,大小也一样,就像水桶似,有1升,2升,4升自动类型转换就相当于把小水桶里面水装到大里面...
  • java运算符与自动类型转换

    千次阅读 2017-07-09 10:54:16
    自动类型转换,就是一个类型直接可以赋值给另外一个类型,而需要强制进行转换。 1)精度小向精度大转换(精度丢失) 2)字节短向字节长转换 3)char和int可以互换,char是用ASCII码表示 byte->(int=char)->...
  • package ch02;public class TypeCase { /*这个程序目的是为了让初学者明白什么呢? * 为了让他明白在Java中数据类型是可以通过运算来进行变量... * 反之则需要进行强制性类型转换,而自动转换*/ public
  • JavaScript可以自由的进行数据类型转换,也提供了多种显式转换的方式。但是更多的情况下,是由JavaScript自动转换的,当然这些转换遵循着一定的规则,了解数据类型自由转换的规则是非常必要的。再次翻阅犀牛书后有了...
  • 数据类型转换将数据由当前类型变化为其他...1.自动类型转换不需要人工干预2.自动类型转换大多发生在运算或者判断过程中3.转换时向着更加精确类型转换intvar = 15floatvar = 5.5#运算时 整数15转化成了浮点数15....
  • = )也会自动类型转换,例如下面代码中语句 newp[j] != (index & 0xFF) , newp[j]会自动转换为int类型,还会进行符合扩展,使得本来期望是相等结果相等。语句 newp[j] != (char)(index & 0xFF) 进行了...
  • java类型转换与强制类型转换(转)[@more@]如果你以前有编程经验,那么...然而,不是所有类型都是兼容,因此,不是所有的类型转换都是可以隐式实现。例如,没有将double 型转换为byte 型定义。幸好,获得兼...
  • 在赋值运算或算术运算时,要求数据类型相同,否则就要进行类型转换。...1.自动类型转换自动类型转换(隐式类型转换)指的是容量小的数据类型可以自动转换为容量大的数据类型。由低字节向高字节的转换 byte->short-...
  • 例如:, 代码中 int 型变量 score1 可以直接为 double 型变量 score2 完成赋值操作,运行结果为: 82.0 这种转换称为自动类型转换。当然自动类型转换是需要满足特定条件:1. 目标类型能与源类型兼容,如 ...
  • 类型转换

    2018-12-29 09:14:23
    自动类型转换的是容量小的数据类型可以自动转换为容量大的数据类型。实线表示无数据丢失的自动类型转换,而虚线表示在转换时可能会有精度的损失 可以将整型常量直接赋值给byte、 short、 char等类型变量,而...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,045
精华内容 818
关键字:

不可以进行自动类型转换的是