9 钱海峰

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 3w+

状态

2017-09-24 14:48:39

Android头像加载框架

好久没更新博客,最近在完成实习任务,自己研究出了一套头像加载机制,虽然谈不上高大上,但是使用起来确实比较方便,可以用在任何Android应用中需要头像的地方。先说一下这个头像加载的思路:      首先加载本地      如果本地加载成功           检查本地头像是不是最新的,如果是最新的,不操作,如果不是最新的,加载网络最新      如果本地加载失败

2016-11-06 14:22:57

MySQL 性能优化的最佳 20+ 条经验

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过 多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。

2016-09-27 20:43:07

回溯算法经典应用之—迷宫问题 (Java)

1、回溯算法简介回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。用回溯算法解决问题的一般步骤为:1)、定义一个解空间,它包含问题的解。2)、利用适于搜索的方法组织解空间。3)、利用深度优先法搜索解空间。4)、利用限界函数避免移动到不可能产生解的子空间。问题的解空间通常是在搜索问题的解的过

2016-08-24 17:28:42

回溯算法经典应用之—N皇后问题 (Java)

1、回溯算法简介回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。用回溯算法解决问题的一般步骤为:1、定义一个解空间,它包含问题的解。2、利用适于搜索的方法组织解空间。3、利用深度优先法搜索解空间。4、利用限界函数避免移动到不可能产生解的子空间。问题的解空间通常是在搜索问题的解的过程中动态产生

2016-08-24 15:37:35

快速排序 (Java)

快速排序其实是对冒泡排序的升级,都属于交换排序类,只不过它的实现,增大了记录的比较和移动的距离,将关键字较大的记录从前面直接移动到后面,关键字较小的记录从后面直接移动到前面,从而减少了总的比较次数与移动次数,它的基本思想是通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。packag

2016-08-24 10:50:31

归并排序 (Java)

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。它的原理是假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度是1,然后两两归并,得到n/2个

2016-08-24 10:40:11

堆排序 (Java)

堆排序就是利用堆(大顶堆或者小顶堆)进行排序的方法,这个先假设用大顶堆,它的基本思想是,将待排序的序列构造成一个大顶堆。此时,整个序列的最大值就是堆顶的根节点,然后将它移走,其实就是将其与对数组的末尾元素交换,此时末尾元素就是最大元素,然后将剩余的n - 1个序列重新构造成一个堆,这样就会得到n个元素中的次大值,如此反复,完成排序。代码如下:package com.qian.sort;

2016-08-24 10:27:19

希尔排序 (Java)

希尔排序也是一种插入式排序,是对直接插入排序的一种改进,希尔排序就是将待排序序列分组,这种分组是将相隔某个增量的记录组成一个子序列,实现跳跃式的移动,使得排序的效率提高。其实这个增量选取还是比较关键的,选取的不当可能导致排序结果不对。可究竟应该取什么增量好,目前还是一个数学难题。Java版的代码:package com.qian.sort;import java.util.Arrays

2016-08-24 10:15:42

直接插入排序 (Java)

直接插入排序是一种稳定的排序算法,它的基本操作就是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。排序的过程可以联想一下玩扑克牌的时候摸牌的过程,每摸一张牌,都会理一次牌,也就是插入排序的原理。Java版的代码如下:package com.qian.sort;import java.util.Arrays;public class Inser

2016-08-24 10:02:45

简单选择排序 (Java)

简单选择排序就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录交换。简而言之,就是每一趟记录最小值得索引值,然后交换,是一种稳定的排序算法。Java版的代码如下:package com.qian.sort;import java.util.Arrays;public class SelectSort { public void sele

2016-08-23 20:00:32

排序之冒泡排序 (Java)

冒泡排序是一种最简单的排序算法,是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果范旭则交换,直到没有反序的记录为止,是一种稳定的排序算法。Java版的代码如下:package com.qian.sort;import java.util.Arrays;public class BubbleSort { void bubbleSort(int[] nums) {

2016-08-23 19:54:38

Java中的static关键字深入解析

一、static代表着什么在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块。Java把内存分为栈内存和堆内存,其中栈内存用来存放一些基本类型的变量、数组和对象的引用,堆内存主要存放一些对象。在JVM加载一个类的时候,若该类存在sta

2016-08-12 14:46:51

TCP/IP——socket网络编程总结

TCP是Transfer Control Protocol的简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行

2016-07-27 16:33:20

Android应用程序的启动过程源码解析—点击图标启动过程

在Android系统中,有两种操作会引发Activity的启动,一种用户点击应用程序图标时,Launcher会为我们启动应用程序的主Activity;应用程序的默认Activity启动起来后,它又可以在内部通过调用startActvity接口启动新的Activity,依此类推,每一个Activity都可以在内部启动新的Activity。通过这种连锁反应,按需启动Activity,从而完成应用程序的

2016-07-27 16:05:38

设计模式之桥接模式——链接两地的交通枢纽

1、介绍桥接模式也称为桥梁模式,是结构型设计模式之一,在显示生活中大家都知道桥梁是链接河道两岸的主要交通枢纽,简而言之其作用就是链接河的两边,而我们的桥接模式与显示中的情况很相似,也是承担着链接两边的作用,在代码中,两边指的又是什么呢?2、定义将抽象部分与实现部分分离,使它们都可以独立的进行变化。3、使用场景从定义中桥梁主要作用是链接抽象部分与实现部分,但是事实上,任何

2016-07-25 11:00:37

设计模式之工厂模式——应用最广泛的模式

工厂模式主要分为三种,简单工厂模式、工厂方法模式、抽象工厂模式。1、绪论在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助

2016-07-24 22:37:09

策略模式——时势造英雄

1、定义策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们可以相互替换。策略模式让算法独立于使用它的客户端而独立变化。注意:策略模式与状态的结构几乎完全一样。但是他们的目的、本质却不一样。2、使用场景1)针对同一种问题的多种处理方式、仅仅是因为具体行为有差别时,2)需要安全的封装多种同一类型的操作时3)出现同一抽象类有多个子类,而又需要使用if-else

2016-07-21 20:47:53

设计模式之状态模式——随遇而安

1、状态模式介绍状态模式中的行为是由状态决定的,不同的状态有不同的行为,状态模式把对象的行为包装在不同的具体状态对象里,每一个状态对象都有一个共同的抽象状态基类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。2、定义当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了基类。3、使用场景1)当一个对象的行为取决于它的状态,并且它必须在运行时根据

2016-07-21 20:15:19

java设计模式——装饰模式

装饰模式也称为包装模式。结构型设计模式之一,其使用一种对客户端透明的方式动态的扩展对象的功能,同时它也是继承关系的一种替代方案之一。装饰模式可以动态的给一个对象添加一些额外的职责。就增加功能功能来说,装饰模式相比生成子类更为灵活。装饰模式的UML类图如图:抽象组件类:可以是一个接口或者抽象类,其充当的是被装饰的原始对象。Component.javapub

2016-07-20 22:03:21

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!