基础
文章平均质量分 80
简单专注
这个作者很懒,什么都没留下…
展开
-
Annotation原理
序言注解在Java中到底是什么样的东西?具体是如何实现的? 本文将一层一层深入探究注解的实现原理。为了尽可能的将分析的过程呈现出来,所以文章包含了大量的截图和代码。(ps:如果图片看不清楚,请将网页放大来看,chrome可以通过ctrl+鼠标滚轮放大)前期准备知识方面开始分析前,提醒一下,下面的分析必须具备以下知识 1. 知道如何自定义注解 2. 理转载 2017-04-27 09:42:12 · 657 阅读 · 0 评论 -
理解和使用Annotation
JDK1.5之后,引入了元数据的概念,也就是Annotation(注释),其实它是代码里的特殊标记,这些标记可以再编译、类加载、运行时被读取,并执行相应的处理。元数据的作用:如果要对于元数据的作用进行分类,目前还没有明确的定义,不过我们可以根据它所起的作用,大致可分为三类:1. 编写文档:通过代码里标识的元数据生成文档。2. 代码分析:通过代码里标识的元数据对代码进转载 2017-04-27 09:40:46 · 435 阅读 · 0 评论 -
Java 技术之反射
Java 技术之反射关于Java反射机制的文章很多,这次换种方式来讲解反射的作用。本文涉及到的知识点:class.getDeclaredXXX()、XXX.getModifiers()、method.getReturnType()、method.getParameterTypes()、method.isAnnotationPresent(XXX.class)、Modifier.原创 2017-04-27 09:32:33 · 393 阅读 · 2 评论 -
static作用:静态变量的生存周期和作用域
首先要理解生存周期与作用域的区别: 生存周期: 变量从定义到销毁的时间范围。存放在全局数据区的变量的生存周期存在于整个程序运行期间,而存放在栈中的数据则随着函数等的作用域结束导致出栈而销毁,除了静态变量之外的局部变量都存放于栈中。 作用域: 变量的可见代码域(块作用域,函数作用域,类作用域,程序全局作用域)。static变量是指静态的变量,不管是在全局还是局部声明的static变量都存放于程序的转载 2016-09-29 15:52:46 · 18770 阅读 · 0 评论 -
Handler
Android Handler实现原理下面介绍最本质的多线程:hanlder和message机制:为何需要多线程:在日常应用中,我们通常需要处理一些“后台,用户不可见”的操作,例如说,我们需要下载一个音乐,要是你的应用必须等用户下载完成之后才可以进行别的操作,那肯定让用户非常的不爽。这时候,我们通常的做法是,让这些操作去后台执行,然后等后台执行完毕之后,再给原创 2015-06-23 21:22:19 · 649 阅读 · 1 评论 -
java对象的强引用,软引用,弱引用和虚引用
众所周知,java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也是它的缺点(不够灵活)。为了解决内存操作不灵活这个问题,可以采用软引用等方法。 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品原创 2015-12-18 15:55:20 · 354 阅读 · 0 评论 -
Android手机缓存的位置
在Android手机里面,缓存的位置分为两类,一类是Internal Storage,即内部存储,另外一类是External Storage,即外部存储。比较老的手机,有一个手机内部存储,还有一个SD卡存储,就是分别对应这两种存储位置,因为以前的SD卡是可以扩展的,即可拆卸的,所以可以用是否可拆卸作为内外存储的分类标准。但是现在最新的设备,比如小米、锤子、华为等,都取消了可拆卸的S原创 2015-12-10 11:20:42 · 1460 阅读 · 0 评论 -
android 获取文件夹、文件的大小 以B、KB、MB、GB 为单位
android 获取文件夹、文件的大小 以B、KB、MB、GB 为单位public class FileSizeUtil {public static final int SIZETYPE_B = 1;//获取文件大小单位为B的double值public static final int SIZETYPE_KB = 2;//获取文件大小单位为KB的doubl转载 2015-07-12 10:28:30 · 2275 阅读 · 0 评论 -
JAVA IO流
Java中IO流分成两大类,一种是输入流,所有的输入流都直接或间接继承自InputStream抽象类,输入流作为数据的来源,我们可以通过输入流的read方法读取字节数据;另一种是输出流,所有的输出流都直接或间接继承自OutputStream抽象类,输出流接收数据,可以通过write方法写入字节数据。在Java的IO流类中,大部分的输入流和输出流都是成对存在的,即如果存在XXXInputStream转载 2015-07-09 23:35:44 · 573 阅读 · 2 评论 -
使用全屏沉浸模式(Using Immersive Full-Screen Mode)
虽然在android4.0之后就引入了虚拟键,但是google真正解决虚拟键所带来的困扰是在4.4版本之后。这篇文章就是教你如何彻底解决虚拟键带来的问题。在前面的几篇文章中我们已经知道如何同时隐藏状态栏和导航栏,按理说已经全屏了 ,但是前面的的这些方法都有个缺点,在全屏的时候用户不能有任何的交互行为,否则全屏效果将消失。(google这样设计的目的是为了让虚拟键能继续发挥它的作用,总要在全屏之后找...转载 2018-03-29 18:28:54 · 2557 阅读 · 0 评论