自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 【Android工程师】GitHub的使用

1、创建仓库(勾选README)2、运行Git Bash3、设置姓名和邮件地址git config --global user.name "Firstname Lastname"git config --global user.email “address”4、检查本机公钥cd ~/.ssh【注】No such file or directory:如果是第一次使用G

2016-08-09 23:15:21 346

原创 Java - Map

put(key, value)1、处理key为null的情况      if (key == null)          return putForNullKey(value); 2、计算key的哈希值int hash = hash(key); 3、找到该哈希码对应的存储位置int i = indexFor(hash, table.length); 4

2016-06-23 10:15:27 378

原创 算法与数据结构 - 数组

二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 public class Solution { public boolean Find(int [][] array,int target) { int h = array.length-

2016-06-23 09:45:07 330

原创 算法与数据结构 - String

将一个字符串中的空格替换成 "%20" 。public class Solution { public String replaceSpace(StringBuffer str) { return str.toString().replaceAll(" ", "%20"); }}自定义一个正则表达式匹配类,用来匹配包括'.'和'*'的正则表达式。模式中的字

2016-06-22 15:03:19 284

原创 算法与数据结构 - 搜索算法

二分搜索public class BinarySearch { /** 递归二分 **/ public int binarySearch(int[] arr, int left, int right, int key) { if (left > right) { return -1; } else { int mid = (left + right)

2016-06-16 17:07:04 322

原创 RevisionControl - RevisionControl概述

什么是Git?Git是一款免费、开源的分布式版本控制系统。Git和Github有什么区别?Github是一个提供Git服务的网站。Git和SVN有什么区别?1、GIT是分布式版本控制系统,SVN 是集中式版本控制系统。2、GIT将内容按元数据方式存储,SVN按文件存储内容。

2016-06-15 14:42:44 349

原创 Java - JDBC

经典Demopublic class MyJDBC { //JDBC驱动类的完整名称 privatestatic final String DRIVER_NAME ="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //数据库服务器的TCP地址和数据库名 privatestatic final String DB_U

2016-06-15 14:31:29 196

原创 Java - String

StringBuffer与StringBuilder的区别1、底层都是通过char[ ]数组实现的;2、StringBuffer线程安全,StringBuilder线程不安全。备注String类不可被继承,因为是final类。

2016-06-15 14:24:25 331

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

什么是适配器模式?适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。设配器模式的结构源(Adapee)角色:现有的需要适配的接口。适配器(Adaper)角色:适配器类是适配器模式的核心,适配器把源接口转换成目标接口。目标(Target)角色:所期待得到的接口。适配器模式有

2016-06-15 10:49:25 211

原创 Java - Java概述

为什么Java被称作是“平台无关的编程语言”?因为运行Java程序时,源文件会先被编译成能被字节码文件,再在JVM中执行。针对不同的系统,JVM都有对应的版本,所以各平台都能运行Java程序。JDK和JRE的区别是什么?JRE:Java运行时环境JDK:Java开发工具包,包含了JRE、编译器、调试器等。

2016-06-14 12:16:37 378

原创 概率论 - 求解概率题的基本思想

极端法一个黑盒子里有若干红球和黑球,随机取出一个球是红球的概率是p。现在从黑盒子中拿出等量的红球和黑球后,随机取出一个球是红球的概率是q。如果pA  最初红球的个数小于黑球的个数B  最初红球的个数大于黑球的个数C  最初红球的个数是黑球的的2倍D  最初红球的个数是黑球的1/2E  无法判断最初红球和黑球谁多谁少拿出的是等量的红黑球,那么我们假设拿出了全部

2016-06-07 14:32:44 1247

原创 逻辑思维

问:有无限的水源,一个5L无刻度桶和一个7L无刻度桶,只利用这两个无刻度桶将不能获得()L水A  2B  3C  6D  8E  11F  以上均能获得答:应用数学思维思考,而不是胡乱思考。2=7-5;3=5*2-7;6=5*4-2*7;8=5*3-7;11=5*5-2*7。选F。

2016-06-07 14:32:00 501

原创 C/C++ - 基础知识

C++基础知识定义在Class声明内的成员函数默认是inline函数进制问:假设在n进制下,等式240*12=2880成立,n值是()A  19B  18C  17D  16E  15F  以上都对答:[2*(n^2)+4*(n^1)] * [1*n+2]=2*(n^3)+8*(n^2)+8*(n^1),化简后为恒等式,故n为任意值,选F。

2016-06-07 09:35:16 562

原创 算法与数据结构 - 堆

堆、二叉堆、最大堆、最小堆二叉堆是一个完全二叉树,且二叉堆中的所有父总是>=(或一般将二叉堆就简称为堆。父总大于或等于子的堆叫最大堆,父总小于或等于子的堆叫最小堆。堆和数组一般用数组来表示堆。i的父是(i – 1) / 2,左儿子是2 * i + 1,右儿子是2 * i + 2。堆化数组现有数组 array = {9, 12, 17, 30,

2016-06-05 15:18:07 371

原创 算分与数据结构 - 冒泡思想

冒泡思想的一个特点是所有的操作都在原数组中进行,不占用额外的空间。一、冒泡排序public class BubbleSort { public void bubbleSort(int[] array) { int len = array.length; int temp; for (int i=0; i<len; i++) { // n趟越来越短的相邻位置的两两交换

2016-06-05 11:22:55 248

原创 算法与数据结构 - 贪心算法

贪心算法总是做出在当前看来是最好的选择。不从整体最优上加以考虑,做出局部最优解。贪心算法不一定能得到整体最优解,但可以得到整体最优解的近似解。应用1、0/1背包问题一个旅行者有一个最多能装m公斤的背包,现在有n个物品,重量分别是W1,W2,... , Wn 。每件的价值分别为V1,V2, ... , Vn 。求旅行者能装入的最大总价值及其解向量。Codeim

2016-06-04 23:19:21 428

原创 算法与数据结构 - 动态规划

动态规划(DP)的基本思想是:当前子问题的解可由上一子问题的解得出。动态规划算法通常基于由一个递推公式(状态转移方程)和若干个初始状态(状态)。应用1、LIS(Longest Increasing Subsequence):求一个数组中的最长非降子序列的长度。子问题我们可以考虑先求A[0]、A[1]、A[2] ... A[i]的最长非降子序列长度,这个LIS的一个子问题。接

2016-06-04 22:01:51 336

转载 Android - 源码 - AsyncTask

AsyncTask是Android系统提供的一个轻量级的异步类,我们可以通过继承AsyncTask来实现异步操作。而且,AsyncTask还能反馈当前异步操作的执行进度,所以AsyncTask非常适合于更新UI。一、AsyncTask的使用AsyncTask是一个抽象类,所以我们必须要创建一个子类去继承AsyncTask。在继承时,需要为AsyncTask类指定三个泛型参数

2016-06-04 16:24:28 276

转载 Android - 开源框架 - xUtils - BitmapUtils模块

图片的三级缓存:运行内存 - 本地缓存 - 网络流程图主要的类1、BitmapUtils.javaBitmapUtils类主要用于异步地加载图片,且支持图片的压缩处理、图片的内存缓存和本地缓存。2、BitmapLoadTask.javaBitmapLoadTask类用于实现异步加载3、BitmapCache.javaBitmapCache

2016-06-04 16:00:24 666

原创 设计模式 - 设计模式概述

设计模式 Design Patterns设计模式概述使用设计模式是为了增强代码的可重用性、可读性和可靠性。设计模式分为三大类:创建型模式、结构型模式和行为型模式。创建型模式:单例模式、抽象工厂模式、工厂方法模式和建造者模式等。结构型模式:适配器模式、装饰者模式和代理模式等。行为型模式:观察者模式、策略模式和访问者模式等。除了这三大类,还有两个重要的设计模式:线程池模式和

2016-05-30 08:55:08 265

原创 设计模式 - 工厂模式

工厂模式一、工厂方法模式 Factory Method工厂方法模式有3种:普通工厂模式、多个工厂方法模式和静态工厂方法模式。工厂方法模式的适用情况:当有大量的对象需要创建且这些对象都具有共同的接口时,我们就需要使用工厂方法模式来进行创建。1、普通工厂模式对那些实现同一接口的类,我们可以创建一个工厂类,专门用于这些类的实例创建。Demo/** 1、 实现同一个接口 *

2016-05-30 08:41:33 280

原创 【Android工程师】自定义控件 - ToggleView(开关状态选择器)

ToggleView是一个开关状态选择器主要功能1、能够根据点击来进行切换开关2、能够跟踪用户手指操作来移动开关,并判断用户抬起处对应的开关状态。开发流程(这里只介绍ToggleView类的开发,完整代码请参考:https://github.com/zerolhp/ToggleView)1、创建ToggleView类继承Viewpublic class ToggleView

2016-05-29 10:41:21 2347

原创 Android提高篇 - 自定义View

自定义View是一名Android程序员的必备技能,下面我来总结一下自己的学习心得。自定义View的分类一、继承已有控件进行再开发二、组合已有控件三、完全自定义View1、继承View(1)在构造函数中创建init()方法 - 做一些必要的初始化工作,如:创建画笔、加载View等。(2)重写onMeasure()方法 - 做一些必要的测绘工作(3)重写onDraw(

2016-05-29 10:37:43 321

原创 网络通信 - ping的具体过程

ping的具体过程1、主机A在应用层发起对主机B的Ping请求2、传输层将数据分段并加上报头3、网络层将A的IP地址为源IP地址、B的IP地址为目标IP地址,根据ICMP协议封装成数据包。4、根据B的IP地址和子网掩码,检测A、B是否属于同一子网。同一子网如果属于同一子网,则查找本机的ARP缓存,找到B的MAC地址。若ARP缓存表中找不到B的MAC地址,则发送ARP

2016-05-29 09:53:07 5060 1

原创 网络通信 - HTTP

HTTP协议简介1、应用层协议HTTP协议(超文本传输协议)是建立在TCP/IP协议基础之上的应用层协议。TPC/IP协议是传输层协议,主要解决数据如何在网络中传输;而HTTP是应用层协议,主要解决如何包装数据。2、Request/Response模式HTTP协议基于Request/Response模式来处理客户端与服务器之间的请求和应答。3、无状态HTTP是一种无状态

2016-05-29 09:36:53 347

原创 LeetCode - Anagrams

import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.List;import java.util.Map;/** * Anagrams * Given an array of strings, return all groups o

2016-05-29 08:33:15 179

原创 LeetCode - BalancedBinaryTree

/** * 问题:判断一棵树是否是平衡二叉树。 * 解:平衡二叉树要求所有左右子树的高度相差不会超过1,所以算法的核心是递归。 */public class BalancedBinaryTree {// 内部节点类public class TreeNode {int val; // 节点的关键字TreeNode left; // 左孩子TreeNod

2016-05-29 08:31:41 196

原创 LeetCode - BestTimetoBuyandSellStockII

/** * 问:已知某股票的价格数组,且该股票可买卖很多次,但是只有卖了才能重新买。求最大收益。 * 解:贪心算法:只要能赚钱就卖。 */public class BestTimetoBuyandSellStockII {public int maxProfit(int[] prices) {int result = 0;for (int i=0; ii

2016-05-29 08:30:16 317

原创 LeetCode - BestTimetoBuyandSellStockI

/** * 问:给出了一个股票的价格数组,求买入再卖出的最大收益。 * 解: * 1、股票的卖出必定在买入之后,所以我们求的不是数组的最大差值。 * 2、通过O(n*n)很容易求出一个数和其后面的数的差值的最大值,但显然不是好的算法。 * 3、有一个巧妙的方法是创建一个数组,记录对应位置元素后面的最大值,然后将该数组 *     减原数组,得出一个最大差值数组,遍历该最大差

2016-05-29 08:28:49 316

原创 LeetCode - ClimbingStairs

/** * 问:有n阶的楼梯,每次可以走一步或者两步,那么走完n阶楼梯有多少种方式? * 解: * 1、由于每次只能走一步或两步,所以迈出最后一步前,必定在n-1阶或n-2阶,即f(n)=f(n-1)+f(n-2)。 * 2、也可以根据数理统计方法,寻找规律,最后可以发现其实是一个斐波那契数列:0,1,2,3,5,8,13,21,34... */public class C

2016-05-29 08:26:54 245

原创 LeetCode - RemoveElement

/** * 问:给出一个数组,去除指定的某个元素,并返回新数组的长度。 * 解: * 1、返回长度很简单,只有出现一个Element,length--即可,难点是如何删除元素。 * 2、笨方法是再创建一个数组,存放不等于Element的元素。 * 3、有一个空间复杂度为O(0)的方法: * (1)遍历数组时,出现Element后与数组最后一个元素交换。 * (2)最关键

2016-05-29 08:24:50 245

原创 LeetCode - UniquePaths

/** * 问:给出一个二维矩阵,从左上角到右下角一共有多少路径? * 解: * 1、默认条件:只能往下走或往右走。 * 2、f(i)(j) = f(i-1)(j) + f(i)(j-1) * 3、找到规律后,需要做的就是初始化,即i=0和j=0时对应的值。 */public class UniquePaths {public int uniquePaths(i

2016-05-29 08:22:26 332

原创 操作系统 - 操作系统基础知识

问:什么是进程和线程?进程(Process)是具有一定独立功能的程序,它是系统进行资源分配和调度的一个独立单位。线程(Thread)是进程的实体,一个进程可以拥有多个线程。线程是CPU调度和分派的基本单位,进程中的所有线程共享该进程的全部资源。问:进程和线程有什么区别?1、进程间相互独立,同一进程的各线程间共享。2、通信方式进程间通信IPC的主要方法:管道、FI

2016-05-29 08:20:19 2038 1

原创 Android提高篇 - 如何安全退出已调用多个Activity的Application?

一、集合关闭法每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。1、创建集合List activities;2、每创建一个Activity就将其添加到集合中去,每销毁一个Activity也将其从集合中移除。3、程序退出前,遍历集合,逐个调用finish()。二 、广播关闭法1、创建BaseActivity类创建IntentFi

2016-05-28 13:49:03 407

原创 【Android工程师】GitHub的使用

先来了解一下Git:Git是GitHub的核心,它是一种版本管理系统,而仓库管理功能就是GitHub的核心。具体的使用步骤一、登录GitHub官网,创建GitHub账户。二、创建一个新仓库1  仓库名称不允许使用中文,只允许使用字母、数字、点、下划线和中划线。2  选择使用README文件初始化项目。三、安装Git 1  在msysGit官网下载对应版本2  安装时

2016-05-28 09:07:03 300

原创 【Android工程师】 - 百度地图SDK的使用

基本概念LBS Location Based Service  基于位置的服务POI Point Of Interset  兴趣点 开发步骤1  下载SDK百度为我们提供了地图SDK、定位SDK和导航SDK等,我们可以在 www.developer.baidu/map/ 进行下载。2  申请Key(1)输入SHA1值如果是用Eclipse进行开发,windows

2016-05-27 15:03:13 606

原创 Android提高篇 - Android系统

ANR什么是ANR?ANR:Application Not Responind。ANR是指当应用程序在一段时间内不作出响应,系统会向用户显示一个应用程序无响应对话框。什么会引发ANR?默认情况下,Activity最长执行时间为5S,BroadcastReceiver最长执行时间为10S。1  5S内没有响应触摸事件2  BroadcastReceiver在10S内没有执

2016-05-25 09:19:09 273

原创 Android提高篇 - Service

Service执行在主线程中还是子线程中?如果没有显示的指定Service所运行的进程,Service默认运行在当前APP所在的Main Thread(UI主线程)中。  Service能否执行耗时操作?Service不能执行耗时操作,需新建子线程去执行。

2016-05-24 19:40:01 331

空空如也

空空如也

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

TA关注的人

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