- 博客(23)
- 收藏
- 关注
原创 Java线程与线程池
Thread面试点1,并行和并发:拿一个四车道的高速公路来比喻,车道上同一时间可以并行四辆车,这个数字4就是并行能力;这个车道每1s可以通过20辆车,这个数字20就是并发量。并发是带有单位时间限制的。2,手动终止线程:interrupt():isInterrupted():线程中断标志位3,线程的start()只能被调用一次,第二次调用会报错4,yield():让出CPU的执行权5,...
2020-04-04 22:22:11
173
原创 Android面试-Java基础
#Java垃圾回收机制Java中程序员不需要显示去释放一个对象的内存,由虚拟机自行执行。JVM有一个垃圾回收线程,它是低优先级的,只有的虚拟机空闲或当前堆内存不足时才会出发执行,扫描没有被引用的对象,并添加到要回收的集合中,进行回收。#Java实现阻塞队列方式以:、、、/**使用wait和notify实现QueueBlockingQueue: 顾名思义,首先它是一个队列,并且...
2020-04-01 22:24:16
203
转载 Android的权限笔记
6.0权限的基本知识,以下是需要单独申请的权限,共分为9组,每组只要有一个权限申请成功了,就默认整组权限都可以使用了。//联系人权限 group:android.permission-group.CONTACTS permission:android.permission.WRITE_CONTACTS permission:android.permission.GET_AC...
2019-06-26 12:32:54
228
转载 Http协议的格式及实例
Http协议位于网络五层结构的最上层应用层。它建立在TCP协议之上,是个无状态的协议,典型的应用是网络浏览器以及移动端数据传输。本文将介绍Http请求的格式,并对请求数据的各部分做一个详细介绍。处于不同层次的网络协议Http协议包括多个方法:Get,Post,Put,Delete,Head,Patch,Options等。我们重点关注最常用的Get和Post请求。一次请求包括两个过程...
2019-06-20 14:55:36
832
原创 Android事件传递关于View的OnTouchEvent返回true时
关于事件分发中,当OnTouchEvent中ACTION_MOVE是否会执行的分析。1,当MyView的OnTouchEvent返回false时:come.isuixin.debug E/MyViewGroup: onInterceptTouchEvent ACTION_DOWNcome.isuixin.debug E/MyView: onTouchEvent ACTION_DOW...
2019-05-31 18:28:14
3965
转载 Android进程保活
Android 进程拉活包括两个层面:A. 提供进程优先级,降低进程被杀死的概率B. 在进程被杀死后,进行拉活本文下面就从这两个方面做一下总结。1. 进程的优先级Android 系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,最终需要清除旧进程来回收内存。 为了确定保留或终止哪些进程,系统会根据进程中正在运行的组件以及这些组件的状态,将每个进程放入“重要性层次...
2019-05-20 23:56:48
227
原创 Android应用程序的启动
1,ActivityManagerService,通过Socket发送新建应用进程的请求到Zygote进程。2,Zygote进程fork(通过复制自身)应用进程。因为Zygote进程内部有虚拟机实例,所以应用进程就有一个拷贝的虚拟机,除此之外还可以获得一个Binder线程池和一个消息循环(就是Handler机制)。如下代码:public final class ActivityM...
2019-05-20 18:53:51
184
原创 Android系统的启动流程
Android系统的启动分为三个阶段:第一阶段:BootLoader引导当我们按下开机键的时候会通过一段引导程序启动,BootLoader就是为操作系统启动之前做的准备,初始化硬件设备以及给内核传递必要的数据。第二阶段:linux内核启动由引导程序初始完硬件设备后便开始触发linux内核启动。linux内核初始化完成之后开始加载Android系统。第三阶段:Android系...
2019-05-20 17:14:25
3510
1
转载 RecyclerView与ListView
为何google推出了RecyclerView,它与ListView相比有什么优势呢?RecyclerView是否可以完全替代ListView呢?在缓存机制原理方面ListView与RecyclerView缓存机制原理大致相似。都是离屏的ItemView即被回收至缓存,入屏的ItemView则会优先从缓存中获取。当然他们是的实现细节还是有差异的 。ListViewListView有...
2019-05-19 17:17:09
293
原创 Glide源码学习
源码学习先看用法:Glide.with(this).load(url).into(imageView);第一步:Glide.with(this)得到的是一个RequestManager.//可以看到with返回的就是一个RequestManager对象public class Glide{... public static RequestManager with(Contex...
2019-05-18 13:52:02
189
原创 Picasso、Glide及Fresco对比
Picasso:是Square公司开源的项目,功能强大调用简单://用法1:加载全尺寸的图片到内存,然后让GPU来实时重绘大小Picasso.with(this) .load(“http://**.jpg“) .into(ivImgPicasso);//用法2:需要去设置ImageView大小值Picasso.with(this) .load(“http://**.jpg“) .r...
2019-05-18 11:13:13
3040
1
转载 Java引用
1、String的引用:下列代码执行后的结果为:public class Test {public static void main(String[] args) { StringBuffer a = new StringBuffer("A"); StringBuffer b = new StringBuffer("B"); operator(a, b)...
2019-05-17 17:56:00
687
原创 HTTP那些事儿
1,为什么TCP链接需要三次握手,断开需要四次挥手? 客户端------------>服务端 : 服务端确定了客户端的发送能力 服务端------------>客户端:客户端确定了服务端的接受能力和发送能力 客户端------------>服务端:服务端确定了客户端的接收能力总结:只有通过这三次握手,客户端才能确定服务端的接收和发送消息能力正常,服务端也能确...
2019-05-14 15:58:05
117
原创 git命令
1. 前言 今天遇到一问题,打开git base时特别的慢,首先展示如下图。由于没有遇到过这个问题,以为是git出问题,于是下载重新装依然这个样子,百度一番别人说因为某某原因git base变慢啦,解决方案并没有解决我的问题,于是只能...
2019-05-14 15:57:17
166
原创 Android面试那些事儿
1,Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。2,什么情况会造成内存抖动?在onDraw()方法中new实例会造成内存抖动,这是因为onDraw()会被多...
2019-05-14 15:56:36
142
原创 数据结构
1,常用数据结构简介数据结构是指相互之间存在一种或多种关系的数据元素的集合,和集合中数据元素的关系组成。(数据机构=数据元素+元素关系)。常用的数据结构有:数组、栈、队列、链表、树、图、堆、散列表。1) 数组 栈 堆 队列 链表 树 散列表(哈希表) 结构描述 内存中连续存储多个元素的结构 特殊线性表,只可在栈顶操作,先进后出...
2019-05-14 15:56:07
156
转载 Jetpack学习(一)
1. Andorid Jetpack简介 谷歌推出了Jetpack框架,极大的方便了开发者的日常工作,因为它解决了很多开发中的问题,对代码的数据逻辑和UI界面深层解耦,实现数据驱动型的UI。 Jetpack框架中的常用组件有: Lifecycle View...
2019-05-14 15:54:37
1658
转载 关于Java中的String
1.Java中哪些类是不能被继承的? 不能被继承的是那些用final关键字修饰的类。一般比较基本的类型或防止扩展类无意间破坏原来方法的实现的类型都应该是final的,在java中,System,String,StringBuffer等都是不能被继承的。2.String是基本数据类型吗? 基本数据类型包括byte short char int long float...
2019-05-14 15:04:44
148
原创 App架构学习笔记
1,APP架构设计 层次化(上层依赖下层,下层不能依赖上层。要分层次,参照android系统架构是怎样分层次的) ; 模块化(例如网络请求模块); 控件化(具有特定功能可以封装成一个控件)2,页面架构MVC MVP MVVM 类型 创建过程 Activity/Fragment 特点 缺点 MVC C-->M+V(c...
2019-03-26 17:24:39
346
原创 Android源码中的巧妙的位运算
与或非是啥?常用的位运算符: “&” “|” “~”(与 或 非)。1,“&”运算符的运算规则:两个运算位同时为1时结果为“1”,否则为“0”。 如:1&0=0; 1&1=1; 0&0=0; ...
2018-11-16 16:43:01
695
转载 简单工厂模式解决的问题
应用场景: 假设程序中有个Computer类需要组合一个输出设备。我们让Computer类组合了一个Printer对象,如果有一天系统需要重构,要使用BetterPrinter来代替Printer,这就需要打开Computer的源码来进行修改。那如果系统中不只有Computer组合了输出设备,而是有一千 一万个类组合了这个功能呢,一个一个改显然工作量太大。因此在设计的时候就有一种方式能...
2018-05-22 11:10:07
2802
原创 关于“==”和 equals
Java的八大基本数据类型中除了boolean,其他七种:byte、short、int、long、float、double、char都属于数值类型。 比较运算符“==”:等于,如果进行比较的两个操作数都是数值类型,即使他们的数据类型不同,如果他们的值相等,也都将返回true.例如:97=='a'返回true,5.0==5也返回true。如果两个操作数都是引用类型,那么只有当两...
2018-05-21 10:36:29
168
原创 垃圾回收机制归纳
什么是垃圾回收? Java程序员不需要直接控制内存回收,java程序的内存分配和回收都是由JRE在后台自动进行的。JRE会负责回收那些不再使用的内存,这种机制被称为垃圾回收(GC); 垃圾回收是动态存储管理技术,它自动释放不再被程序引用的对象,按照特定的垃圾回收算法实现资源的自动回收功能。 Java的堆内存是一个运行时数据区,用以保存类的实例对象,java虚拟机的堆内存存...
2018-05-11 14:16:39
196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人