java中的对象类型与基本数据类型的区别?

2024-11-15 18:11:16
推荐回答(2个)
回答1:

ava.lang.Integer是一个类.对它的操作要通过类的方法
int是JAVA缺省的8中基本数据类型之一.不是类的对象.
int是基本数据类型,Integer是对int进行了封装的一个类。
声明为int的变量不需要实例化,声明为Interger的变量需要实例化
int是基本类型,Integer是包装类,也就是类。
Integer 是比int 更高级的 数据类型 为什么java中使用int 而不像vb中那样使用Integer
int是面向机器底层的数值类型,是Primitive类型的数据类型,而Integer是int的Warpper类,是面向对象的即OOP的对象类型。int 一般只用在数值计算中,而Integer是用在Java的其它要使用对象的地方,比如Map的Key与Value,List与Set的Element若要保存数值信息都要把int包装成Integer对象使用。
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型 封装类
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
int 一般做为数值参数就够了
integer 一般做类型转换的时候用的较多

至于大小问题,一个是值,一个是对象,你感觉怎么比较大小?

回答2:

基本数据类型在栈中进行分配,而对象类型在堆中进行分配。
所有方法的参数都是在传递引用而非本身的值(基本类型例外)。

对象之间的赋值只是传递引用,基本类型之间的赋值是创建新的拷贝。
例如: String a = "china";
String b =a; 则a、b都指向常量池的"china"。
String a = new String("china");
String b =a; 则a、b都指向堆中的"china"。
String a = new String("china");
String b =a;

a = a.substring(0,1);
则b指向栈中的"china",a指向新的对象"c"。

对于基本类型,“==”和“!=”是在比较值。而对于对象来说,“==”和“!=”是在比较两个引用是否相同。

使用equals()方法有一点需要注意:equals()方法的默认行为是比较引用。如果是你自己写的类,你应该为它重写equals()来比较对象的内容。大多数Java类库都实现了比较对象内容的equals()方法。
字符串操作符的特性:如果表达式以一个字符串起头,那么后面的操作数都会被自动转换为字符串型。所以有时候看到一个空的String后面+一个基本类型变量,这是一种简单执行字符串转换的方式。