哆啦A梦小短腿

深入理解Java的反射机制

本文转载自 深入理解Java的反射机制。版权归原作者所有,此处仅作个人学习备份。 在上篇文章《深入JVM–探索Java虚拟机的类加载机制》中我们深入探讨了JVM的类加载机制。我们知道,在实例化一个类时,如果这个类还没有被虚拟机加载,那么虚拟机会先执行类加载过程,将该类所对应的字节码读取到虚拟机,并生成一个与这个类对应的Class对象。而在类加载的过程中,由于有双亲委派机制的存在,虚拟机保...

探索Java虚拟机的类加载机制

本文转载自 探索Java虚拟机的类加载机制。版权归原作者所有,此处仅作个人学习备份。 我们知道Java程序在编译的过程中需要先经过javac将Java文件编译成字节码文件才能被虚拟机执行。而类加载指的就是将编译好的字节码(不仅仅指.class文件中的字节码,任意的字节码流都可以被读取到JVM)读取到JVM的内存中的过程。虚拟机在加载.class文件时会对数据进行校验、转换解析和初始化。最...

Java垃圾回收机制最全解析

本文转载自 Java垃圾回收机制最全解析。版权归原作者所有,此处仅作个人学习备份。 提起Java的垃圾回收机制大家应该都有所了解,它不仅是面试的常客,也是Java体系中相当重要的一块知识。深入理解Java的GC机制,不仅有助于我们在开发中提高程序的性能,更有了在面试官面前炫(zhuang)技(X)的资本。本篇文章将全面且深入的分析JVM的垃圾回收机制,同时还会对常用的垃圾收集器(包括最前...

Android组件化,全面掌握

一、背景:为什么要组件化 随着项目逐渐扩展,业务功能越来越多,代码量越来越大,开发人员数量也越来越多。此过程中,你是否有过以下烦恼? 项目模块多且复杂,编译一次要 5 分钟甚至 10 分钟,太慢不能忍? 改了一行代码、只调了一点 UI,就要 run 整个项目,再忍受一次 10 分钟? 合代码经常发生冲突,很烦? 被人偷偷改了自己模块的代码,很不爽? 做一个需求,发现...

Android应用启动流程分析

本文转载自 Android应用启动流程分析。版权归原作者所有,此处仅作个人学习备份。 1 前言 网上看过很多Activity启动过程的源码解析,很多文章会贴上一大段代码,然后从startActivity()函数开始深究整个源码的调用栈。个人感觉这类文章代码细节太多,反而容易迷失在源码调用之中,从而忽略了Activity启动过程的本质。所以本文就简单地对Activity启动过程进行描述,...

Android进阶知识:ANR的定位与解决

本文转载自 Android进阶知识:ANR的定位与解决。版权归原作者所有,此处仅作个人学习备份。 1、前言 ANR对于Android开发者来说一定不会陌生,从刚开始学习Android时的一不注意就ANR,到后来知道主线程不能进行耗时操作注意到这点后,程序出现ANR的情况就大大减少了,甚至于消失了。那么真的是只要在主线程做耗时操作就会产生ANR吗?为什么在有时候明明觉得自己没在主线程做耗...