自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

关山口男子职业技术学院的猿猴

时光见证成长,技术成就未来

  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 排序算法之归并排序

归并排序的含义归并排序的含义可以分为两个部分:先递归下去,之后再两两合并,最后就是排序好的整体序列了。 具体思路:首先将整体序列分为两部分,之后对每个部分再次进行二分,循环前述的这些操作。直到两两分组之后的结果都为一个数字,之后比较两个数字的大小进行排序。成为一个排序好的小序列,之后和相邻的小序列再次合并,直到将所有的子序列合并完成,最终成为整体有序序列。

2017-09-03 14:38:35 308

原创 Synchronized的使用以及实现原理

Synchronized的基本使用Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:确保线程互斥的访问同步代码保证共享变量的修改能够及时可见有效解决重排序问题。从语法上讲,Synchronized总共有三种用法:  (1)修饰普通方法  (2)修饰静态方法  (3)修饰代码块  接下来我就通过几个例子程序来说明

2017-08-26 10:09:31 339

原创 Tcp协议保证可靠传输机制

我们知道TCP是传输控制协议,面向连接,保证数据可靠传输的。UDP是用户数据报协议,尽最大能力交付。那么TCP是如何保证数据的可靠传递的呢?TCP保证可靠数据传输的方式:1. 数据包检验2. 超时重传机制3. 确认应答机制4. 对失序数据包重排序5. TCP的流量控制与拥塞控制首先先看下TCP首部格式(TCP首部最少20字节):一、数据包检验过程:TCP

2017-08-21 20:48:22 1280 2

原创 Android Volley源码解析

写在前面最近在整理之前写的项目,当时开发的时候对于Volley没有深入的研究过,这次拿出来进行下源码分析。虽然Volley框架目前已经有些过时,但是里面的思想对于个人来说还是很有成长价值。整体过程描述我们使用Volley进行联网获取接口数据的整体流程是怎样的呢?我们很有必要在深入代码细节讲解之前从整体上把握下,这样将有助于我们更好的理解volley的源码首先,我们要使用volley进行网络访问获取数

2017-07-13 20:42:58 373

原创 排序之直接插入排序

直接插入排序简介直接插入排序最适合的场景如下:对于一个有序的序列来说,当我们将另外一个数字添加到该有序序列中的时候,依次从该序列的右边开始比较,如果要插入的值小于序列中当前位置的值,那么序列中该位置的值后移一位,以此类推,直到找到第一个不大于要插入的数值为止,最后将要插入的这个数值插入到合适位置,这就完成了一次直接插入排序的过程。对于无序数列来说,我们知道要插入的第i个数据之前的前i-1个数据都是有

2017-07-12 13:30:29 789

转载 彻底弄懂HTTP缓存机制及原理

前言Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的一个基础环节,同时对于有志成为前端架构师的同学来说是必备的知识技能。但是对于很多前端同学来说,仅仅只是知道浏览器会对请求的静态文件进行缓存,但是为什么被缓存,缓存是怎样生效的,却并不是很清楚。在此,我会尝试用简单明了的文字,像大家系统的介绍HTTP缓存机制,期望对各位正确

2017-07-11 22:09:02 351

原创 排序之折半插入排序

二分查找(折半插入)排序属于插入类排序的一种,可以说是直接插入排序的一种改进版:主要改进在查找插入位置上节省了时间。直接插入排序需要依次在有序的序列里进行比较,较大值右移一直到找到合适的位置进行插入。二分查找排序节省了查找的时间。对于一个有序的序列来说,采用二分查找的方式来找到插入点比直接便利比较所费的时间少。使用二分查找排序找到插入点之后,依次后移插入点之后的数据,然后将要插入的值放进去,完成

2017-07-11 14:05:15 363

原创 排序之冒泡排序

冒泡排序思想对于一个数字序列来说,我们可以依次比较相邻的两项数字,假如相邻的两项分别记为A和B。如果A的值大于B,那么进行A、B之间顺序的交换,将较大值移到后面。之后再用第二个值与第三个值进行比较,将较大的值放到后面,以此类推。

2017-07-08 13:50:09 425

原创 排序之快速排序

快速排序思想快速排序简称“快排”,快速排序采用的思想是分治思想。快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。之后递归快速排序基准值的两侧,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正 确位置,排序完成

2017-07-07 13:46:21 305

原创 设计模式之装饰模式

如果想对某个类进行功能扩充,一般就会想到使用继承(对拓展开放,对修改关闭的开闭原则)。如果我们不使用继承的话还有没有其他方式来实现呢?答案是有的:就是使用装饰模式; 装饰模式也叫做包装模式,结构型设计模式之一。可以用来动态透明的方式来拓展对象的功能。可以看做是继承关系的一种补充(替代)。装饰模式的定义动态的为一个对象添加一些额外的职责。就增加功能来说,装饰模式相比继承更为

2017-06-29 21:32:23 246

原创 深入JVM之理解JVM内存区域与对象创建、内存布局

java语言通过IDE的编译生成class文件,然后java虚拟机加载class文件到内存,之后运行在java虚拟机上。在这样的一个宏观的过程中,JVM的内存分区到底是什么样的呢?他们的作用又是什么呢?

2017-06-13 13:33:55 447

原创 设计模式之适配器模式

我们知道所有的电器基本上都有电源转换器,因为家用的电压都是220V,电器的额定电压肯定没有那么高,所以需要一个电源适配器来进行“中和”,这样,我们的电器就可以安全的进行插电使用。上述的这种案例就是适配器的一种典型的应用了。那么设计模式中的适配器是做什么用的呢?类似于生活中的适配器:它是将两个不兼容的类融合在一起,将这两个接口进行兼容,在不修改原有代码的情况下满足需求。

2017-06-10 22:44:21 364

原创 设计模式之观察者模式

什么是观察者模式?定义对象间的一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖他的对象都会得到通知并被自动更新。观察者模式用在哪?观察者模式的典型应用就是在类似的“订阅—发布”系统。我们都用过邮箱,这里以QQ邮箱为例,我们可以在邮箱中进行订阅某个订阅号,之后每次我们就可以收到该订阅号发送过来的资讯信息。在这里我们就相当于观察者,订阅号就是被观察者,被观察者更新了数据,我们观察者就可以看到具

2017-06-09 11:36:11 261

原创 设计模式之策略模式

策略模式通俗的来讲是应用于类似于这样的场景:比如一个人想从A地到B地,他可以选择的方式有好几种:1. 乘坐公交 2. 乘坐的士 3. 乘坐地铁。这三种不同的方式都可以最后到达目的地,只是采用的“策略”不同,一般我们可以在代码中通过if-else这样的分支来达到使用不同的方式去执行。但是这样的方式存在着代码逻辑复杂,越来越难以维护(随着具体执行方式的增加)这也就是“策略模式”需要解决的

2017-06-06 20:59:38 415 1

原创 设计模式之工厂方法模式

工厂方法模式属于创建设计模式之一,是一种比较简单的设计模式,应用比较广泛。工厂方法模式的定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法模式适合用于复杂对象的创建过程,而通过new就可以实例化的对象不需要使用该模式。首先新建一个“产品”抽象类public abstract class AudiCar {/** * 汽车抽象产品类 * 定义汽车的一个行为方法,车可以启动开走

2017-06-04 22:12:40 227

原创 设计模式之单例模式

单例模式是应用最广的设计模式之一。为什么会使用单例模式呢?许多时候我们整个系统只允许有一个全局对象,然后用这个对象来协调系统整体的行为;或者我们要实例化的类需要的资源较多,耗费时间比较久,那么我们也可以使用单例模式在整个程序运行期间维持一个唯一的实例对象。

2017-06-02 21:44:54 219

原创 基于binder的跨进程通讯之使用AIDL实现Demo

写在前面 上一篇我们介绍了binder机制的基本知识,如果还不太了解binder机制,可进行点击查看:让你一看就明白的Binder机制binder和AIDL的关系从应用层的角度来说,Binder类是android中的一个类,它实现了IBinder接口,是binder机制在应用层的核心代理,Binder是客户端和服务端进行通讯的“桥梁”。

2017-05-16 17:43:31 694

原创 让你一看就明白的binder机制

写在前面网上有很多学习android binder机制的文章和博客,但是大部分或者是深入native不能自拔,看的云里雾里(本人一直使用java,C语言较渣);或者是只讲理论缺乏实际编程的过程。所以就想总结下binder的基本理论并附带一个基于Aidl的进程间的通讯的Demo,希望能对初步接触android binder机制的小伙伴们提供些帮助。当然本人能力有限,如有错误之处还请指教。binder机

2017-05-15 18:00:07 1492

原创 显式Intent与隐式Intent的使用

Android中的显式Intent与隐式Intent的使用

2017-05-10 16:09:26 844

原创 Android中Activity生命周期的深度剖析

Android中Activity生命周期的深度剖析activity生命周期的简单知识汇总之前我曾经写过一篇很简单的关于activity生命周期的博客,如果读者有这样的需求的话可以点击下面进行查看。activity的简单生命周期的介绍activity生命周期的深度介绍与剖析onStart和onResume,onPause和onStop的区别从描述上来看,这两组方法的功能差不多一样,那么它们的

2016-06-13 09:32:43 446

原创 MAC 下Android Stdio的NDK环境搭建以及开发初步

在mac系统下使用AS进行jni开发需要使用到NDK,下面来介绍下在mac下配置NDK环境以及进行jni调用的实例初步。首先介绍下JNI是干啥的:JNI是Java语言提供的Java和C/C++相互沟通的机制,Java可以通过JNI调用本地的C/C++代码,本地的C/C++的代码也可以调用java代码。JNI 是本地编程接口,Java和C/C++互相通过的接口。Java通过C/C++使用本地的代码的一个关键性

2016-05-22 17:57:43 2070

原创 Android消息机制(Handler、MessageQueue、Looper)详细介绍

Android的消息机制其实在android的开发过程中指的也就是Handler的运行机制,这也就引出了android中常见的面试问题:简述Handler、Looper、MessageQueue的含义,以及它们之间的关系简述Handler的运行机制说明Handler、Looper以及Message之间的关系Handler机制为什么这么重要呢?我们知道android设备作为一台移动设备,不管是

2016-05-18 11:01:18 5645 2

原创 由Looper中的ThreadLocal谈起--论ThreadLocal的使用

这两天在对android的消息机制(handler)进行深入的了解和学习,在研究相应的源码的过程中,发现在Looper中被使用的ThreadLocal,对于它的作用出于好奇便进行了一些比较简单的分析,现在将我的学习心得公布如下:ThreadLocal这个类,相信对于之前从来都没有接触过这个类的程序猿来说,也许会把它认为是一个线程类。其实不然,它的作用可以大致理解为在各个线程中用来存储数据。需要

2016-05-12 23:11:34 2969

转载 android 性能优化之布局优化-----ViewStub

ViewStub继承了View,他非常的轻量级并且宽高都为0,因此它本身不参与任何布局和绘制过程,ViewStub的意义在于按需加载所需的布局文件。通过viewStub就可以做到在使用的时候进行加载,提高了程序初始化时的性能。

2016-05-08 11:39:11 684

原创 android修改系统源码之实现蓝牙自动配对以及取消开机锁屏

最近一段时间在公司项目开发中,遇到了使用蓝牙进行数据传输,但是还必须要求其中的一个搭载android系统的蓝牙设备默认接受所有来进行蓝牙连接的设备。我们知道在如今的android系统中,使用蓝牙进行配对时系统会随机生成的配对码并以对话框的形式展现给用户,让用户来选择是否可以进行配对。所以在尝试在应用APP上实现比较困难的情况下,转向了修改android源码实现该功能的方法。首先我的androi

2016-03-29 15:23:29 4042

原创 android之ViewPager的使用详解

ViewPager在如今的android开发中越来越火热,广泛用于各种各样的APP中进行类似于“广告”效果的展示。那么下面就让我们看看如何一步步的去实现viewPager的效果。

2016-01-18 16:16:36 617

原创 Android系统中的Activity简介

Android系统中的Activity简介Android系统中的Activity简介写一次博客就是一次成长,回顾一篇博客就是一次升华!Activity简介七个生命周期方法特定环境下生命周期方法的调用过程大致归纳Activity状态情况如下一些环境下Activity生命周期调用流程实际代码展示Activity简介 ** Activity是任何作为android开发人员都不可能不知道

2015-11-07 21:33:14 715

面试资源--android客户端方向

面试资源汇总---java基础,计算机网络,操作系统,设计模式等等

2017-10-17

空空如也

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

TA关注的人

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