最近项目上使用了sonarqube来提供静态代码检查的服务,在看sonar-scanner的源码的时候,发现sonar-scanner用来分析的jar包是从sonar的服务器上下载下来的,使用自定义的ClassLoader来加载这些从服务器上下载下来的jar包,然后使用了jdk的动态代理来创建了一个启动器类,然后使用这个启动器调用了sonar提供的Batch API启动了代码分析 Sonar的scanner中对ClassLoader和JDK的动态代理的使用,是ClassLoader的一个比较典型…
li,ol.inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:700}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;…
Bootstrap的启动 Bootstrap的main方法先new了一个自己的对象(Bootstrap),然后用该对象主要执行了四个方法: init(); setAwait(true); load(args); start(); init():初始化了ClassLoader(类加载器,没它的话后面就没法加载其他类了),然后用ClassLoader创建了Catlina实例. setAwait(true),load(args),start();这三个方法实际上都是通过反射调用的Catlina实例中所…
前言 Flink是大数据处理领域最近很火的一个开源的分布式.高性能的流式处理框架,其对数据的处理可以达到毫秒级别.本文以一个来自官网的WordCount例子为引,全面阐述flink的核心架构及执行流程,希望读者可以借此更加深入的理解Flink逻辑. 本文跳过了一些基本概念,如果对相关概念感到迷惑,请参考官网文档.另外在本文写作过程中,Flink正式发布了其1.5 RELEASE版本,在其发布之后完成的内容将按照1.5的实现来组织.   1.从 Hello,World WordCount开始 首先…
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78212010 Android逆向分析的过程中免不了碰到Android so被加固的情况,要对被加固的Android so进行脱壳处理,就需要先了解Android so的加载流程,进而了解Android so的加固原理.学习Android so加固的思路和学习Android dex文件加固的思路是类似的,下面就以Android so加固的源头System.loadLibrary函数…
Java 代码执行流程 类加载过程 加载 -> 验证 -> 准备 -> 解析 -> 初始化 -> 使用 -> 卸载 类加载时机:代码使用到这个类时 验证阶段 ".class"加载到内存里之后,必须先验证一下,校验他必须完全符合JM规范,后续才能交给VM来运行. 准备阶段 给加载的类分配内存空间 给类变量(static 修饰)分配内存空间 给类变量赋默认初始值 解析阶段 实际上就是把符号引用替换为直接引用的过程 加载 -> 验证 -> 准备…
前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识.   一.MySQL架构总览: 架构最好看图,再配上必要的说明文字. 下图根据参考书籍中一图为原本,再在其上添加上了自己的理解.   从上图中我们可以看到,整个架构分为两层,上层是MySQLD的被称为的‘SQL Layer’,下层是各种各样对上提供接口的存储引擎,被称为‘Storage E…
第二天 ci执行流程 welcome 页面 this this->load 单入口框架index.php 两个文件夹 system application定义 定义常亮路径 载入 codeigniter.php codeigniter.php 载入通用函数库common.php 载入常量配置文件constant 载入类文件 hooks config 载入控制器controller.php $class = $RTR->fetch_class(); $method = $RTR->fetc…
接上一章 执行流程1 在这一大堆扫描绑定方法中应该会哪些实现? 首先我们看avalon能帮你做什么? 数据填充,比如表单的一些初始值,切换卡的各个面板的内容({{xxx}},{{xxx|html}}, ms-html) 类名处理,如隔行变色,掠过变色(ms-class, ms-hover) 事件绑定(ms-click) 属性处理(ms-checked, ms-href, ms-disabled) 数据格式化与验证(过滤器与$watch) 将某个元素转为一些功能更强大的UI,如果拖动块,滑动块,弹…
4.1  return 关键字return有两方面的用途:一方面指定一个方法结束时返回一个值:一方面强行在return位置结束整个方法,如下所示: char test(int score) { if (score >= 90) return 'A'; if (score >= 80) return 'B'; if (score >= 70) return 'C'; if (score >= 60) return 'D'; else //if (score < 60) retu…