小北的博客

守稳初心,方能-守得云开见月明

最长递增子序列-Java 实现

1、Θ(n2) 打表实现 初始化对角线为 1; 对每一个 i,遍历 j(0 到 i-1): 若A[i] <= A[j],置 1。 若A[i] > A[j],取第 j 行的最大值加 1。 private static int getLarg...

2018-03-06 11:50:42

阅读数 983

评论数 0

Java并发:volatile解析

一、Java 内存模型 Java内存模型规定所有的变量都是存在主存当中(类似于前面说的物理内存),每个线程都有自己的工作内存(类似于前面的高速缓存)。线程对变量的所有操作都必须在工作内存中进行,而不能直接对主存进行操作。并且每个线程不能访问其他线程的工作内存。 二、并发编程中的三个概念 ...

2018-03-01 16:04:12

阅读数 94

评论数 0

动态规划-挖矿

有一个国家发现了5座金矿,每座金矿的黄金储量不同,需要参与挖掘的工人数也不同。参与挖矿工人的总数是10人。每座金矿要么全挖,要么不挖,不能派出一半人挖取一半金矿。要求用程序求解出,要想得到尽可能多的黄金,应该选择挖取哪几座金矿? 第一个 400金/5人 第二个500金/5人, 第三个200金/3...

2018-02-26 17:57:02

阅读数 301

评论数 0

计算器的实现-Java 代码

用Java 实现的计算器,原理看代码注释 public class MyCalculator { public static void main(String[] args) { String obj = "6+(8/2)+6/3+1*8 + 30"...

2018-01-16 17:30:24

阅读数 4999

评论数 0

Android 源码解析 - ScrollView

ScrollView 可以在垂直方向做滑动显示内容,并且ScrollView中只能添加一个子View,下面对源代码进行分析。 源码解析 ScrollView 继承关系 onMeasure方法 @Override protected void onMeasure(int widt...

2018-01-15 20:13:33

阅读数 225

评论数 2

Android 源码解析 - Scroller

分析版本 : Android API 26 介绍 Android开发中,如果我们希望使一个View滑动的话,除了使用属性动画外。 我们还可以使用系统提供给我们的两个类Scroller和OverScroller用来实现弹性滑动。下面分析一下Scroller的使用方法以及实现方式。 V...

2018-01-12 21:47:30

阅读数 142

评论数 0

最小堆解决TopK 问题 - Java代码实现

TopK问题是指从大量数据(源数据)中获取最大(或最小)的K个数据。 解决方法一、 对源数据中所有数据进行排序,取出前K个数据,就是TopK。 解决方法二 维护一个K长度的数组a[],先读取源数据中的前K个放入数组,对该数组进行升序排序,再依次读取源数据第K个以后的数据,和数组中最小的元素...

2018-01-11 20:11:07

阅读数 366

评论数 0

Android 动画 一篇就够

动画实际上就是在指定的时间段内持续修改某个属性的值, 使得该值在指定取值范围内平滑过渡。 动画可以分为三大类, 帧动画(Frame Animation)、补间动画(Tweened Animation)、属性动画(Android 3.0 之后增加的属性动画) 帧动画 帧动画是最容易实现的一...

2018-01-11 11:38:32

阅读数 139

评论数 0

gradientRadius 的适配问题

gradientRadius percentages 支持Android 5.0之后的系统,如果是之前的需要使用自定义View。 自定义View 如下: public class RadialGradientView extends View { private final int e...

2018-01-04 20:31:31

阅读数 182

评论数 0

避免使用startActivityForResult

startActivityForResult 所有处理结果的逻辑都要放到onActivityResult中,在onActivityResult里面根据requestCode作不同处理,这样逻辑比较复杂, 我们希望的是能在发起startActivityForResult的时候捎带着把获取结果后处理...

2018-01-04 10:42:19

阅读数 165

评论数 0

设计模式-建造者模式

定义官方定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,通俗的说就是:建造者模式就是如何一步步构建一个包含多个组成部件的对象,相同的构建过程可以创建不同的产品特点建造者模式是一种创建型模式,适用于那些流程固定,建造的目标对象会有所改变这种场景,还有一种场景是代替多参...

2017-12-20 19:28:54

阅读数 137

评论数 0

Java 内存模型

第一部分 内存模型 我们常说Java内存模型(Java Memory Model, JMM)指的是Java运行时(Java runtime)内存模型,Java源码通过javac 翻译成字节码,由即时编译器(JIT)编译执行。因为字节码是静态代码,需要加载到内存才能成为可以动态运行的对象。运行时...

2017-12-15 14:44:15

阅读数 267

评论数 0

Android 框架-ImageLoader 图片加载框架

Android 开发中我们会经常会加载网络图片的需求,目前成熟的图片加载框架有 Fresco、Glide、Picasso, 比较老的还有UniversaclImageLoader(15年开发的时候还在用这个开源库,可惜现在已停止维护了)。由于最近想分析下Glide 的源码,之前有没有分析过图片加载...

2017-10-30 16:49:38

阅读数 306

评论数 0

有状态对象和无状态对象

1、进程与线程的关系进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动, 进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位. 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地...

2017-10-27 18:47:32

阅读数 296

评论数 0

Android 源码解析-LruCache 缓存工具类

关于Android的三级缓存,其中主要的就是内存缓存和硬盘缓存。这两种缓存机制的实现都应用到了LruCache算法,今天我们就从使用到源码解析,来彻底理解Android中的缓存机制。1、LruCache的介绍LruCache是Android API 12以后提供的一个缓存工具类,采用了最近最少使用...

2017-10-25 16:37:35

阅读数 223

评论数 0

Glide 源码解析(一) 加载流程

Glide介绍Glide 是Google 员工 bumptech 开源的一款图片加载框架,相对于UniversalImageLoader,Picasso,它还支持video,Gif,SVG格式,支持缩略图请求,旨在打造更好的列表图片滑动体验。Glide有生命周期的概念(主要是对请求进行pause,...

2017-10-13 09:46:28

阅读数 496

评论数 0

Mac上一键反编译Apk与查看jar文件

将需要反编译的Apk(**.apk无需重命名) 拷贝到 apk 文件夹下,然后运行run.sh 脚本,反编译完成后会自动打开Gui 工具查看反编译后的文件。拷贝文件运行脚本反编译后的结果工具下载地址

2017-10-11 20:10:20

阅读数 1647

评论数 0

经典的Java算法面试题

1、新浪面试题:编写一个方法,计算一个字符串中,第一个不重复的字符在当前字符串中的索引。public class JavaTest { //贪心算法 编写一个方法,计算一个字符串中,第一个不重复 的字符在当前字符串中的索引。 public static String array =...

2017-10-11 17:35:51

阅读数 1895

评论数 5

Android 布局优化-ViewStub 视图

ViewStub 是一个轻量级的View,View 的宽高为0,不绘制任何东西,只是占一个位置而已。优势 在需要的时候才加载View,这样实现了View的延迟加载,避免资源的浪费,减少渲染时间, 因此可以提高页面的加载速度。不足 ViewStub所要替代的layout文件中不能有标签, Vi...

2017-09-27 14:13:46

阅读数 243

评论数 0

Android 数据库升级数据迁移以及数据库导入

在我们开发的应用中,一般都会涉及到数据库,使用数据的时候会涉及到数据库的升级、数据的迁移、增加行的字段等。比如,用户定制数据的保存,文件的端点续传信息的保存等都会涉及到数据库。我们应用第一个版本是V1.0,在迭代版本V1.1 时,我们在数据库中增加了一个字段。因此V1.0的数据库在V1.1版本需要...

2017-09-26 17:47:05

阅读数 498

评论数 0

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