java中 Integer 是一个对象吗?

请看下面例子
————————————————————————
public class IntegerDemo {
public static void main(String args[]) {
String a="123";
int i=Integer.parseInt(a);
i++;
System.out.println(i);
}
}
——————————————————
第四行中 为什么不是int i=new Integer.parseInt(a); 呢? Integer如果是一个类,为什么没有实现 就可调用呢?

首先,此处用到的Integer类,是java中的一个包装类型,java中的数据类型包括。
基础类型:byte/char/short/int/long/float/double/boolean
包装类型有:Byte/Character/Short/Integer/Long/Float/Double/Boolean
第二,此处为什么可以直接用类名直接调用方法,而没有创建对象是由于Integer中的.parseInt方法为静态的方法(用static关键字修饰的方法),静态方法是可以用类名直接调用的,
最后,为什么静态变量就可以不用创建对象用类名直接调用呢,这涉及到java的内存中怎样处理静态变量和实例普通的的对象,1、静态变量(方法)(static修饰的):在程序加载时系统就为它在堆中开辟了内存,堆中的内存地址存放于栈以便于高速访问。静态变量的生命周期--一直持续到整个"系统"关闭。即你可以直接用用静态变量(static修饰的变量) 2、实例变量(方法):当你使用java关键字new的时候,系统在堆中开辟并不一定是连续的空间分配给变量。即只有通过new创建实例后才能调用的方法、变量。 有时间可以看一下java的内存机制相关的部分,对于java内存机制的了解可以更好的理解这部分内容。
以上,学习快乐!
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
Integer是一个类 为什么他能直接调用? 在一个类里边的静态方法不用new一个对象就可以直接调用 因此这个方法应该是一个静态方法本回答被提问者采纳
第2个回答  2012-05-17
parsInt()是Integer类中的一个静态方法,所以不用实例化
第3个回答  2012-05-17
Interger的parseInt方法是一个public的静态(static)方向,所以可以直接调用.追问

是不是说,Interger类中的另外一个非静态方法,就不可以这样写了?

追答

没有static关键字修饰的就需要new出对象,才能调用.

第4个回答  推荐于2016-02-14


int 是基本数据类型
Integer是其包装类,注意是一个类。实例化后就是对象。
相似回答