欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java 基本数据类型,

来源: javaer 分享于  点击 40796 次 点评:255

Java 基本数据类型,


Java中总共有八种基本的数据类型:

整形(4种):

byte(1)

short(2)

int(4)

long(8)

字符型

char(2)、

浮点型(2种):float(4)、double(8)

布尔类型:    boolean

备注:不能转化为其他任何类型

每种基本类型都有其对应的包装类。

备注:

  • 自动类型转换

自动类型转换 :低级变量可以直接转换为高级变量,转换规则为:

byte→short(char)→int→long→float→double
1
例如,下面的语句可以编译通过:

byte b;
int i=b;
long l=b;
float f=b;
double d=b;


但是将double型变量赋值给float变量,不加强转的话会报错。

  •  自动装箱和自动拆箱

简单的说,装箱就是就是将基本数据类型转换为包装器类型;拆箱就是将包装器类型转换为基本数据类型。

例如:

Integer i = 10;  //装箱
int n = i;   //拆箱
1
2
注意事项:

对于Integer而言,如果数值在[-128,127]之间,便返回指向IntegerCache.cache中已经存在的对象的引用;否则创建一个新的Integer对象。例如:

public class Main {
    public static void main(String[] args) {         
        Integer i1 = 100;
        Integer i2 = 100;
        Integer i3 = 200;
        Integer i4 = 200;
        System.out.println(i1==i2);
        System.out.println(i3==i4);
    }
}


输出的结果就为:

true
false
1
2
Integer i = new Integer(xxx)和Integer i =xxx;这两种方式的区别。

第一种方式不会触发自动装箱的过程;而第二种方式会触发;
在执行效率和资源占用上的区别。第二种方式的执行效率和资源占用在一般性情况下要优于第一种情况(注意这并不是绝对的)。
当 **==**运算符的两个操作数都是包装器类型的引用,则是比较指向的是否是同一个对象,而如果其中有一个操作数是表达式(即包含算术运算)则比较的是数值(即会触发自动拆箱的过程);另外,对于包装器类型,equals方法并不会进行类型转换。例如:

public class Main {
    public static void main(String[] args) {        
        Integer a = 1;
        Integer b = 2;
        Integer c = 3;
        Integer d = 3;
        Integer e = 320;
        Integer f = 320;
        Long g = 3L;
        Long h = 2L;
        // 因为c、d都是包装类型,所以返回true
        System.out.println(c==d);
        // 因为e、f都大于128,属于不同的对象,所以返回false
        System.out.println(e==f);
        // 因为含有算数运算符,所以比较的数值,返回true
        System.out.println(c==(a+b));
        // 因为equals不会类型转换,所以比较的是类型,返回true
        System.out.println(c.equals(a+b));
        // 比较数值,所以返回true
        System.out.println(g==(a+b));
        // 因为equals不会类型转换,a、b为Integer,所以返回false
        System.out.println(g.equals(a+b));
        // a向上转型为Long,所以返回true
        System.out.println(g.equals(a+h));
    }
}

 

  •  int 和 和 Integer 区别

Integer是int的包装类;int是基本数据类型;
Integer变量必须实例化后才能使用;int变量不需要;
Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ;
Integer的默认值是null;int的默认值是0。
 

相关文章

    暂无相关文章
相关栏目:

用户点评