自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xdsjs的专栏

stay foolish, stay hungry

  • 博客(42)
  • 资源 (4)
  • 收藏
  • 关注

原创 【算法拾遗(java描述)】--- 插入排序(直接插入排序、希尔排序)

插入排序基本思想 每次将一个待排序的记录按其关键字大小插入到前面已经拍好序的子文件的适当位置,直到全部记录插入完成为止。直接插入排序基本思想 直接插入排序的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的有序表。即假设待排序的记录存放在数组R[1······n]中,排序过程中,R被分成两个子区间R[1······i]和R[i+1······n],其中,R[1······i]是

2015-12-26 17:40:52 1842 6

翻译 Android架构简洁之道

下文是对国外一篇文章中关于android架构部分的翻译,我看过之后感触很深,所以特意翻译出来分享给大家。同时我也应用这种架构开发了一个记账的app,后序博客中会将其开源出来,大家一起探讨。原文地址:http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/Android架构Android架构的目的是通过隔绝业务逻辑

2015-12-20 15:56:46 1146 1

原创 【算法拾遗(java描述)】--- 选择排序(直接选择排序、堆排序)

选择排序的基本思想 每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,知道全部记录排序完毕。主要有两种选择排序方法:直接选择排序(或称简单选择排序)和堆排序。直接选择排序基本思想 第i趟排序开始时,当前有序区和无序区分别为R[1 …… i-1]和R[i …… n](1 <= i <= n-1),该趟排序则是从当前无序区中选出关键字最小的记录R[k],将它与无序区的

2015-12-18 19:16:36 1406 2

原创 【算法拾遗(java描述)】--- 交换排序(冒泡、快排)

交换排序基本思想:两两比较待排序的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。 应用此排序思想的有冒牌排序和快速排序,其中冒泡排序属于简单算法,快速排序属于改进算法。冒泡排序基本思想 两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。具体算法前提条件:序列 s = {s0,s1,……sn-1}是n个可排序元素的序列。令j从n-1递减到1,重

2015-12-16 21:47:40 1123

原创 【算法拾遗(java描述)】--- 排序算法概述

概念 假设含有n个记录的序列为{r1,r2,……,rn},需要确定1,2,……,n的一种排列p1,p2,……,pn,使其相应的关键字满足kp1<=kp2<=……<=kpns非递减(或非递增)关系,即使得序列成为一个按关键字有序的序列{rp1,rp2,……,rpn},这样的操作就称为排序。这个定义说的很清楚,所谓排序就是对关键字的操作,对于同一个记录集合而言,可能会存在很多关键字,可能会存在主关

2015-12-13 16:07:19 636

原创 【数据拾遗(java描述)】--- 哈夫曼树的基本实现

相关定义节点之间的路径长度:在树中从一个结点到另一个结点所经历的分支,构成了这两个结点间的路径上的经过的分支数称为它的路径长度树的路径长度:从树的根节点到树中每一结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。结点的权:在一些应用中,赋予树中结点的一个有某种意义的实数。结点的带权路径长度:结点到树根之间的路径长度与该结点上权的乘积。树的带权路径长度(Weighted

2015-12-06 23:29:04 565

原创 【数据拾遗(java描述)】--- 二叉树的基本操作

总结了一下二叉树的基本操作,包括先序遍历、中序遍历、后序遍历的递归形式和非递归形式(栈实现),以及层次遍历(队列实现)等。主要代码import java.util.Queue;import java.util.Stack;import java.util.concurrent.LinkedBlockingQueue;/** * 简单的二叉树构造 * * @author xdsjs *

2015-12-06 12:55:50 863 1

原创 【Android性能优化(一)】—— 布局优化

Android作为移动设备,无论是内存还是CPU性能都逊色于PC设备,因此,我们在进行移动端应用开发时要格外注意性能优化的问题。本文主要讲述布局优化。文中大部分内容出自官方文档。 布局优化的思想很简单,就是尽量减少布局文件的层级,进而减少Android绘制时的工作量。 布局是一个安卓应用中用户体验有重要影响的因素。如果我们的应用设计了一个很糟糕的布局,将会耗费大量本就有限的内存,进而导

2015-12-29 22:02:13 575

原创 不同级数复杂度的计算

算数级数:与末项平方同阶 T(n) = 1+2+…+n = n(n+1)/2 = O(n2)幂方级数:比幂次高出一阶 T2(n) = 12 + 22 + 32 + … + n2 = n(n+1)(2n+1)/6 = O(n3) T3(n) = 13 + 23 + 33 + … + n3 = n2(n+1)2/4 = O(n4) T4(n) = 14 + 24 + 34

2015-12-03 16:28:41 2382

原创 Android中View的事件分发机制

我觉得要想掌握android中View的事件分发机制,需要熟悉三个方法和一个优先级。三个方法public boolean dispatchTouchEvent(MotionEvent ev)用来事件的分发,只要事件能够传递到当前View,那么此方法一定会被调用。返回值表示是否消耗当前事件。public boolean onInterceptTouchEvent(MotionEvent ev)

2015-11-10 18:44:50 857 1

原创 Android中的View

什么是View This class represents the basic building block for user interface components. A View occupies a rectangular area on the screen and is responsible for drawing and event handling. View is the b

2015-11-08 15:58:22 741 1

原创 Android中ImageView的ScaleType设置

主要分为matrix、center、fit三类CENTER Center the image in the view, but perform no scaling. 按图片的原来尺寸居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示CENTER_CROP Scale the image uniformly (maintain the image’s asp

2015-10-31 17:29:56 657 1

原创 Android进阶之Matrix完全解析

官方文档镇楼 https://developer.android.com/reference/android/graphics/Matrix.html The Matrix class holds a 3x3 matrix for transforming coordinates. Matrix是一个用于坐标变换的3*3矩阵矩阵乘法变换基础矩阵乘法公式 若一矩阵的列数与另一矩阵的行

2015-08-13 17:42:23 1759 1

原创 Android开发之Touch事件的分发机制

最近一直在学习View中Touch事件的分发机制,写篇文章总结一下。事件分发的相关方法public boolean dispatchTouchEvent(MotionEvent ev) 用于事件的分发,返回结果表示是否消耗当前事件,果消耗(true)则事件分发终止,该事件序列上的其他view将接收不到该事件。如果不消耗(false)则事件继续向下分发。返回结果受onTouchvent方法影响。一般

2015-07-15 15:31:18 733

转载 Android gc垃圾回收研究学习

尊重个人劳动成果,转载请注明出处:http://blog.csdn.net/hnulwt/article/details/44903331 文中很多内容说到了JVM,我想通过研究学习JVM来达到认识DVM的目的。为了严谨,查询了一下JVM和DVM的不同点1、Dalvik 和标准 Java 虚拟机(JVM)的首要差别Dalvik 基于寄存器,而 JVM 基于栈。基于寄存器的虚拟机对于更大的程序来说

2015-06-29 10:52:33 456

转载 字符编码详解

转自 http://blog.jobbole.com/39309/你是否认为“ASCII码 = 一个字符就是8比特”?你是否认为一个字节就是一个字符,一个字符就是8比特?你是否还认为你是否还认为UTF-8就是用8比特表示一个字符?如果真的是这样认为认真读完这篇文章吧!为什么要有编码?首先大家需要明确的是在计算机里所有的数据都是字节的形式存储,处理的。我们需要这些字节来表示计算机里的信息。但是这些字节

2015-06-23 15:32:21 501

原创 Android studio: Gradle DSL method found: 'android()'!及Gradle DSL method not found: 'runProguard()'错误

Gradle DSL method not found: ‘runProguard()’错误出现这个错误是因为在新版本的Gradle中runProguard()方法已经被废弃,取而代之的是minifyEnabled,因此只要将每个module下的build.gradlew文件中的runProguard改成minifyEmabled即可。如下图: Gradle DSL method found: ‘

2015-06-20 11:52:20 1011 1

原创 BufferedInputStream和BufferedOutputStream详解

这两个类分别是FilterInputStream和FilterOutputStream的子类,作为装饰器子类,使用它们可以防止每次读取/发送数据时进行实际的写操作,代表着使用缓冲区。了解这两个类之前,我们有必要知道不带缓冲的操作,每读一个字节就要写入一个字节,由于涉及磁盘的IO操作相比内存的操作要慢很多,所以不带缓冲的流效率很低。带缓冲的流,可以一次读很多字节,但不向磁盘中写入,只是先放到内存里。

2015-06-17 20:20:11 2692

转载 ByteArrayInputStream与ByteArrayOutputStream详解

ByteArrayOutputStream的用法以下是JDK中的记载: public class ByteArrayOutputStream extends OutputStream此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray()和 toString()获取数据。关闭 ByteArrayOutputStream 无

2015-06-17 19:44:21 712

原创 Java基础之I/O详解(二)类库设计模式

Java类库的设计者通过创建大量的类来解决I/O系统设计的难题。一开始,可能会对Java I/O系统提供了如此多的类感到不知所措(具有讽刺意味的是,Java I/O设计的初衷是为了避免过多的类) ——–《Thinking in Java》介于Java I/O类库中数目众多的类,我们有必要清楚这个类库是如何设计的。分类 Java1.0版本以前,Java中与输入有关的所有类都应该从Inpu

2015-06-16 21:00:42 719

原创 Java基础之I/O详解(一)File篇

相关概念绝对路径:绝对路径名是完整的路径名,不需要任何其他信息就可以定位它所表示的文件。例如window系统下,“C:\Users\downloads\a.txt”就是一个绝对路径名。相对路径:与绝对路径相反,相对路径名必须使用取自其他路径名的信息进行解释。默认情况下,java.io 包中的类总是根据当前用户目录来解析相对路径名。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调

2015-06-14 12:34:23 823

原创 Java基础之线程与多线程操作详解

进程与线程 进程:同一个操作系统中执行的一个子程序,包含了三部分:虚拟CPU、代码、数据。 多进程:同一个操作系统中执行的多个并行的子程序,可以提高CPU的使用率。 线程:在同一个进程当中执行的子程序流。 多线程:在同一个进程当中并发执行的多个子程序流,可以提高CPU的使用率。进程与线程的区别:进程有独立的进程空间,进程的数据存放在空间(堆空间和栈空间)是独立的。线程的堆空间是

2015-06-08 19:08:12 498

原创 Java基础之序列化详解

相关定义及用途java序列化(又叫串行化)技术可以使你将一个对象的状态写入一个Byte流里,并且可以从其他地方把该Byte流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。java的序列化机制是RMI(远程方法调用)、EFB等技术的技术基础。用途:利用对象的序列化实现保存应用程序的当前工作状态,下次再启动的是时候将自动恢复到

2015-06-07 18:21:41 613

原创 Java基础之包装类的自动装箱和拆箱详解

定义 在java中,数据类型可以分为两大类,即基本数据类型和引用数据类型,基本数据类型的数据不是对象,所以对于要将数据类型作为对象来使用的情况,java提供了相对应的包装类。(关于包装类的详细介绍请参看博客Java基础之常用类详解)本篇博客主要讲述包装类的自动装箱和拆行机制。所谓装箱,就是把基本数据类型用它们相对应的引用类型包起来,使它们可以具有对象的特质,如我们可以把int类型包装成Inte

2015-06-07 15:18:39 2137 2

原创 Java基础之hashCode方法详解

想要明白hashCode的作用,必须要先知道java中的集合。(不明白的请看Java基础之集合框架详解(二)List篇和Java基础之集合框架详解(三)Set篇)Java中的Collection集合有两类,一类是List,另一类是Set,前者集合内的元素是有序的,元素可以重复;后者元素无序且元素不可重复。而我们通常使用Object.equals方法来判断两个元素是否重复。即当我们想查找一个元素中是

2015-06-05 14:11:50 975 1

转载 Java基础之各种数据类型在内存中的存储方式

1.java是如何管理内存的java的内存管理就是对象的分配和释放问题。(其中包括两部分)分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间。 释放:对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作。但同时,它也加重了JVM的工作。因为,GC为了能够正确释放对象,GC必须监控每一个对象的运行状

2015-06-03 21:18:51 1022

原创 Java基础之集合框架详解(三)Set篇

相关定义作为Collection接口的重要子接口,Set接口是一个不包含重复元素,且元素排列无序的集合,也被称为集。注意:不包含重复元素的含义,更确切的讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。Set接口的方法和Collection接口的方法大体相同,也就是说Set接口不像List接口那样可以通过索引或去元素,只能通过Iterat

2015-06-01 23:02:20 1110 2

原创 Java基础之集合框架详解(二)List篇

相关定义作为Collection接口的重要子接口,List接口是一个元素有序且可重复的集合,也被称为序列。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。List 接口在 iterator、add、remove、equals 和 hashCode 方法的协定上加了一些其他约定,超过了 Collection 接口中指定

2015-05-31 16:05:40 881 1

原创 Java基础之集合框架详解(一)

集合框架的相关定义集合:即存储对象的容器。 框架:即类库的集合。 集合框架:即用来表示和操作集合的统一框架,由相关的接口、实现类和一些帮助程序员完成编程的算法。集合的作用:在类的内部,对数据进行组织简单而快速的搜索大数量的条目有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关元素有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对

2015-05-30 16:04:22 1624 3

原创 Java基础之常用类详解

Java中有很多常用类,这些是我们必须要掌握的,下面对这些常用类及其常用方法进行总结并保持更新。包装类我们都知道,Java中有一个系统类型由两部分组成,包含基本类型(primitive),例如int、float、double等,和引用类型(reference type),如String和List。而基本数据类型是不具备对象特征的,每个基本类型都有一个对应的引用类型,称作是装箱基本类型(boxed p

2015-05-27 21:11:03 1598 1

原创 Java基础之String、StringBuffer、StringBuilder的区别

上篇博客http://blog.csdn.net/u012483425/article/details/45999031 已经对String类尽心了详细的说明。而java中与字符串常量String对应的还有两个字符串变量类即StringBuffer和StringBuilder。本篇博客着重介绍一下三者的区别。String字符串常量,字符串的值在创建之后不可更改。StringBuffer字符串变量,线

2015-05-26 21:31:43 455

原创 Java基础之String类详解

String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。java中对字符串的操作是非常便捷的,因为java提供了许多针对字符串操作的方法。一下是一些常用方法: 更多方法请查看java JDK API文档。关于几个方法的要点e

2015-05-25 23:50:08 576 2

原创 Java基础之异常详解

秉承着一切都是对象的原则,Java中的异常都是对象,并且定义了一个基类java.lang.Throwable类作为所有异常的父类,可以说Throwable类就是万恶之源,它描述了出现在一段编码中的错误条件,当条件达成时,错误将会引发异常。 可以看到,Throwable有两个重要子类,Error类(错误)和Exception(异常),这两个类又有大量的子类。Error 是程序无法处理的错误,

2015-05-19 11:16:40 574 1

转载 Android Bitmap总结

BitMap类: public void recycle()——回收位图占用的内存空间,把位图标记为Dead public final boolean isRecycled() ——判断位图内存是否已释放 public final int getWidth()——获取位图的宽度 public final int getHeight()——获取位图的高度 public final

2015-05-15 13:31:52 687 1

原创 Android判断SD卡状态及获取各种文件目录

获取SD卡状态 可以通过Environment.getExternalStorageState ()方法来过去SD卡状态。该方法返回sd卡的一系列状态,详细内容点击查看安卓官方文档 所以可以通过Environment.getExternalStorageState ().equals(Environment.MEDIA_MOUNTED)来判断sd卡是否存在

2015-04-23 20:35:08 1470 1

原创 Android数据存储之SQLite中常用的SQL语句

数据查询语句SQL是一种查询功能很强的语言,它使用select语句进行数据库的查询操作,其语言的一般格式如下。 select 字段1[,字段2,······] from 表名 [where 限制条件];其中[]表示可选项。 使用select语句可以分为以下几种情况。 (1)查询表中的所有数据。当查询没有限制条件时,不需要编写where子句,此时返回或显示表中的所有数据。这是sele

2015-04-20 17:24:02 1111 1

原创 Android数据存储之SharedPreferences详解

安卓一共有四种数据存储方式,包括:SharedPreferences、SQLite、Content Provider、File。后三种方式会在后续博客中详细介绍。SharedPreferences介绍是一种轻型的数据存储方式本质是基于XML文件存储key—value键值对数据通常用来存储一些简单的配置信息,比如自动登录功能的实现(可以利用SharedPreferences存储用户名和密码)

2015-04-19 15:21:01 783 1

原创 Android四种加载模式

一 standard :系统的默认模式,一次跳转即会生成一个新的实例。假设有一个activity命名为Act1,执行语句:startActivity(newIntent(Act1.this, Act1.class));后Act1将跳转到另外一个Act1,也就是现在的栈里面有 Act1的两个实例。按返回键后你会发现仍然是在Act1(第一个)里面二 singleTop:singleTop跟st

2015-04-18 16:52:47 513 1

原创 Android动画之补间动画(Tween Animation)

Android动画一共分为三大类分别为Tween Animation(补间动画)、Frame Animation(逐帧动画)、Propetry Animation(属性动画)。而补间动画又分为AlphaAnimation(透明动画), RotateAnimation(旋转动画), ScaleAnimation(缩放动画), TranslateAnimation(平移动画), AnimationSet

2015-04-15 11:57:44 433

原创 Android常用控件之PopupWindow详解

定义A popup window that can be used to display an arbitrary view. The popup window is a floating container that appears on top of the current activity.PopupWindow即弹出框可以被用来显示任意的一个视图,它是一个选复杂西安当前界面上部的容器。构造方

2015-04-13 13:37:00 746

二叉树的基本操作(java实现)

此代码为java实现的二叉树的基本操作,包括各种遍历方法等。

2015-12-06

Android事件分发机制演示demo

此代码是用于演示android平台的事件分发机制的demo

2015-11-10

android martix 完全解析

这是一个android martix的演示demo,能够帮助理解 martix的使用方法以及矩阵变化的基础知识。

2015-08-13

android自定义View—顶部导航栏

自定义了顶部导航栏,在开发过程中可直接引用自定义的控件,省去了为每个Activity配置顶部导航栏的时间和精力。

2015-03-19

空空如也

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

TA关注的人

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