- 博客(13)
- 资源 (11)
- 收藏
- 关注
原创 android service详解
一、Service的两种启动方式startService和BindService,两者的启动Service的生命周期如下所示: 两种方式区别有前者Service生命周期不跟谁Activity,后者生命周期跟随Activity,一旦Activity被销毁,绑定的Service也就被销毁了。第二,两者的回调函数也有区别,如上图,停止服务前者的回调是直接onDestroy(),后者的回调是o...
2018-07-31 10:59:00 182
原创 Exception与Error区别
Exception包括RuntimeException和一般Exception。RuntimeException指程序在运行时才产生的异常,因此也叫作非检查型异常;一般Exception是程序在编译期间产生的异常,程序员必须通过try-catch进行捕获异常,因此也叫检查型异常。example:IOException。。。Error指jvm导致的内部错误,类似系统崩溃等。三者之间区...
2018-07-31 09:28:05 195
原创 final、finally与finalize区别
final是java关键字,用来修饰类,方法或变量;当修饰类的时候,该被不可以被继承;当修饰方法的时候,该方法不可被重写;当修饰变量的时候,该变量就是常量,且不可以被重新赋值。finally是try-catch语句块的一部分,表示最后执行的一种机制,通常在finally里进行一些资源的关闭,回收。finalize是Object对象内部一个方法,表示对象即将被垃圾回收器回收的时候,对象会执行...
2018-07-31 09:17:02 106
原创 互斥量、信号量、临界区及事件区别
举个通俗易懂的例子,需要被同步访问的资源就好比是公共厕所:1. CRITICAL_SECTION(临界区): 公厕管理人员每次允许一个人进入,直到他出去了,下一个人才可以进入。2. Event(事件): 他告诉你公厕里面当前的状态。但是,你可以闯进去。他不会管你。要干什么取决于你。3. Semaphore(信号量): 他允许公厕里面有N个人同时用,再多的人就必须排队。4. mutex(互斥...
2018-07-30 11:46:45 978
原创 java多线程同步方式总结
synchronized修饰代码块或者修饰函数 使用volatile变量 使用重入锁 ReenreantLock类的常用方法有: ReentrantLock() : 创建一个ReentrantLock实例 lock() : 获得锁 unlock() : 释放锁 //只给出要修改的代码,其余代码与上同 class Ba...
2018-07-29 17:30:01 143
转载 android权限机制(下)
在android permission权限与安全机制解析(上)篇博客中,我已经详细介绍了android相关系统permission和自定义permission,以及一些权限机制和安全机制。这篇博客主要将会介绍到android 6.0的相关权限更改,原理和相关的处理方式,解决方法等。 就以...
2018-07-28 18:35:34 1834
转载 android权限机制
android permission权限与安全机制解析(上) <div class="article-info-box"> <div class="article-bar-top d-flex"> <span class="c-gray">置顶&l
2018-07-28 18:32:07 306
原创 java多线程实现方式
四种实现多线程方式:继承Thread类 实现Runnable接口 实现Callable接口,用FutureTask包装器来实现,call方法有返回值import java.util.concurrent.Callable;public class SomeCallable<V> implements Callable<V> { @Override p...
2018-07-28 14:20:48 80
原创 java单例总结
安全的懒汉式单例做法如下,valatile作用是当某个线程修改变量之后,直接将变量值回写到内存中,其他线程可以马上看到这个值。没有使用volatile情况下,每个线程都会在工作内存(类似于寄存器和高速缓存),实例对象都存放在主内存中,在每个线程要使用的时候把主内存中的内容拷贝到线程的工作内存中。使用volatile关键字修饰后的变量,保证每次修改了变量需要立即写回主内存中,同时通知所有的该对变量的...
2018-07-28 12:58:51 113
原创 Android内存泄露原因及优化总结
先讲一下内存泄露、内存溢出与内存抖动的含义内存泄露就是一个对象已经使用完,可以被回收,但由于其他原因导致没有被GC导致内存泄露,危害?内存泄漏对于app没有直接的危害,即使app有发生内存泄漏的情况,也不一定会引起app崩溃,但是会增加app内存的占用。内存得不到释放,慢慢的会造成app内存溢出。解决内存泄漏目的就是防止app发生内存溢出。内存溢出(out of memory)是指程序ne...
2018-07-27 10:48:14 1517
原创 LeakCanary简介
LeakCanary原理简介 监听 Activity 的生命周期 在 onDestroy 的时候,创建相应的 Refrence 和 RefrenceQueue,并启动后台进程去检测 一段时间之后,从 RefrenceQueue 读取,若读取不到相应 activity 的 Refrence,有可能发生泄露了,这个时候,再促发 gc,一段时间之后,再去读取,若在从 Ref...
2018-07-26 12:22:42 144
原创 计算机网络简要总结
一、计算机网络含义1、计算机网络由若干结点(结点包括计算机、路由器、集线器或交换机等)及连接各结点的链路组成;而因特网就是大量的网络连接在一起组成的庞大网络。用户通过ISP(Internet Service Provider)服务连接到因特网。2、结点路由器采用分组交换方式转发数据3、计算机网络按作用范围分类 广域网:几十到几千公里,一般是跨国家 ...
2018-07-24 12:07:31 139
原创 JVM虚拟机简单总结
JVM内存结构包括:程序计数器,虚拟机栈,方法区(元空间),本地方法栈,堆五部分。堆:所有对象都会在堆中分配空间,其中常量池,字符串常量池及运行时常量池都只是存储对象的引用。方法区:存储已加载到jvm的类的元数据信息(metadata)。本地方法栈:虚拟机加载本地方法使用的空间虚拟机栈:执行方法都会创建一个栈帧用于存储局部变量表、操作栈、动态链接、方法出口等信息,当前线程正在...
2018-07-17 09:26:43 188
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人