自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android中获取各种服务是哪里来的

当app第一次加载时就开始注册了那些服务,具体来说就是在应用创建ContextImpl实例的时候调用了SystemServiceRegistry类来进行注册,其注册的服务(就是具体的相关的服务的实例)保存在HashMap的对象SYSTEM_SERVICE_FETCHERS中:      private static final HashMap> SYSTEM_SERVICE_FETCHERS

2016-03-30 12:26:33 1810

原创 JVM之类加载机制

在上一篇文章中我们了解了Class文件存储格式的具体细节,在Class文件中描述的各种信息,最终都要加载到虚拟机中之后才能运行和使用。而虚拟机如何加载这些Class文件?Class文件中的信息进入到虚拟机后会发生什么变化?这些都是本文所需要解决的问题!      虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化最终形成了可以被虚拟机直接使用的Java类型,这就

2016-03-26 19:55:28 290

原创 JVM之类文件结构

实现语言无关性的基础仍然是虚拟机和字节码存储格式。Java虚拟机不和包括Java在内的任何语言绑定,它至于“Class”文件这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指令集和符号表以及若干其它辅助信息。       Java语言中的各种变量、关键字和运算符号的语义最终都是有多条字节码指令组合而成,因此字节码命令所能提供的语义描述能力肯定会比Java语言本身更加强大。

2016-03-22 21:35:57 1608

转载 从init.rc说起

1 简述Android init.rc文件由系统第一个启动的init程序解析,此文件由语句组成,主要包含了四种类型的语句:Action,Commands,Services,Options.在init.rc文件中一条语句通常是占据一行.单词之间是通过空格符来相隔的.如果需要在单词内使用空格,那么得使用转义字符"\",如果在一行的末尾有一个反斜杠,那么是换行折叠符号,应该和下一行合并成一起来处

2016-03-22 11:12:05 284

原创 C/C++拾起

static关键字     static修饰的全局变量和函数只能在本文件类使用。const关键字    const是指常数,这种数存放在rom中,也就是硬盘里,只有使用的时候才读取到内存。const数不能被修改,也不能是局部变量。

2016-03-21 15:10:36 288

原创 AIDL的使用

什么是AIDL    aidl的全称是Android Interface Definition Language,这是为了实现跨进程通信而在客户端和服务端编写的接口。

2016-03-21 13:37:00 543 1

原创 JVM之垃圾收集器与分配策略

通过以上JVM两篇文章的介绍,我们大致了解了Java的内存模型以及对象的存储和分配,本文在基于以上知识开始讲解内存的回收,本文尝试解决以下的几个问题: (1)哪些内存需要回收? (2)什么时候进行内存回收? (3)如何回收内存?   上篇文章文章我们已经讲解了Java内存运行时内存区域的各个部分,其中程序计数器、虚拟机栈和本地方法栈三个区域随线程而生随线程而灭;栈中的栈帧随着方法的

2016-03-20 22:37:12 431

原创 JVM之内存区域分配

JVM的内存模型,对象的分配

2016-03-20 17:06:21 2850 2

原创 Java之问(一)

如何强制执行垃圾回收?  (1)首先,垃圾回收是JVM自动处理的,我们不能强制致敬,尽管我们可以调用System.gc()。  (2)JVM不能保证GC能够直接开始回收。  (3)每一个class都从Object基础了finalize()方法。  (4)当垃圾回收器觉得应用中没有更多的引用对象存在时就会调用finalize()。因此我们手动调用finalize()并没有什么多大作用

2016-03-20 11:35:50 303

原创 JVM之Java程序与内存映射

什么是JVM       首先看下一个Java程序是如何在机器上执行的:      Java源程序(.java文件)-->Java编译器(如Eclipse) -->字节码(.class文件)-->JVM编译器--> 装配 -->机器码 --> 经过系统总线 -->微处理器-->逻辑门 -->电路 -->设备硬件.

2016-03-19 21:34:09 1096

原创 Java到底是值传递还是引用传递

在Java中,方法的参数传递永远是值传递,不存在引用传递。  实际上,如果一个方法的参数是一个对象,那么当传递这个对象的时候实际上是传递的一个对象的地址过来,而不是传递的一个引用(变量)更不是对象本身,所谓引用变量就是我们 A a = new A(),此a就是一个引用变量,它的值就是一个指向A对象的地址。如果我们把a作为某一个方法的参数传递过去,那么此时传递的仅仅是这个引用a的值(对象的地址)

2016-03-18 23:39:53 297

原创 finally会执行吗

如下代码,finally里的代码是否会执行?public class MainQueue { public static void main(String args[]) { System.out.println(MainQueue.test()); } public static int test() { try { return 0; } finally {

2016-03-18 23:11:54 362

原创 Lock & Condition

Synchronized同步块的不足      在多线程环境下保证线程同步的方法大多是使用synchronized关键字,但是这个关键字在某些环境下是很死板的。其主要缺点如下:     (1)如果一个线程已经在一个synchronized块中执行,另一个线程视图进入这个同步块,那么它必须等待直到当前占用这那个同步块的线程执行完并退出。如果线程一直没有进入同步块,那么那个等待的线程就一直

2016-03-18 12:17:11 349

原创 基于栈虚拟机和基于寄存器虚拟机的比较

基于寄存器的虚拟机和基于栈的虚拟机有什么不同?

2016-03-16 14:04:34 9632 2

原创 Dalvik虚拟机详解(上)

什么是Dalvik?    首先,每一个Android应用都运行在它自己的进程中也就是它自己的Dalvik虚拟机实例,也即每个app都有自己的dalvik虚拟机实例,他们都是私有的不共享的。Dalvik虚拟机一开始就被设计成可以在一个设备上高效的大量运行(Dalvik虚拟机实例)。Dalvik虚拟机执行器会执行.dex格式的文件。Dalvik虚拟机是基于寄存器的。什么是Zygote?

2016-03-15 17:44:20 6727

原创 一个APP是否可以没有Activity?

app是否可以没有Activity?能否实现一个没有界面的app?

2016-03-15 10:58:57 3010

原创 什么是字符串(String)的不变性?

Strnig的不变性是指什么

2016-03-07 14:39:12 5113 1

原创 如何正确停止一个线程

首先肯定是不能用Thread的stop()方法的,因为此方法是非常不安全的,而且已经被废弃了,那么在这里就给出一种官方的推荐方案。    private static Thread mThread; private static Thread mThread; static StringMain.MyRunnable mRunnable = new StringMain().new MyRu

2016-03-01 14:27:36 7586

原创 常用命令合集

1、查看所有Android设备上所有进程    手机连上电脑,cmd→adb shell,然后输入ps命令即可显示所有进程。

2016-03-01 09:41:01 272

Java静态代理与动态代理demo

这里提供了静态代理和动态代理的入门写法~一看即懂!

2015-12-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除