请写出JAVA弹栈压栈的步骤, 栈的存储方式
一.栈的作用
- 局部变量
- 堆中对象的引用(对象在堆内存中的地址)
- 全局变量存储在堆中
- 局部变量存储在栈中
- 栈的创建方式
- 每条线程都有一个独立的栈,在线程创建时创建
二.栈的操作
public class SQ {
//先规定栈的最大容量
Object[] objs ;
//获取当前栈容量
int size;
public SQ(int MaxLen){
this.objs = new Object[MaxLen];
}
//进行压栈操作(就是在栈中存入内容)
public void push(Object x){
System.out.println("压栈操作,压入内容为"+( objs[size++] = x)); //先给当前指针位置赋值,然后指针变大
}
//弹栈操作
public void popu() {
System.out.println("弹出栈顶内容:"+objs[size-1]);//获取栈顶数据,然后弹出栈中,栈容量减少
size--;
}
//获取栈内所有数据
public void getAllStack() {
System.out.println("栈顶到栈底所有数据为");
for (int i = size-1; i >= 0; i--) {
System.out.println(objs[i]+" ");
}
}
public static void main(String[] args) {
SQ s = new SQ(20);
s.push(1);
s.push(2);
s.push(3);
s.push(4);
s.getAllStack();
s.popu();
s.popu();
s.getAllStack();
}
}
output:
压栈操作,压入内容为1
压栈操作,压入内容为2
压栈操作,压入内容为3
压栈操作,压入内容为4
栈顶到栈底所有数据为
4
3
2
1
弹出栈顶内容:4
弹出栈顶内容:3
栈顶到栈底所有数据为
2
1
三.栈和栈帧
- java栈以帧为单位来保存线程的状态
- jvm对java栈只进行两种操作
- ----以帧为单位的压栈和弹栈
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">
请写出JAVA弹栈压栈的步骤, 栈的存储方式的更多相关文章
- 【Java面试题】30 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。
题目如下: 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50次 思路如下: 子线程语主线程为互斥,可用SYNCHRONIZED.很容易想 ...
- 请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框。程序可以判断出用
请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框.程序可以判断出用 户点击的是“确认”还是“取消”. 解答: <HTML> <HEAD> <TI ...
- 请写出正则表达式(regex),取得下列黄色部分的字符串 TEL: 02-236-9655/9659 FAX:02-236-9654 (黄色部分即02-236-9655/9659 ) ( 测试面试题)
请写出正则表达式(regex),取得下列黄色部分的字符串 TEL: 02-236-9655/9659 FAX:02-236-9654 答: package test1; import java.uti ...
- 如果有三个Bool型变量,请写出一程序得知其中有2个以上变量的值是true
下面这篇文章是从StackOverflow来的.LZ面试的时候遇到了一道面试题:“如果有三个Bool型变量,请写出一程序得知其中有2个以上变量的值是true”,于是LZ做了下面的这样的程序: bool ...
- 请写出5种常见到的runtime exception。
请写出5种常见到的runtime exception. 解答: NullPointerException:当操作一个空引用时会出现此错误. NumberFormatException:数据格式转换出现 ...
- 请写出JavaScript中常用的三种事件。
请写出JavaScript中常用的三种事件. 解答: onclick,onblur,onChange
- 请写出一个超链接,点击链接后可以向zhangsan@d-heaven.com发送电子邮件。
请写出一个超链接,点击链接后可以向zhangsan@d-heaven.com发送电子邮件. <a href=”mailto: zhangsan@d-heaven.com”>发邮件</ ...
- 请写出一段表单提交的HTML代码,表单名称为form1,提交方式为post,提交地址为submit.asp
请写出一段表单提交的HTML代码,表单名称为form1,提交方式为post,提交地址为submit.asp 解答: <form name=”form1” method=”post” action ...
- 假设高度已知,请写出三栏布局,其中左栏、右栏各为300px,中间自适应的五种方法
假设高度已知,请写出三栏布局,其中左栏.右栏各为300px,中间自适应的五种方法 HTML CSS 页面布局 题目:假设高度已知,请写出三栏布局,其中左栏.右栏各为300px,中间自适应 <!D ...
随机推荐
- DuiLib笔记之自定义标题栏以及响应按钮点击事件
在博文DuiLib笔记,基于WindowImplBase的基础模板的基础上,修改皮肤文件如下 <?xml version="1.0" encoding="utf-8 ...
- (转)windows下一分钟配置ngnix实现HLS m3u8点播
一.首先保证nginx能正常运行: 这个就是因为前面我们把nginx的目录加到了Path中,然而nginx启动时各种路径都是以当前工作目录为起始点的,这就导致了系统去“C:\User ...
- 对xml文件的sax解析(增删改查)之二
先上代码: package com.saxparsetest; //the filename of this file is :saxparse.java import javax.xml.parse ...
- 旋转屏幕导致Activity重建
简单来说,Activity是负责与用户交互的最主要机制,任何“设置”(Configuration)的改变都可能对Activity的界面造成影响,这时系统会销毁并重建Activity以便反映新的Conf ...
- hdu Integer Inquiry 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1047 题目意思:就是求大整数加法.有多个案例,每个案例之间要输出一个空格. #include < ...
- java-线程(一)
1.进程与线程的区别 多个进程的内部数据和状态都是完全独立的,而多个线程是共享一块内存空间和一组系统资源,有可能互相影响.多线程程序比多进程程序需要更少的管理费用.进程是重量级的任务,需要分配他们的单 ...
- mysql优化20条原则
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...
- numpy.argmax 用在求解混淆矩阵用
numpy.argmax numpy.argmax(a, axis=None, out=None)[source] Returns the indices of the maximum values ...
- 通过 :hover 伪元素控制其他元素
---代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...
- Nginx基本配置和作用
nginx可以重新加载文件的.我们直接运行:nginx -s reload 配置文件有没有问题,可以直接输入:nginx -t nginx -s stop就可以关闭 但有时我们就不想它挂的时候访问另外 ...