Integer和int的区别,包装类,基本数据类型,区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Ideality_hunter/article/details/72637799
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()",其也就少了好多处理函数,很不方便。因此才有了封装类,没有封装类,好多数据都不能处理,很不方便。

比如我现在要用泛型
List<Integer> nums;
这里<>需要类。如果你用int。它会报错的,因为int是基本数据类型,不是类

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。

展开阅读全文
博主设置当前文章不允许评论。

没有更多推荐了,返回首页