当前位置: 首页 > news >正文

网站建设与维护实训总结现在做网站怎么赚钱

网站建设与维护实训总结,现在做网站怎么赚钱,广州设计公司排名榜,网站弹窗在中间位置Java报错输出的信息究竟是什么#xff1f; 本篇会带大家了解一下java运行时报错输出的信息内容#xff0c;简单学习一下虚拟机内存中Java虚拟机栈的工作方式以及栈帧中所存储的信息内容 异常信息 当你的程序运行报错时#xff0c;你是否会好奇打印出来的那一大坨红色的究竟…Java报错输出的信息究竟是什么 本篇会带大家了解一下java运行时报错输出的信息内容简单学习一下虚拟机内存中Java虚拟机栈的工作方式以及栈帧中所存储的信息内容 异常信息 当你的程序运行报错时你是否会好奇打印出来的那一大坨红色的究竟是什么 首先报错的第一行是异常的主要描述信息那么剩下的基本都是当前线程的栈帧信息 比如上图对于异常的描述是 Access denied for user rootlocalhost (using password: YES),我们的数据库访问被拒绝了原因就是我把密码输入错误了 那么异常描述下面的信息就是栈帧信息了 什么是栈帧呢栈帧中又包含了哪些信息 虚拟机栈 在我们的Java虚拟机中有一个组成部分叫做运行时数据区它是程序执行过程中用于存储数据的内存区域这个区域用于存储程序运行过程中的各种数据包括对象实例、类信息、局部变量、方法调用信息等 在运行时数据区中又有一部分是虚拟机栈每个线程都有一个独立的虚拟机栈当方法被调用时会在栈中创建一个新的栈帧Stack Frame当方法执行完毕后栈帧会被弹出控制权回到调用方所以虚拟机栈中进进出出的就是程序中的方法的栈帧 那么虚拟机栈是怎么运行的呢 这里以一段代码的运行为例子 public class Stark {public static void main(String[] args) {FunctionA();}public static void FunctionA(){System.out.println(运行了A);FunctionB();}public static void FunctionB(){System.out.println(运行了B);} }当我们运行这段程序时第一个执行的是Main方法在Main方法中又调用执行了A方法在A方法中又执行了B方法那么在虚拟机栈中要执行的方法的栈帧会进入虚拟机栈中待方法完全执行完毕后他的栈帧才会被弹出 此时三个方法都还没有完全结束当B方法被调用输出运行了B后B方法的栈帧才会弹出虚拟机栈以此类推 这就是虚拟机栈的运行过程我们也可以在IDEA中使用断点调试查看到线程的虚拟机栈依然使用上面的代码在B方法上打断点点击调试运行 在左下角就可以看到目前存在的线程中的栈中有哪些栈帧 此时正处于B方法中也就是上图中A方法刚刚调用的B方法B方法还未结束时栈中有三个方法的栈帧信息 文章开头提到报错时会输出当前线程全部的栈帧信息我们可以试一下 在上述代码的B方法中添加一句抛出异常的代码 public class Stark {public static void main(String[] args) {FunctionA();}public static void FunctionA(){System.out.println(运行了A);FunctionB();}public static void FunctionB(){System.out.println(运行了B);throw new RuntimeException(出错);} }执行代码你可以在控制台看到打印出了如下内容 在报错信息的第一行显示我们在线程mian中发生了运行时异常异常信息“出错” 接着很显然下面的部分就是栈帧信息他的打印顺序就是当前虚拟机栈中的全部栈帧依次打印 什么是栈帧 相信看到这里你会发出疑问什么是栈帧呢虚拟机栈中放入的栈帧到底是个什么东西呢 栈帧是虚拟机栈的基本存储单元主要是由三部分组成 局部变量表 用于存放方法的参数和局部变量。这些变量在方法执行过程中会被频繁访问因此将它们存储在栈帧中可以提高访问速度。局部变量表中的变量在方法调用时初始化并在方法执行完毕后销毁操作数栈 用于保存计算过程中产生的中间结果和作为计算单元的操作数。操作数栈是一个后进先出LIFO的数据结构与局部变量表一起支持方法的执行。帧数据 主要包含动态链接、方法出口、异常表等信息 局部变量表 我们编译StarkTest类并查看他的字节码文件 public class StarkTest {public static void main(String[] args) {int i 0;int j i 1;} }打开方法找到Mian方法下的LocalVariableTable就是局部变量表表中会把方法中的参数和局部变量存放起来索引从0开始由于我们的main方法传入了参数args那么表中下标为0的槽中放了args方法中我们又声明了i和j那么他们会依次保存到槽中 其实局部变量表就是一个数组每一个位置被称为一个槽除了long类型和double类型的变量要占两个槽其余的都只占一个槽需要注意的是如果该方法不是静态方法而是示例方法该方法运行时局部变量表的第一个槽会存放调用该方法的实例对象也就是this 局部变量表中存放的变量如果在其生效范围内不会在被使用那么之后的变量或是参数就可以覆盖他的槽以此节省空间 操作数栈 他就是一块用来存放运行时中间数据的区域比如上边代码中int i 0;int j i 1;这两行代码执行的过程先把0放入操作数栈中再将操作数栈中的数赋值给变量i然后把i的值放入操作数栈中再把1也放入操作数栈中让操作数栈中的两个数相加再赋值给变量j 帧数据 帧数据中主要是动态链接方法出口 动态链接 用于维护方法调用时的符号引用转化为直接引用的信息。在Java中每个类都有一个常量池用于存储符号引用。当方法被调用时JVM会通过动态链接将符号引用转化为直接引用以便在方法执行过程中访问其他类或方法。方法出口 记录方法正常退出或异常退出时的处理信息。当方法执行完毕后JVM会根据方法出口的信息将控制权返回给调用者。如果方法在执行过程中抛出异常JVM也会根据方法出口的信息来处理异常
http://www.hkea.cn/news/14564958/

相关文章:

  • 网站logo怎么做动态鞍山最新招聘
  • 做网站必须用tomcat推广软文范例100字
  • wordpress网站模版wordpress本地 域名
  • 企业网站建设规划设计任务书wordpress单图模式
  • 响应云网站模板下载北京王府井在几环
  • 网站建设策划书的撰写沧浪企业建设网站方法
  • 门户网站系统开发建立网上商城应考虑哪些问题
  • 龙华区城市建设局网站聊天app开发费用
  • 建设人力资源服务网站工作方案wordpress怎么改头像
  • 城乡建设部网站网站开发项目需要什么人员
  • 关于《大学物理》网站资源建设的思路wordpress简约文艺
  • 做网站和APP需要注册公司吗如何面试网站开发
  • 营销型电子商务网站特点wordpress文章中的相关文章代码在
  • 网站首页图片分辨率高端网站建设哪家更专业
  • php网站后台反应慢怎么解决wordpress删除模板
  • 怎么查询网站是否被收录学网络营销网站建设好吗
  • 网站 支付宝 接口外贸营销型网站策划中seo层面包括
  • 内网建站软件软件开发工具包可以卸载吗
  • 二手的家具哪个网站做的好科技袁人袁岚峰
  • 做公司网站要注意哪些问题昆明住房和城乡建设部网站
  • 寻乌建设局网站南宁免费自助建站模板
  • 长春网站建设方案深圳做营销型网站
  • 免费做优化的网站建设电子产品网页设计
  • 网站建设自适应网站在linux上做网站搭建
  • 公共网站怎地做查看网站外链代码
  • 设计网站的优缺点分析提供网站建设制作
  • 在线编程的网站局部装修改造找哪家装修公司
  • 中山网站建设推荐爬虫 做资讯网站
  • 网站线框图用什么做珠海网站建设哪家公司好
  • 宁波市住房与城乡建设部网站网页设计外文文献