自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天行九歌

Time to waste, not reduce efficiency

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

原创 剑指offer第14题:调整数组顺序使奇数位于偶数前面

输入:一个整数数组 输出:使奇数位于偶数前面 思路:用起始两个指针,第一个指针向后移动,第二个指针向前移动,当第一个指针指向偶数第二个指针指向奇数将二者交换,直到两个指针相遇public class ReorderOddEven{// 剑指offer第14题 public void reorderOddEven(int[] array){ int start

2016-07-31 23:58:43 459

原创 剑指offer第28题:字符串的排列

输入:abc 输出:abc acb bac bca cab cba 思路: 字符串由两部分组成,第一个字符和后面的部分 1。先求所有可能出现在第一个位置的字符, 2。固定第一个字符,求后面字符的排列,递归public class Permutation {// 剑指offer第28题,字符串的排列 public void permutation(char[] ch){

2016-07-31 23:53:52 915

原创 剑指offer第10题:二进制中1的个数

输入:一个整数 输出:该整数二进制中1的个数 eg:9:1001,个数为2 思路:把一个整数减去1再与原整数做与运算,会把最右边的1变为0public class NumberOfOneInBinary {// 剑指offer第十题,二进制中1的个数 public int numberOfOne(int n){ int count = 0; wh

2016-07-31 23:48:11 267

原创 字符串归一化

输入:字符数组; 输出:字符数组;转换规则:单词(非空格字符认为是单词构成)间保留一个空格,最开始和最结尾的地方不保留空格,奇数个单词首字母大写,其他小写。 要求:时间复杂度O(n),空间复杂度O(1),即char[]原地转换。 举例:输入” I am a good student”,输出”I am A good Student”。public class NormalizdChar

2016-07-31 23:43:52 12410

原创 剑指offer第8题:旋转数组的最小数字

输入:一个递增序列的一个旋转 输出:旋转数组的最小元素 eg:{3,4,5,1,2}是{1,2,3,4,5}的旋转 思路:双指针法,取中间元素,如果大于第一个指针所指的元素,将该指针指向中间元素,小于第二个指针所指的元素,将第二个指针指向中间元素。最终第一个指针和第二个指针会指向两个相邻的元素,第二个指针所指即为所求public class MinNumber {// 找出旋转数字的最

2016-07-31 23:23:15 424

原创 剑指offer第31题:连续子数组的最大和

输入:一个整型数组,数组中一个或连续的多个整数构成一个子数组 输出:所有子数组的和的最大值,时间复杂度O(n)public class GreatestSumOfSubArray {// 剑指offer31,连续子数组的最大和 public int greatestSumOfSubArray(int[] array){ if(array == null || arr

2016-07-31 23:16:49 719

原创 剑指offer第9题:斐波纳西数列

输入:n 输出:f(n) 思路:由f(1),f(2)得到f(3);f(2),f(3)得到f(4),继而得到f(n)public class Fibonacii {//剑指offer第九题,Fibonacii数列 public long fibonacii(int n){ int[] result = {0,1}; if(n < 2){

2016-07-31 23:12:10 934

原创 Android性能优化

布局优化1.如果系统每次渲染时间都在16ms之内ui会非常流畅,这时候fps为60;如果一次绘制任务耗时20ms,那么16ms内信号无法绘制,该帧就会丢弃,等待下次信号才开始绘制,导致16*2ms内都显示同一帧画面,这就是画面卡顿的原因 2.避免OverDraw,例如系统默认绘制activity的背景,而如果再给布局绘制重叠的背景,就属于无效的过度绘制OverDraw 3.优化布局层级,使用in

2016-07-25 22:00:38 468

原创 NIO,AIO,BIO

BIO : 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 NIO : 同步非阻塞,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。 AIO(NIO.2) : 异步非阻塞,服务

2016-07-25 12:55:54 278

原创 Android的Preference

PreferenceActivity要在 Activity 中显示您的设置,请扩展 PreferenceActivity 类。这是传统 Activity 类的扩展,该类根据 Preference 对象的层次结构显示设置列表。当用户进行更改时,PreferenceActivity 会自动保留与每个 Preference 相关的设置。注:如果您是开发针对 Android 3.0 及 更高版本系统的应用,

2016-07-24 01:16:54 509

原创 关于equals,==,hashCode

equals() 与 == 的区别:== : 它的作用是判断两个对象的地址是不是相等,判断两个对象是不是同一个对象。equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况: 情况1,类没有覆盖equals()方法。则通过equals()比较该类的两个对象时,等价于通过“==”比较这两个对象。Object类的equals方法 public boolean equals(Ob

2016-07-23 14:02:13 306

原创 Retrofit2.0源码解析

怎么使用就不详述了,我们主要来看原理。得到retrofit对象 我们首先通过建造者模式获得retrofit实例 Builder(Platform platform) { this.platform = platform; // Add the built-in converter factory first. This prevents overriding it

2016-07-17 22:24:07 2725

原创 Java异常和finlly返回值

Java的异常处理Java的异常处理是通过5个关键字来实现的:try,catch,throw,throws,finally。JB的在线帮助中对这几个关键字是这样解释的: Throws: Lists the exceptions a method could throw. Throw: Transfers control of the method to the exception handler

2016-07-14 14:45:37 1439

原创 Android存储数据的几种方式

Android一共五种存储方式: 1.文件存储 2.SharedPreference存储 3.使用SQLite存储 4.使用ContentProvider存储 5.网络存储文件存储  保存在/data/data/packagename/files目录下,读取/写入的方式,文件可用来存放大量数据,如文本、图片、音频等。SharedPreference存储  保存在/data/data

2016-07-11 20:51:53 792

Java泛型的擦除与补偿

Java泛型擦除后的常用补偿方法

2016-04-27

空空如也

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

TA关注的人

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