『Java』堆栈跟踪

『Java』堆栈跟踪堆栈跟踪 Java 为此有一个特殊集合 - 堆栈。这个集合中有多种方法可 “添加元素” 和 “获取元素” 在 Java 程序中,方法 A 调用 方法 B,方法 B 调用 方法 C ,方法 C 接着调用

堆栈跟踪

Java 为此有一个特殊集合 - 堆栈。这个集合中有多种方法可 “添加元素” 和 “获取元素

Java 程序中,方法 A 调用 方法 B方法 B 调用 方法 C方法 C 接着调用 方法 D 。如要退出 方法 B,我们必须首先退出方法 C ,退 方法 C 就要首先退出方法 方法 D。这种行为就像一个 堆栈

堆栈是一组元素,像一堆纸一样。要从最上层拿起第三张纸,你首先需要拿第二张纸,为此,你需要拿第一张纸。你总是可以放纸和抽纸,但始终必须先获取最上面的纸。

函数调用也是如此。**方法 A **调用 方法 B方法 B 又调用方法 C。要退出 方法 A,你必须先退出 方法 B,而退出 方法 B 又要退出 方法 C

函数调用的顺序称为 “调用堆栈” ,或简称为 “堆栈”。最后一个调用的函数是第一个终止的函数

获取并显示当前调用堆栈:

public class ExceptionExample
{
  public static void main(String[] args)
  {
    method1();
  }

  public static void method1()
  {
    method2();
  }

  public static void method2()
  {
    method3();
  }

  public static void method3()
  {
    StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
    for (StackTraceElement element : stackTraceElements)
    {
       System.out.println(element.getMethodName());
    }
  }
}

结果:

getStackTrace
method3
method2
method1
main

Java 机器跟踪所有函数调用。为此,它有一个特殊的集合 - 堆栈。当一个函数调用另一个,则 Java 机器在堆栈中放入一个新的 StackTraceElement 对象。函数完成后,该元素会从堆栈中移除。这意味着堆栈始终存储 “函数调用堆栈” 当前状态的最新信息。

每个 StackTraceElement 对象包含所调用方法的信息。特别是,你可以使用 getMethodName 方法获取方法名称。

从上述示例中可看出它的工作原理:

​ 1) 我们获取了调用堆栈。

​ 2) 我们使用 for-each 循环来遍历。你最好没忘记那个概念。

​ 3) 我们将方法名称输出到 System.out

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/36683.html

(0)
上一篇 2023-11-16
下一篇 2023-11-16

相关推荐

  • 数据类型相关以及堆栈知识

    数据类型相关以及堆栈知识两大数据类型 基本数据类型:number\string\boolean\null\undefined\symbol\bigint 引用数据类型:object\function 类型判断方法 typeo

    2023-11-16
    139
  • mysql事务(详解)「终于解决」

    mysql事务(详解)「终于解决」1、事务定义-事务:事务是一个最小的不可在分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务是一个最小的工作单元)2、事务有四个特性:一致性、持久性、原子性、隔离性…

    2023-04-02
    157
  • filesystemobject(vba中filesystemobject)

    filesystemobject(vba中filesystemobject)

    2023-10-23
    280
  • mysql四种常见日志_Redis日志

    mysql四种常见日志_Redis日志日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发,我们重点需要关注的是二进制日志(binlog)和事务日志(包括redo log和undo log),本文接下来会详…

    2023-04-02
    149
  • Mysql事务控制[通俗易懂]

    Mysql事务控制[通俗易懂]MySQL事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,如果操作就必须同时操作成功,如果有一个不成功则所有数据都不动。这时候数据库操作语句就构成一个事务。事务主要处理数据的增删改操作。开始执行事务中的若干条SQL命令(增删改)终止事务,若begin之后使用commit提交事务或者使用rollback进行事务回滚。事务四大特性原子性(atomicity)一致性(consis

    2023-04-02
    153
  • mysql安装教程(MySql免费安装教程)「终于解决」

    mysql安装教程(MySql免费安装教程)「终于解决」

    2023-08-26
    155
  • 计算机网络 学习

    计算机网络 学习作者:CUGGZ 链接:https://juejin.cn/post/6908327746473033741 来源:稀土掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 一、

    2023-11-11
    156
  • macbook窗口快捷键_数据库事务并发

    macbook窗口快捷键_数据库事务并发talbelock表锁是mysql最基本的锁策略,也是开销最小的锁,它会锁定整个表;具体情况是:若一个用户正在执行写操作,会获取排他的“写锁”,

    2023-04-03
    140

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注