一个简单的java问题~

2024-11-29 04:30:10
推荐回答(5个)
回答1:

Integer a = new Integer(5);

a 存在栈内存
new 出来的都是存放在堆内存

java基本数据类型分配到栈上,对象数据分配到堆上:

Java虚拟机是栈式的,它不定义或使用寄存器来传递或接受参数,其目的是为了保证指令集的简洁性和实现时的高效性(特别是对于寄存器数目不多的处理器)。所有寄存器都是32位的。java虚拟机的栈有三个区域:局部变量区、运行环境区、操作数区。 基本数据类型的变量的内容直接存储在栈上。

引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。同时为了面向对象操作的一致性,这些基本类型都有相应的封装类型:Integer、Short、Long、Byte、Float、Double、Character等。 因为封装类型是对象,所以可以进行相应的很多对象能力函数操作,这样就可以提供很多基本类型难以完成的工作的完成和实现。

Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java语言具有无用单元收集能力:它不给程序员显式释放对象的能力。Java不规定具体使用的无用单元收集算法,可以根据系统的需求使用各种各样的算法。

回答2:

int a= new int(5)有语法错误.
int是基本数据类型,不是对象,只有对象才能new

回答3:

你这么写本身就是错误的

new 后面是对象, int在JAVA中不是对象!
new Integer(5)

int是基本数据类型,不是对象,它默认值为0,创建在栈中.
Integer是个对象,它有自己的方法,默认值为NULL,创建在堆中。

希望我的回答对你有所帮助

回答4:

写法就是错的

回答5:

int a=new int(5)
是对象才可以这样写
int 是基本数据类型
不是类,String才是类
Integer也是类