请简述java中的自动类型转换的规则
    Java中的自动类型转换是指在程序中转换数据类型时,系统自动将一种类型的值转换为另一种类型的值,而无需程序员手动进行转换。自动类型转换规则包括以下几个方面:
    1. 基本数据类型之间的自动类型转换规则
    Java中的基本数据类型分为八种,分别是boolean、byte、short、int、long、float、double和char。其中boolean类型不参与自动类型转换。基本数据类型之间的自动类型转换规则如下:
    1.1 byte、short和char型数据之间可以互相转换
    byte、short和char型数据之间可以互相转换,但要注意char型数据与其它类型数据在运算时会被自动转换为int型数据进行运算。
    1.2 int型数据可以自动转换为long型、float型和double型数据
    int型数据可以自动转换为long型、float型和double型数据。其中,将int型数据转换为long型
数据时,可以使用long型变量存储,也可以使用L或l后缀表示long型数据的字面常量;将int型数据转换为float型数据时,需要使用f或F后缀表示float型数据的字面常量;将int型数据转换为double型数据时,可以使用double型变量存储,也可以使用d或D后缀表示double型数据的字面常量。
    Java中的引用数据类型包括类、接口、数组、枚举等,引用数据类型之间的自动类型转换规则如下:
    2.1 子类对象可以自动转换为父类对象
    子类对象可以自动转换为父类对象,但父类对象不能自动转换为子类对象,需要进行强制类型转换。
    2.2 同一类或接口或其实现类之间可以互相转换
    同一类或接口或其实现类之间可以互相转换。例如,String类型可以自动转换为Object类型。
    3.2 数组类型的自动类型转换只能发生在涉及到数组元素类型转换的场合
    数组类型的自动类型转换只能发生在涉及到数组元素类型转换的场合。例如,将一个Double类型的数组赋值给一个Object类型的数组时,需要进行元素类型转换,从而实现数组类型的自动类型转换。
    总之,Java中的自动类型转换是将一种数据类型自动转换为另一种数据类型的过程,它可以在一定程度上简化程序设计和开发工作,但也需要开发人员掌握其规则才能更好地使用。
java变量的数据类型分为两种