volley源码解析-Throwable类源码解析】的更多相关文章

前提知识点: 1.Serializable接口 作用:表示可序列化的语义.就是Java提供的通用数据保存和读取接口.任何类型实现了Serializeable接口,就可以被保存到文件中,或者作为数据流通过网络发送到别的地方,也可以用管道来传输到系统的其他地方.在Java中的序列化,只需要实现serializable接口,然后,你可以使用objectOutputStream将该对象保存到文件或者发送到其他主机,所有的non-transient和non-static字段都将被序列化,所有我们想自己处理…
一 简介 Integer是int基本类型的包装类,同样继承了Number类,实现了Comparable接口,String类中的一些转化方法就使用了Integer类中的一些API,且fianl修饰不可继承: public final class Integer extends Number implements Comparable<Integer> { Number传送门 二 源码解析 Integer类API比较多也比较重要,分开几个部分解析: 1 属性 // 包装类的int类型值 priva…
关于String类的内存解析 Person类的内存解析…
ConfigurationClassParser 在ConfigurationClassPostProcessor#processConfigBeanDefinitions方法中创建了ConfigurationClassParser对象并调用其parse方法.该方法就是在负责解析配置类.扫描包.注册BeanDefinition,源码如下: //ConfigurationClassParser#parseSet<BeanDefinitionHolder>) 方法源码 public void pa…
要点摘要 课堂笔记 日期相关 JDK7 日期类-Date 概述 表示一个时间点对象,这个时间点是以1970年1月1日为参考点; 作用 可以通过该类的对象,表示一个时间,并面向对象操作时间; 构造方法 直接利用空参数构造方法,即可获取当前时间对象; 常用方法 getTime()可以获取时间对象对应的毫秒值 格式化类-SimpleDateFormat 概述 专门用于将时间对象与字符串进行相互转换的工具类; 作用 1:可以将时间对象转字符串 2:可以将字符串转成时间对象 构造方法 传递一个字符串实参的…
Java集合---Array类源码解析              ---转自:牛奶.不加糖 一.Arrays.sort()数组排序 Java Arrays中提供了对所有类型的排序.其中主要分为Primitive(8种基本类型)和Object两大类. 基本类型:采用调优的快速排序: 对象类型:采用改进的归并排序. 1.对于基本类型源码分析如下(以int[]为例): Java对Primitive(int,float等原型数据)数组采用快速排序,对Object对象数组采用归并排序.对这一区别,sun在…
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 在一次源码查看ThreadGroup的时候,看到一段代码,为以下: /* * @throws NullPointerException if the parent argument is {@code null} * @throws SecurityException if the current thread cannot create a * thread in the specified thread grou…
一 概述 String由final修饰,是不可变类,即String对象也是不可变对象.这意味着当修改一个String对象的内容时,JVM不会改变原来的对象,而是生成一个新的String对象 主要考虑以下原因: 为了实现字符串池(提升效率) 只有当字符串是不可变的,字符串池才有可能实现.字符串池的实现可以在运行时节约很多heap空间,因为不同的字符串变量都指向池中的同一个字符串.但如果字符串是可变的,那么String interning将不能实现,因为这样的话,如果变量改变了它的值,那么其它指向这…
承接前文Spring源码情操陶冶-自定义节点的解析,本文讲述spring通过context:component-scan节点干了什么事 ComponentScanBeanDefinitionParser#私有属性 罗列下context:component-scan可填的基础属性 private static final String BASE_PACKAGE_ATTRIBUTE = "base-package"; private static final String RESOURCE…
概述 接前两篇文章  spring源码深度解析—Spring的整体架构和环境搭建  和  spring源码深度解析— IOC 之 容器的基本实现 本文主要研究Spring标签的解析,Spring的标签中有默认标签和自定义标签,两者的解析有着很大的不同,这次重点说默认标签的解析过程. 默认标签的解析是在DefaultBeanDefinitionDocumentReader.parseDefaultElement函数中进行的,分别对4种不同的标签(import,alias,bean和beans)做了…
继续spring源码的学习之路,现在越来越觉得这个真的很枯燥的,而且我觉得要是自己来看源码,真的看不下去,不是没有耐心,而是真的没有头绪,我觉得结合着书来看,还是很有必要的,最起码大致的流程是能够捋清楚的,继续,希望自己能够坚持到最后! 一.标签解析的总体的理解 spring标签包括默认标签和自定义标签两种,今天只是来探索默认标签的! org.springframework.beans.factory.xml包下的DefaultBeanDefinitionDocumentReader类中 pri…
3 Skywalking源码导入 接上文,已经学习了Skywalking的应用,接下来我们将剖析Skywalking源码,深度学习Skywalking Agent. 3.1 源码环境搭建 当前最新版本是8.3.0,我们首先找到8.3.0的版本,然后下载并导入到IDEA,下载地址 https://github.com/apache/skywalking.git,我们直接用git克隆到本地. 1.推荐大家将github仓库拷贝到码云上,以提升下载速度 2.为了避免clone过程出错,可以设置git的…
目录 1.引子 2.JVM线程状态 3.Thread常用方法 4.拓展点 一.引子 说来也有些汗颜,搞了几年java,忽然发现竟然没拜读过java.lang.Thread类源码,这次特地拿出来晒一晒.本文将剖析Thread类源码(本文后面源码全部默认JDK8),并讲解一些重要的拓展点.希望对大家能有一些帮助. 本文讲解主干全部出自源码和注释,保证了权威性.(注意:网上,某些书中很多观点都是错的,过时的,片面的,所以大家一定要看源码,重要事情说N遍,看源码!看源码!看源码......) 二.JVM…
本文承接前文Spring源码情操陶冶-DefaultBeanDefinitionDocumentReader#parseBeanDefinitions,特开辟出一块新地来啃啃这块有意思的骨头 自定义节点的类型 我们常用的可分为spring/springmvc两类 spring常用的节点类型 context类型 context-component-scan-扫描包内的所有class类并注册为beanDefinition到spring上下文 context-property-placeholder-…
本文承接前文Spring源码情操陶冶-自定义节点的解析,分析spring中的context:annotation-config节点如何被解析 源码概览 对BeanDefinitionParser接口的实现方法parse代码如下 @Override public BeanDefinition parse(Element element, ParserContext parserContext) { Object source = parserContext.extractSource(elemen…
本文针对spring配置的context:property-placeholder作下简单的分析,承接前文Spring源码情操陶冶-自定义节点的解析 spring配置文件应用 <context:property-placeholder location="classpath:context.properties"> PropertyPlaceholderBeanDefinitionParser-继承关系 配置文件解析类的继承关系如下 * AbstractBeanDefini…
解析mvc:interceptors节点 观察下InterceptorsBeanDefinitionParser的源码备注 /** * {@link org.springframework.beans.factory.xml.BeanDefinitionParser} that parses a * {@code interceptors} element to register a set of {@link MappedInterceptor} definitions. * * @autho…
置顶一篇文章,主要是整理一下写过的JDK中各个类的源码及其他框架源码解析的文章,方便自己随时阅读也方便网友朋友们阅读与指正 基础篇 从为什么String=String谈到StringBuilder和StringBuffer Java语法糖1:可变长度参数以及foreach循环原理 Java语法糖2:自动装箱和自动拆箱 集合篇 图解集合1:ArrayList 图解集合2:LinkedList 图解集合3:CopyOnWriteArrayList 图解集合4:HashMap 图解集合5:不正确地使用…
目录 一起学 mybatis 0 <sql> 节点解析 1 解析流程 2 节点解析 2.1 解析流程 2.2 <include> 节点的解析 2.3 Node.ELEMENT_NODE 类型解析 2.4 Node.TEXT_NODE 举例 3 节点 4 创建 SqlSource 5 获取对应的 KeyGenerator 6 创建并添加 MappedStatement @ 一起学 mybatis 你想不想来学习 mybatis? 学习其使用和源码呢?那么, 在博客园关注我吧!! 我自…
1.前言 SpringMVC是目前J2EE平台的主流Web框架,不熟悉的园友可以看SpringMVC源码阅读入门,它交代了SpringMVC的基础知识和源码阅读的技巧 本文将通过源码(基于Spring4.3.7)分析,弄清楚Controller是如何匹配我们传入的参数,并定义简单的参数解析器 2.源码分析 demo源码在这里,回到DispatcherServlet的doDispatch方法,DispatchServlet分析见SpringMVC源码阅读:核心分发器DispatcherServle…
问题在详细介绍ibatis初始化过程之前,让我们先来思考几个问题. 1. ibatis初始化的目标是什么?上文中提到过,ibatis初始化的核心目标是构造SqlMapClientImpl对象,主要是其内部重要属性delegate这个代理对象的初始化.delegate这个对象耦合了用户端的操作行为和执行环境,持有执行操作所需要的所有数据. 2. 如何解析ibatis的sqlmap配置文件和sqlmap映射文件?可以采用通用的xml文件解析工具,如SAX等. 3. 如何将配置文件中每个节点值注入到S…
rest_framework解析器组件源码流程 解析器顾名思义就是对请求体进行解析.为什么要有解析器?原因很简单,当后台和前端进行交互的时候数据类型不一定都是表单数据或者json,当然也有其他类型的数据格式,比如xml,所以需要解析这类数据格式就需要用到解析器(也可以将请求体拿到,然后利用其他模块进行解析). rest_framework解析器就是对你请求体中的数据进行反序列化.封装 把你的所有的请求数据都封装在request.data中 以后就在request.data中获取数据 源码分析 在…
引自 spring IoC源码分析 (3)Resource解析 定义好了Resource之后,看到XmlFactoryBean的构造函数 public XmlBeanFactory(Resource resource, BeanFactory parentBeanFactory) throws BeansException { super(parentBeanFactory); this.reader.loadBeanDefinitions(resource); } 跟到XmlBeanDefin…
在spring源码深度解析— IOC 之 默认标签解析(上)中我们已经完成了从xml配置文件到BeanDefinition的转换,转换后的实例是GenericBeanDefinition的实例.本文主要来看看标签解析剩余部分及BeanDefinition的注册. 默认标签中的自定义标签解析 在上篇博文中我们已经分析了对于默认标签的解析,我们继续看戏之前的代码,如下图片中有一个方法:delegate.decorateBeanDefinitionIfRequired(ele, bdHolder) 这…
回顾 首先回顾: JDK动态代理与CGLIB动态代理 Spring中的InstantiationAwareBeanPostProcessor和BeanPostProcessor的区别 我们得知 JDK动态代理两要素:Proxy+InvocationHandler CGLB动态代理两要素:Enhancer + MethodInterceptor(Callback) springAOP底层是通过动态代理和CGLB代理实现的.也就是spring最终的落脚点还应该是在Proxy+InvocationHa…
简述 大家都知道mybatis中,无论是配置文件mybatis-config.xml,还是SQL语句,都是写在XML文件中的,那么mybatis是如何解析这些XML文件呢?这就是本文将要学习的就是,mybatis解析器XPathParser. MyBatis在初始化过程中处理mybatis-config.xml配置文件以及映射文件时,使用的是DOM解析方式,并结合使用XPath解析XML配置文件.DOM会将整个XML文档加载到内存中并形成树状数据结构,而XPath是一种为查询XML文档而设计的语…
Spark SQL原理解析前言: Spark SQL源码剖析(一)SQL解析框架Catalyst流程概述 这一次要开始真正介绍Spark解析SQL的流程,首先是从Sql Parse阶段开始,简单点说,这个阶段就是使用Antlr4,将一条Sql语句解析成语法树. 可能有童鞋没接触过antlr4这个内容,推荐看看<antlr4权威指南>前四章,看完起码知道antlr4能干嘛.我这里就不多介绍了. 这篇首先先介绍调用spark.sql()时候的流程,再看看antlr4在这个其中的主要功能,最后再将探…
1. 读源码的方法 java程序员都知道读源码的重要性,尤其是spring的源码,代码设计不仅优雅,而且功能越来越强大,几乎可以与很多开源框架整合,让应用更易于专注业务领域开发.但是能把spring的源码吃透,不仅需要花费大量时间与精力,更需要需要掌握一些方法.下面结合自己读源码与走过的一些弯路,结合网上知名博客专家的建议,整理出以下要点,与读者共勉. 1.1 重视官方英文文档 spring的官方文档写的非常全面,基本可以认为是spring源码思想的一手来源,上面有很多例子不仅帮助读者如何应用,…
详细解析Thinkphp5.1源码执行入口文件index.php运行过程 运行了public目录下的index.php文件后,tp的运行整个运行过程的解析 入口文件index.php代码如下: <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +--------------------------…
org.reflections 接口通过反射获取实现类源码研究 版本 org.reflections reflections 0.9.12 Reflections通过扫描classpath,索引元数据,并且允许在运行时查询这些元数据. 使用Reflections可以很轻松的获取以下元数据信息: 获取某个类型的所有子类:比如,有一个父类是Interface,可以获取到Interface的所有子类. 获取某个注解的所有类型/字段变量,支持注解参数匹配. 使用正则表达式获取所有匹配的资源文件 获取特定…