「javanew栈」java写栈
今天给各位分享javanew栈的知识,其中也会对java写栈进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java的方法中new的对象存储在内存中那个区域
- 2、java new基本类型对象,是放在堆中还是栈中
- 3、java如何自定义栈?
- 4、java中new一个对象,请帮我分析下堆栈。以下两个例子麻烦网友帮我解释下
- 5、java 中 new Stack 默认初始栈是多少个呢
java的方法中new的对象存储在内存中那个区域
这个对象存在堆中,还是栈中?
答:堆,new一个对象,一定是在堆中
方法内部new出来的对象,在哪里存着?
答:堆,new出来对象的实例变量都存在堆上面。
栈,这个东西,需要理解为:线程运行时,才会创建,执行完,就没了。
Person p = new Person();
上面这段代码,在执行时,p压入栈,通过局部变量表,找到对应的【实例数据】,执行完毕后释放。
java new基本类型对象,是放在堆中还是栈中
java中new 出来的对象都存在堆内存中,指向对象的变量存在于栈中,new对象的常量在方法区,如下面例子:
Integer inte = new Integer(10);
java如何自定义栈?
public class Stack{
int[] data;
int maxSize;
int top;
public Stack(int maxSize) {
this.maxSize=maxSize;
data=new int[maxSize];
top=-1;
}
//入栈
public boolean push(int data) {
//入栈先判断栈中是否已满
if(top+1==maxSize) {
System.out.println("栈已满");
return false;
}
this.data[++top]=data;
return true;
}
//出栈
public int pop() throws Exception{
//出栈先判断栈是否已空
if(top==-1) {
throw new Exception("栈已空");
}
return this.data[top--];
}
public static void main(String[] args) throws Exception {
Stack stack=new Stack(1000);
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
while(stack.top=0) {
System.out.println(stack.pop());
}
}
}
java中new一个对象,请帮我分析下堆栈。以下两个例子麻烦网友帮我解释下
A a作为引用是放在栈中的,而new的对象是放在堆中的,字面常量放在常量池中。 基本类型是放在栈中的。
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.
2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)
3. 堆:存放所有new出来的对象。
4. 静态域:存放静态成员(static定义的)
5. 常量池:存放字符串常量和基本类型常量(public static final)。
6. 非RAM存储:硬盘等永久存储空间
java 中 new Stack 默认初始栈是多少个呢
如果是java.util.Stack的话,通过查看源码,Stack只有一个空构造方法,它继承了Vector。
Vector中的无参构造如下:
public Vector() {
this(10);
}
this(10)调用了
public Vector(int initialCapacity) {
this(initialCapacity, 0);
}
查看注释,
/**
* Constructs an empty vector with the specified initial capacity and
* with its capacity increment equal to zero.
*
* @param initialCapacity the initial capacity of the vector
* @throws IllegalArgumentException if the specified initial capacity
* is negative
*/
所以,你看到了,默认是10个,如果超过十个的时候,就会调用Vector类中别的方法扩容。
java.util.Stack是基于Vector实现的,它只提供了简单的pop,push等操作。
关于javanew栈和java写栈的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-22,除非注明,否则均为
原创文章,转载请注明出处。