zoukankan      html  css  js  c++  java
  • 入栈和出栈规律

    1.由来

    jvm中堆主要是用来存对象的,比如Object obj= new Object(),obj就是存在jvm的堆中的,栈则是用来存成员属性的,每一个线程都有一个独立的栈,前面的obj同样也会在栈中保存一个,但是保存的不是对象,而是obj在堆中的内存地址。当堆中的对象没有栈中的指针指向它时,就会被GC垃圾回收装置回收,栈的存取速度大于堆,小于寄存器,但是必须指定大小和生命周期。

    2.入栈出栈规则

    先进后出,不一定要全部入栈之后再出栈,没入栈完也可以先出栈

    3.任何出栈元素后面的元素必须满足两条规则

    1.在原序列(也就是入栈序列)中顺序比出栈元素小的,必须是逆序

    2.在原序列(也就是入栈序列)中顺序比出栈元素大的,顺序无所谓

    3.出栈元素表示的是出栈后面的所有元素

    比如入栈的是12345,有下面两种情况:

    a. 1 5 4 3 2  这个先看第一个元素1,1后面的元素每一个都比这个大,所以无所谓什么顺序,再看第二个元素5,5后面的元素都比这个数小,所以都必须遵循逆序,而432遵循逆序,所以没问题,情况成立。

    b. 4 3 5 1 2  这个先看第一个元素4,4后面比它小的是312,而这个12明显不按逆序,也就是倒序排列,所以是有问题的 。以后碰到这个出栈顺序的面试题时,就可以分分钟选对了。

    世间种种的诱惑,不惊不扰我清梦
  • 相关阅读:
    软件测试课堂练习1
    安卓增删改查
    安卓数据库表
    安卓注册登录
    安卓购物清单
    安卓计算器
    第四周安卓作业
    第七周作业
    jsp第六周
    第四次jsp作业
  • 原文地址:https://www.cnblogs.com/javalisong/p/12187605.html
Copyright © 2011-2022 走看看