自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 归并排序算法的时间复杂度

来自教程:https://time.geekbang.org/column/article/41913我们对n个元素进行归并排序,需要时间T(n),那分解成两个子数组排序的时间都是T(n/2)。merge()函数合并的时间复杂度是O(n)。归并排序的时间复杂度计算公式是:T(1) = C; n=1 时,只需要常量级的执行时间,所以表示为 C。T(n) = 2*T(n/2...

2019-07-10 17:37:12 10387 3

原创 java String大小限制

在内存中的表现形式 转载自:https://blog.csdn.net/ifwinds/article/details/80849184(感谢作者)看一段代码: String s1 = "AB"; String s2 = new String("AB"); String s3 = "A"; String s4 = "B...

2019-06-26 10:33:29 8897

原创 java char 的编码规则

java char 使用来表示Unicode编码的字符单元。Unicode编码单元可以表示为16进制,其范围从\u0000到\uffff;刚开始unicode被设计为两个字节,java也使用16位的Unicode字符集。但是后来语言扩充后,两个字节已经不够用了,unicode进行了扩充。所以,java的char类型16位就不能完全表示出所有的unicode字符。现在Unicode代码点...

2019-06-25 09:29:55 1989 1

原创 排序1

排序算法有几个指标,内存消耗,和稳定性。内存消耗:内存消耗主要通过空间复杂度来衡量,针对空间负责度,我们提出原地排序这个概念。原地排序是指空间复杂度是O(1)的排序算法,也就是没有额外引入内存的算法。稳定性:这个概念是指如果待排序的序列中存在值相等的元素,经过排序之后,相等的元素之间原有的先后顺序不变。比如,5,3,4,2,4,6。经过排序后:2,3,4,4,5,6。其中两个4的先后顺...

2019-03-30 22:35:14 143

原创 递归

递归求解问题的过程可以分为两步,第一步是“递”,第二步是“归”。递归的重点是找到递归公式和确定递归终止条件 ,递归算法是一种高效简洁的编程技巧,但是也是一种非常容易引起错误的算法。递归代码有很多弊端:比如,堆栈溢出、重复计算、函数调用耗时多、空间复杂度高等。下边结合一个简单的问题理解递归。有n级台阶,上台阶可以有两种走法,一次走一步,或者一次走两步,问总共有多少步走法。很容易想...

2019-03-23 16:33:24 178

原创 单链表的反转

单向链表的反转,前提是有一个带头节点的单链表反转过程中,cur 始终都是一个节点没变。前两次的示意图如下,后边的操作都是一样的。/** * 链表反转 SimpleListWithHead 有头节点的链表 */public class ListReverse { public static void main(String[] args) { Si...

2019-03-16 18:02:11 166

原创 算法复杂度分析

算法复杂度分析1、大O表示法T(n),表示代码的执行时间,n表示数据规模的大小,f(n)表示每行代码执行的次数总和。O表示代码执行时间T(n)与f(n)表达式成正比。这个公式叫 大 O 时间复杂度表示法,大 O 时间复杂度实际上并不具体表示代码真正的执行时间,而是表示代码执行时间随数据规模增长的变化趋势,所以,也叫渐进时间复杂度,简称时间复杂度。2、时间复杂度分析如何分析代...

2019-03-10 17:10:51 171

原创 配置Windows Gradle 环境

Gradle 是一个工程构建工具,它的DSL基于Groovy 或者kotlin实现。安装Gradle时要确保已经配置好jdk 因为groovy 或者kotlin是基于jvm的语言。去gradle官网下载gradle的版本:https://gradle.org/releases/然后解压。解压后将bin路径添加到系统的环境变量中。打开控制台,输入gradle -v 就可以看到grad...

2019-03-03 21:44:36 178

原创 使用链表实现队列

使用单向链表数据结构实现简易版的队列队列结构是先进先出的结构,代码如下。package learn.List;import java.util.Iterator;/** * 使用链表实现队列 * @param <E> */public class Queue<E> implements Iterable<E> { private...

2019-02-24 22:31:06 219

原创 使用链表实现堆栈

使用单向链表数据结构实现简易版的栈栈结构是先进后出的结构,代码如下。/** * 使用链表实现堆栈 * */public class Stack<E> implements Iterable<E> { private Node<E> firstNode; private int N; public boolean i...

2019-01-21 00:39:43 581

原创 LruCache的介绍

LRU全称为Least Recently Used,即最近最少使用。由于缓存容量是有限的,当有新的数据需要加入缓存,但缓存的空闲空间不足的时候,如何移除原有的部分数据从而释放空间用来放新的数据?LRU算法就是当缓存空间满了的时候,将最近最少使用的数据从缓存空间中删除以增加可用的缓存空间来缓存新数据。这个算分的内部有一个缓存列表,每当一个缓存数据被访问的时候,这个数据就会被提到列表尾部,...

2018-12-24 00:11:51 274

原创 MeasureSpec类

MeasureSpec约束是由父控件传递给子控件的,这个类的源码如下: public static class MeasureSpec { private static final int MODE_SHIFT = 30; private static final int MODE_MASK = 0x3 << MODE_SHIFT; /** ...

2018-12-16 23:04:15 170

原创 Rxjava将回调转化成接口

Rxjava的一种用途是他可以统一所以回调接口。现有个数据库请求的回调,类似下边: @Override public void getUsers(LoadUsersCallback callback) { Runnable runnable = new Runnable() { @Override public v...

2018-12-09 16:24:57 656

原创 ReactiveX-Observable

Observable(此篇文章翻译自ReactiveX的官方文档)在ReactiveX中,Observer(观察者)订阅了一个Observable(观察对象)。那么这个观察者会对观察对象发生的任何单一的变化,或者是一连串的变化做出反应,也就是收到观察对象的反馈。这种模式使并发编程变得很容易,因为当我们等待Observable发射变化的时候,我们不需要去阻塞这个操作,也就是没有阻塞这个过程。...

2018-11-18 17:23:58 1016

原创 android实现通用设置UI

实现设置界面的UI,通常如下边的样式,使用RecycleView可以避免重复添加。public class SettingItem { //条目的类型 private SettingItemEnum itemEnum; //条目的显示内容 private String itemLabel; //前边的图标 @IntegerRes ...

2018-11-11 17:43:05 850

原创 android 实现多语言

要实现android多语言支持,需要在res/中创建其他的values扩展的文件夹,并在文件夹名后加上一个横线和国家的ISO码。res/  values/      strings.xml  values-es/      string.xml  values-fr/      string.xml把字符串值添加到合适的文件中,在运行时,Android根据本地用户...

2018-11-04 18:57:03 311

原创 android 画一个渐变的圆环

自定义View画一个类似下图的圆环:分为三步:画底部圆,上层圆,还有文字其中上层圆需要渐变颜色,并且和数字代表的程度统一。代码如下:public class ScoreCircle extends View { private static final String TAG = "ScoreCircleLog"; private int circleRadiu...

2018-10-28 15:48:23 5293

原创 Gson序列化特定的字段

使用google的Gson工具时,有时候在将对象序列化成Json字符串时,不需要有些字段,这个时候,就可以用Gson的设定序列策略来处理: public class People { public String name; public String id; public int count;}比如我序列化的时候不想要count字段,那么我就这样设置Gson g...

2018-10-21 15:18:25 2464

原创 策略模式封装搜索栏

封装搜索栏,搜索栏对应不同的页面,需要不同的搜索算法,使用策略设计模式策略接口:public interface SearchStrategy<T> { /** * 筛选出目标在数据组中结果 * @param dataList * @param target * @return 符合条件的结果 */ @No...

2018-10-13 23:34:18 165

原创 FragmentManager 管理Fragment

每次我们对Fragment的操作都需要通过FragmentTransaction,到了这里估计很多博客都已经说到了FragmentTransaction里面的几个操作方法,虽然在下也是要说的,顺便说一下Fragment管理的设计吧。我们知道,没有FragmenActivity就没有Fragment。那么为什么我们必须要继承自FragmentActivity呢,这就是Fragment设计上的...

2018-10-07 19:12:34 2546 1

原创 几种Subject

Rxjava的几种Subject:Subject 既是 Observable 又是 Observer(Subscriber)。官网称 Subject 可以看成是一个桥梁或者代理。介绍下边几种AsyncSubject、BehaviorSubject、ReplaySubject和PublishSubject。1. AsyncSubjectObserver会接收AsyncSubject的...

2018-09-24 14:43:27 1194

原创 Builder模式用于创建复杂对象

这种Builder模式使用静态内部类实现。当初始化一个对象特别复杂,如参数多,且很多参数都具有默认值时,使用这种模式可以使创建对象的过程更清晰。比如有一个Request类,代表请求,这个请求有很多属性。public final class Request { private static final long TOO_LONG_LOG = TimeUnit.SECONDS.toN...

2018-09-16 09:54:53 453

原创 使用旋转动画实现刻度表

实现一个仪表:指针可以旋转,UI提供指针。 @BindView(R.id.iv_pointer) ImageView ivPointer;... private void setPointer(float temp){ float proportion = 0.925f;//温度与刻度的比例 float angle = proportio...

2018-09-09 13:03:08 438

原创 自定义可以展开的ExpendRecycleView

可展开并收起的RecycleView思路:利用RecycleView Adatper的getItemCount实现显示条目的变化,并且使用getItemViewType来实现底部栏与普通栏的变化代码如下,由于时间比较紧,没有优化,但是功能是可以实现的。public class ExpendRecycleAdapter extends RecyclerView.Adapter&lt...

2018-09-02 11:06:27 250

原创 自定义圆形View实现动态改变数字与颜色

效果:如下图。注意的地方,文字的绘制是从左下角开始的。代码如下:public class AgtronCircle extends View { private static final String TAG = "AgtronCircle"; private Paint mPaint; //基础颜色 private static String...

2018-08-26 16:41:34 323

原创 android 屏幕适配方案

android 屏幕适配有很多种方案,px适配,dp适配,可以在网上搜索到很多资料,这些适配方法原理上很类似,就是使用bu't不同的资源文件命名方法,使android在不同机器下运行时候,可以自己寻找大小资源,然后相应的改变改变控件大小。但是最近发现了一种新的适配方法,是今日头条团公开的方案,非常简单,使用系统的API没有侵入,非常适合使用在自己的项目中。该方案的原文为:https://m...

2018-08-19 18:14:31 203

原创 使用Shap属性使按钮变成椭圆

椭圆按钮使用Shap属性可以设置按钮为椭圆。shap的所有属性如下:<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=["rectangle" | "oval&q

2018-08-05 15:57:34 529

原创 Android的单例模式

Android的单例模式 Android的单例模式在开发中经常用到,可以说是最基本的设计模式了。android的单例模式和java实现的方法基本一样,因为思想是相同的。不过在Android中会注意到内存泄漏的问题。饿汉式public class Single { private Single() { } private static final Sing...

2018-07-29 15:44:31 127

原创 LayoutInflater

LayoutInflater在安卓开发中,涉及View的操作我们经常需要使用到LayoutInflater这个类。这个类的作用,我们看官方问档, Instantiates a layout XML file into its corresponding View objects. It is never used directly. Instead, use Activity.getL...

2018-07-22 17:25:10 138

原创 Activity的启动模式

Acitvity的启动模式作为android四大组件之一的Activity一共有四种启动模式,分别为:standard、singleTop.、SingleTask.、singleInstance。 这些启动模式可以在AndroidMainifest.xml文件中的Avtivity标签属性android:launchMode中配置。...

2018-07-22 12:06:06 242

转载 重写 HashCode 的方法

转载:http://baijiahao.baidu.com/s?id=1576860126059183009&wfr=spider&for=pc

2018-07-05 11:45:35 147

转载 Android开发中比较常见的内存泄漏问题

转载:http://www.devstore.cn/essay/essayInfo/4187.html?utm_source=tuicool&utm_medium=referral

2018-06-13 16:14:09 123

原创 android studio 导入module 作为library使用

1、找到module我们从网络上找到一个开源库,其目录结构如下:其中rangebar是module,我们打开,build.gradle中为:apply plugin: 'com.android.library'android { compileSdkVersion 19 buildToolsVersion "26.0.2" defaultConfig { ...

2018-06-13 11:14:06 4184

原创 c#读取编程区数据

README

2017-11-27 16:45:48 432

C#DES解密加密支持大文件源码

C#DES解密加密支持大文件,使用vs2017编译运行,下载下来是整个工程。

2017-12-18

空空如也

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

TA关注的人

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