Integer和int的区别,包装类,基本数据类型,区别
int 是基本数据类型。
Integer是其包装类,注意是一个类。
https://zhidao.baidu.com/question/322364721.html
----
包装类,和数据类型,使用上,有什么区别?下面举个例子:
int test0;
TestBean test2;//TestBean是我自定义的类 test2.getName();//报错The local variable aa may not have been initialized
Integer test1; test1.byteValue();//报错The local variable aa may not have been initialized
1基本数据类型,不是类,即不是对象,即不能进行new这样来创建对象。所以其也就不能使用"对象.function()",其也就少了好多处理函数,很不方便。因此才有了封装类,没有封装类,好多数据都不能处理,很不方便。
比如我现在要用泛型 |
2类的对象必须初始化,即new才可以访问成员函数,否则访问成员函数报错。而基本数据类型,不是类,不能new,否则报错。
int bb=new int();//Syntax error on token "int", invalid ClassType
Integer test1;
test1.byteValue();//报错The local variable aa may not have been initialized
----
这里就牵扯出来另几个问题,①java基本数据类型有哪些?
http://www.cnblogs.com/simplefrog/archive/2012/07/15/2592011.html
②String是不是基本数据类型?
不是。因为基本数据类型不能new,更不可能有“对象.function”这种用法。
String test = new String();//编译通过,不报错
----------在此总结,java的变量,有几种类型?
1基本数据类型,int、float等8种。不用new,new会报错。
2Class,即类。可以使用Test test=new Test();这种“对称”初始化的方式,进行new。
3Interface,即接口。不可以使用Test test=new Test();这种“对称”初始化的方式,进行new。会报错。
必须非对称,要用接口的实现类,给接口new。
5数组。其new的方式也比较特殊,有如下三种,
所以,综上所述,是根据什么区分各种变量的类型的?是new的方式。
其实,我们发现,class、interface、数组这三者都要new,因此可以将interface、数组当成特殊的class看待,因此三者都可以当成是class。