自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (3)
  • 收藏
  • 关注

转载 设计模式的分类与设计原则

一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程池

2017-03-22 10:34:11 299

原创 Activity的几种LaunchMode及使用场景

standard 模式这是默认模式,每次激活Activity时都会创建Activity实例,并放入任务栈中。使用场景:大多数Activity。singleTop 模式如果在任务的栈顶正好存在该Activity的实例,就重用该实例( 会调用实例的 onNewIntent() ),否则就会创建新的实例并放入栈顶,即使栈中已经存在该Activity的实例,只要不在栈顶,都会创建新的实例。使用场景如新闻类或

2017-03-07 11:16:48 519

原创 如何理解Activity,View,Window三者之间的关系

这个问题真的很不好回答。所以这里先来个算是比较恰当的比喻来形容下它们的关系吧。Activity像一个工匠(控制单元),Window像窗户(承载模型),View像窗花(显示视图)LayoutInflater像剪刀,Xml配置像窗花图纸。1:Activity构造的时候会初始化一个Window,准确的说是PhoneWindow。2:这个PhoneWindow有一个“ViewRoot”,这个“ViewRoo

2017-03-07 11:15:54 1906 1

转载 startService与bindService的区别

Android执行Service有两种方法,一种是startService,一种是bindService。下面让我们一起来聊一聊这两种执行Service方法的区别。 1、生命周期上的区别执行startService时,Service会经历onCreate->onStartCommand。当执行stopService时,直接调用onDestroy方法。调用者如果没有stopService,Servi

2017-03-07 10:31:26 329

转载 java中thread的start()和run()的区别

1、start()方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码: 通过调用Thread类的start()方法来启动一个线程, 这时此线程是处于就绪状态, 并没有运行。 然后通过此Thread类调用方法run()来完成其运行操作的, 这里方法run()称为线程体, 它包含了要执行的这个线程的内容, Run方法运行结束, 此线程终止, 而CPU再运

2017-03-05 18:42:00 225

转载 Java反射机制详解

Java反射机制详解 - Java初级码农 - 博客园 Java初级码农随笔 - 44, 文章 - 0, 评论 - 5, 引用 - 0 Java反射机制详解  java 反射 定义 功能 示例概要:Java反射机制详解| |目录1反射机制是什么2反射机制能做什么3反射机制的相关A

2017-03-05 10:33:08 437

原创 final、finally和finalize的区别

对比一下这三个关键字之间的区别:

2017-03-05 10:02:30 256

原创 Java异常

关于Java异常:

2017-03-05 09:53:33 222

转载 java中的移位运算符:<<,>>,>>>总结

java中有三种移位运算符1、<< : 左移运算符,num << 1,相当于num乘以2 2、>> : 右移运算符,num >> 1,相当于num除以2 3、>>> : 无符号右移,忽略符号位,空位都以0补齐下面来看看这些移位运算都是怎样使用的/** * @author Jone Hongten * @create date:2013-11-

2017-03-05 09:27:48 336

原创 二叉查找树

二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; (3)左、右子树也分别为二叉排序树; 如下图所示: 1、查询二叉查找树

2017-02-26 15:18:41 287

原创 二叉树

二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果其终端结点数为n_0,度为2的结点数为n_2,则n_0=n_2+1。一棵深度为k,且有2^k-1个节点称之为满二叉树;深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为

2017-02-16 18:27:29 701

原创 散列表

基本概念 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为

2017-02-16 16:04:54 285

原创 链表

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个

2017-02-15 20:35:19 318

原创 栈和队列

栈:又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 栈的基本操作原则是先进后出 队列:队列是一种特殊的线性表,特殊之处在于它只允许在表的

2017-02-15 20:17:11 252

原创 深入理解Android虚拟机四------垃圾收集

1、常见的垃圾收集策略 、、、、、、、未完

2017-02-15 20:03:04 313

原创 深入理解Android虚拟机三------内存分配策略

Java虚拟机 Java的内存分配管理 1、Java栈 存放的数据: Java栈图 2、Java堆: 堆内存的三个部分 3、常量池: 运行时的数据区域 Java虚拟机运行时的数据区结构 1、程序计数器 2、Java虚拟机栈VM Stack 3、本地方法栈Native Method Stack 4、Java堆 5、方法区 6

2017-02-14 21:29:37 611

原创 深入理解Android虚拟机二------虚拟机概述

Java虚拟机: 1、Java虚拟机的数据类型: 2、Java虚拟机的体系结构: Java虚拟机结构框图 Android虚拟机—Dalvik VMDavlik VM架构 Android应用的编译和运行流程 Android的初始化流程

2017-02-13 10:28:54 544

原创 深入理解Android虚拟机一------Android系统的结构

Java虚拟机和Android虚拟机: 进程生命周期: Android内核和Linux内核的区别:

2017-02-13 10:04:52 355

原创 桶排序

基本思想: 将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是 比较排序,他不受到 O(n log n) 下限的影响。 例如要对大小为[1..1000]范围内的n个整数A[1..n]排序,可以把桶设为大小为10的范围,

2017-01-13 20:06:24 217

原创 基数排序

基本思想: 将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。 然后 从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。演示:Java代码:import java.util.Arrays;public class LinearTimeSorter { /** * 基数排序。将每个int(32位)拆分为8个4位

2017-01-13 19:59:43 234

原创 计数排序

基本思想: 对每一个输入元素x,确定出小于x的元素个数。有了这一信息,就可以把x直接放到它在最终输出数组中的位置上。例如,如果有17个元素小于x,则x就属于第18个输出位置。计数排序是一个非基于比较的排序算法。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。当然这是一种牺牲空间换取时间的做法,而且当O(k)>O*(n*log(n))的时候

2017-01-13 19:51:19 281

原创 快速排序

基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值

2017-01-13 19:37:23 348

原创 堆排序

堆:堆数据结构是一种数组对象,它可以被视为一科完全二叉树结构。它的特点是父节点的值大于(小于)两个子节点的值(分别称为大顶堆和小顶堆)。它常用于管理算法执行过程中的信息,应用场景包括堆排序,优先队列等。堆排序:堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是

2017-01-13 19:26:20 433

原创 冒泡排序

冒泡排序(Bubble Sort)重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。冒泡排序算法的运作如下: 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3、 针对所有

2017-01-08 10:49:30 413

原创 分治法

分治法的设计思想是:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。分治法策略是:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。这种算法设计策略叫做分治法。分治法所能解决的问题一般具有以下几个特征: 1

2017-01-08 10:38:40 600

原创 插入排序

插入排序应该是最简单的排序,其原理将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2),是稳定的排序方法。 插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已

2017-01-08 10:24:55 445

转载 底部弹出对话框

private void showDialog() {//自定义的xml布局文件View view = getLayoutInflater().inflate(R.layout.photo_choose_dialog, null);//设置Dialog的透明主题Dialog dialog = new Dialog(this, R.style.transparentFrameWind

2016-05-19 21:53:19 331

原创 开始

我也尝试着自己写博客。。。。。。。。。。。。。。。。。

2016-05-19 21:10:28 198

集合的几个运算

问题描述] 编制一个能演示执行集合的并、交和差运算的程序。 [基本要求] (1)集合的元素限定为小写字母[’a’……’z’]。 (2)演示程序以用户和计算机的对话方式实现。

2012-12-29

停车场的问题

     [问题描述]   设停车场是一个可停放n辆汽车的下狭长通道,且只有一个大门可供汽车进出,汽车在停车场内按车辆到达的时间先后排序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车厂的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该车开出大门外,其他车辆再按照原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制上述要求的管理模拟程序。 [基本要求]    以栈模拟停车场,以队列模拟车场外的便道,按照从终端输入的数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“达到”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输入汽车在停车场内或便道上的停车位置;若是车辆到达,则输出汽车在停车场内或便道上的停车位置,若是车辆离去,则输出在汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。      [测试数据]    设n=2,输入数据:    (”A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)    其中:’A’表示到达(Arrival);’D’表示离去(Departure),‘E’表示输入结束(End)。      [实现提示]    需另设一个栈,临时停放为要给离去的汽车让路而从停车场退出来的汽车,也哟个顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的排照号码和进入停车场的时间。

2012-12-27

迷宫的问题

一个关于迷宫的c源代码程序 里面有很多创新的地方 适合加深对c的理解

2012-12-27

空空如也

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

TA关注的人

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