非专业程序员

努力做专业的事!

Java类文件结构与类加载机制

深入理解Java虚拟机第六章第七章总结

前言 本文是对«深入理解Java虚拟机»第六章第七章以及其他博客的总结, 权做笔记~ 正文 一. 类文件结构 Class文件是一组以8位字节为基础单位的二进制流, 当遇到需要占据8位字节以上空间的数据项时, 则会按照高位在前的方式分割成若干个8位字节进行存储 Class文件格式采用一种类似于C语言结构体的伪结构来存储数据, 这种伪结构中只有两种数据类型: 无符号数和表; 无...

Java垃圾收集器与内存分配策略

深入理解Java虚拟机第三章总结

前言 本文为«深入理解Java虚拟机»第三章以及部分博客内容总结, 权作个人笔记~ 注: 文中部分图片来自: http://hllvm.group.iteye.com/group/wiki/?show_full=true 正文 一. 对象是否死亡 进行垃圾收集首先需要的就是判断对象是否死亡, 也就是是否可以清除收集, 下面将讲解判断对象是否死亡的方法 1.1 引用计数算法...

Java内存区域与内存溢出异常

深入理解Java虚拟机第二章总结

前言 本文是对«深入理解Java虚拟机»第二章以及其他博客的阅读总结 重点是需要去理解各区域存储的是什么, 以此从底层理解对象的创建与引用等过程; 同时还需要明确的一点是各部分会产生的异常, 以及产生异常的原因 注: 文中部分图片来自网络, 但是忘了出处, 侵删~ 正文 一. 基本概念 在开始讲解之前, 需要先明确关于JVM的一些基本概念 我们都知道, Java是一个跨...

Java之IO流

IO流相关API总结

前言 本文将讲解Java中一个比较重要的模块–I/O流 以下内容是对Java核心技术卷II的总结, 权做个人笔记~ 正文 一. 概述 Java I/O流指的是java.io包和java.nio包提供的各种操作文件和输入输出等的API, 具体可以分为两大类: 一类是面向字节的, 一类是面向字符的; 面向字节的API是以InputStream和OutputStream类为基类,...

自定义View之View绘制流程

Android源码分析之View绘制流程

前言 Android源码分析之View系列之绘制流程 正文 一. 概述 View的绘制流程分为三大步: measure, layout, draw; measure即测量, 测量View的大小; layout即布局, 按照一定的规则排布View; draw即绘制, 绘制View的外形; 这三步是和我们自定义View息息相关的, 熟悉和掌握这三大流程, 我们才能随心所欲的定制V...

自定义View之View事件分发机制

View事件分发源码讲解

前言 Android源码分析之View系列之事件分发机制 正文 一. 概述 View的触摸事件分发是View系列中的一个重难点, 主要需要掌握的是MotionEvent的传递规则和处理规则, 这是自定义View中冲突处理的理论来源~ 触摸事件分发的处理主要是对MotionEvent的处理, MotionEvent封装了用户的一系列行为, 如: ACTION_DOWN(手指刚...

Handler

Handler源码分析, Android消息机制分析

前言 Android消息机制分析 Handler源码分析 正文 一. 概述 Handler算是我们平时开发中比较常用的一个, Handler所代表的是Android中重要的一部分, 即消息机制; 本文将分析Handler的运行机制 1.1 使用场景 线程切换: 这个是使用Handler最常见和最频繁的场景了; 我们都知道, UI线程中不允...

Linux开机启动流程

Linux开机启动流程

前言 Linux开机启动流程 文中实验基于CentOS6.4版本(CentOS6.x版本都可以,但是CentOS7.x版本会有所区别) 正文 一. 启动流程 开关电源(SMPS)在开机之后将AC信号转换为DC信号,然后SMPS会进行电压的检测,如果正常,SMPS将会发送POWER GOOD 信号给主板定时器,主板定时器接收到POWER GOOD信号之后,将会停...

Java集合框架之Queue

Queue的实现类

前言 前面我们对Java集合框架有了一个基本的认识, 这里我们从几大接口入手, 逐步讲解其实现类; 下面要讲解的是Queue的实现类, 即ArrayDeque 文章源码基于JDK8 Java集合框架系列博客: Java集合框架概述 Java集合框架之List Java集合框架之HashMap Java...

大二下总结

前言 将一切交给时光, 相信一切都是最好的结局 正文 一. 概述 大二下学期可能是我大学生活中最刺激的一个阶段, 大概就是整整一个学期, 从周一到周末, 每天满课的那种; 更刺激的是一天考了三门(早中晚, 没毛病~) 上课期间, 学的主要是算法和Java, Android基础这部分; 暑假期间, 主要是做项目 总体感受: 稍显疲惫 ~ 二. 项目 项目部分主要是暑假接...