jvm破坏双亲委派

正如我们最近发现的那样,全面测试可能有害。 扩展测试覆盖范围导致我们仅花费一行代码就进行了几个小时的调试会话。 使调试特别令人不愉快的是,该代码不仅崩溃了所部署的JVM,而且还破坏了其下的虚拟机和/或物理机。

因此,请自行承担以下风险。 请注意,您必须在类路径中提供tools.jar以便进行编译和运行。

public class Crash {public static void main(String... args) throws Exception {com.sun.tools.attach.VirtualMachine.attach("-1");}
}

代码真的很简单。 我们正在尝试将自己附加到一个现有的Java进程,该进程指定-1作为进程ID。 与其说失败,不如说是得到类似于死亡蓝屏的东西。

关于崩溃的有趣见解–这几乎是我记得承认Windows优于Mac OS X或Linux的唯一情况。 当Mac和各种Linux风格不断崩溃时,Windows机器进行了很好的测试,并通过“无此过程”消息提醒我们。

我们从案件中学到了什么? 首先–提供JVM沙箱保护操作系统免受疯狂尝试自杀的威胁,这本身就是一件很了不起的事情。 我们重新学习的另一个教训是–即使使用所有现代的运行时调试工具,在某些情况下,您仍然需要回到根源并通过良好的旧分而治之进行调试。

参考: Plumbr博客博客上的JCG合作伙伴 Nikita Salnikov Tarnovski 崩溃了JVM 。

翻译自: https://www.javacodegeeks.com/2013/11/crashing-your-jvm.html

jvm破坏双亲委派

jvm破坏双亲委派_破坏JVM相关推荐

  1. java破坏双亲委派_破坏双亲委派模型

    上次说了类加载器以及它的双亲委派模型,同样提到了双亲委派模型并不是一种强制的约束,而是推荐给开发者的类加载器的实现方式,在java中,大部分类加载器都会遵循这个模型,但是也有例外,到目前为止,双亲委派 ...

  2. (JVM)双亲委派机制 破坏双亲委派机制

    1. 双亲委派机制 类加载器用来把类加载到Java虚拟机中.从JDK1.2版本开始,类的加载过程采用双亲委派机制,这种机制能更好地保证Java平台的安全. Java 虚拟机对 class 文件采用的是 ...

  3. 【JVM】浅谈双亲委派和破坏双亲委派

    转载自   [JVM]浅谈双亲委派和破坏双亲委派 一.前言 笔者曾经阅读过周志明的<深入理解Java虚拟机>这本书,阅读完后自以为对jvm有了一定的了解,然而当真正碰到问题的时候,才发现自 ...

  4. 为什么要破坏JVM的双亲委派模型

    本文来说下为什么要破坏JVM的双亲委派模型 文章目录 概述 双亲委派模型 破坏双亲委派模型 不使用Java SPI 使用Java SPI 自定义类加载器 为什么要自定义类加载器 ClassLoader ...

  5. JVM成神之路-类加载机制-双亲委派,破坏双亲委派

    概述 概念 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接时候用的Java类型. 类的生命周期 类从被加载到虚拟机内存中开始,到卸载出内存 ...

  6. JVM类加载机制、破坏双亲委派

    JVM类加载机制我们从下面三个方面介绍一下,即 类加载过程.初始化类的顺序和类加载器 JVM类加载过程 要想使用一个Java类为自己工作,必须经过以下几个过程,类加载 -> 连接(验证 -> ...

  7. 【JVM】双亲委派机制详解

    通过上篇文章我们学习了类加载,也提到了因为双亲委派机制的存在自定义类加载器的实现,不要去覆盖ClassIoader类的loadClass方法,去实现findClass方法,接下来详细解释一下双亲委派机 ...

  8. 类加载机制-双亲委派,破坏双亲委派--这一篇全了解

    概述 概念 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接时候用的Java类型. 类的生命周期 类从被加载到虚拟机内存中开始,到卸载出内存 ...

  9. JDBC、Tomcat为什么要破坏双亲委派模型?

    问题一:双亲委派模型是什么 如果一个类加载器收到了加载某个类的请求,则该类加载器并不会去加载该类,而是把这个请求委派给父类加载器,每一个层次的类加载器都是如此,因此所有的类加载请求最终都会传送到顶端的 ...

最新文章

  1. a-awk 计算数值最大,最小,平均值并保留指定位数
  2. {ldelim},{rdelim} - smarty 内建函数
  3. 博弈论 | 博弈论简谈、常见的博弈定律、巴什博弈
  4. 信息学奥赛一本通 1183:病人排队 | OpenJudge NOI 1.10 08:病人排队
  5. 超难打地鼠 【安卓游戏】
  6. 【C语言】怎么用C语言来解逻辑推理题 | 运用离散数学+形式逻辑学的思想
  7. 微软必应Bing搜索引擎这几天无法访问!
  8. 关于junk jack
  9. java-net-php-python-ssm仿猫眼电影计算机毕业设计程序
  10. python和pyqt5入门之简易汇率转换器
  11. 十、cocos2d-x 字体描边和制作阴影
  12. 计算机开机键英语字母,电脑开机黑屏显示英文字母
  13. 4、Python量化交易-双均线策略
  14. python高考加分_Python将纳入浙江省新高考,你知道了吗?
  15. idea 断点线程_在IntelliJ IDEA中多线程并发代码的调试方法
  16. Apache HAWQ集群的安装部署
  17. python实战-HTML形式爬虫-批量爬取电影下载链接
  18. Web Worker 简介
  19. SpringCloud H版 Config 配制中心讲解
  20. 最强的数据扩增方法竟然是添加标点符号?

热门文章

  1. 邻接矩阵和邻接表的使用
  2. 2014 ACM/ICPC Asia Regional Xi'an Online
  3. 数学推导题,NTT,快速数论变换,Wannafly-导数卷积
  4. Spark入门(十六)之分组求TOP N最小值
  5. @Resource,@Autowired,@Inject3种注入方式详解
  6. laravel部署在linux出现404 not found
  7. 《四世同堂》金句摘抄(十一)
  8. 递归->记忆化搜索->严格表
  9. 相邻数字+(正月点灯笼的动态规划2)(递归+DP)---JAVA
  10. mysql加索引快很多