自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode : 1014. 最佳观光组合

题目描述:解题思路:看到这个题目,啪的一下很快啊就想到了动态规划,并写出了转移方程式:// dp[i][j] 代表数组[i,j]范围内最高分dp[i][j] = Max(dp[i][j-1], dp[i+1][j], A[i] + A[j] + i - j)代码如下:class Solution { public int maxScoreSightseeingPair(int[] A) { int len = A.length;

2021-01-15 23:11:51 141

原创 LeetCode : 413. 等差数列划分

题目描述:解题思路: 滑动窗口。窗口左边从下标0开始,右边从下标2开始,判断当前右下标的值能否与之前构成等差数列。 是。结果加1(最左到当前构成等差数列),再加上最左+1 与 当前-1 之间新增等差数列数。例如:1,2,3,4,5,当窗口到5时,除了加上1到5这个等差数列,还要加上2,3,4新增的个数(即1个)。1,2,3,4,5,6,窗口到6,加上2,3,4,5新增的个数(有3个,但2,3,4在前面算过了,所以2个·,即 i - left - 3) 否。结果加上以左+1 ,左...

2021-01-10 23:35:02 150

原创 android 广播总结

目录1.广播介绍2.广播分类3.广播基本使用1.广播介绍 广播,android四大组件之一。Android提供了一套完整的API,允许应用程序自由地发送和接受广播。发送广播使用Intent,接受广播使用Broadcast Receiver(广播接收器)。 广播可用于不同app之间的组件之间消息通信,同一app具有多个进程的不同组件之间的消息通...

2020-08-13 10:32:43 192

原创 注解简介及自定义注解处理器

1.基础知识注解分为标准注解和元注解。注解是代码中的特殊标记,可以在编译,类加载,运行时被读取,并执行相应的处理。标准注解有4种:@Override 对覆盖超类中的方法进行标记 @Deprecated 对不鼓励使用或已经过时的方法进行标记 @SuppressWarnings 选择性地取消特定代码段中的警告 @SafeVarargs 声明使用了可变长度参数的方法 元注解用来注解其他注解,从而创建新的注解。元注解有以下几种:@Target 注解...

2020-07-30 12:56:37 566

原创 Java 线程池

解释说明:Executor 是线程池最顶层的接口,在 Executor 中只有一个 execute 方法,用于执行任务。至于线程的创建、调度等细节由子类实现。ExecutorService 继承并拓展了 Executor,在 ExecutorService 内部提供了更全面的任务提交机制以及线程池关闭方法。ThreadPoolExecutor 是 ExecutorService 的默认实现,所谓的线程池机制也大多封装在此类当中。ScheduledExecutorService 继承自 E..

2020-07-29 19:04:23 180

原创 理解Android上下文Context

activity,service和application都间接继承Context,一个应用程序进程Context的数量等于activity和service的总数加1,即application的数量。我们开发中常用Context,使用场景一般为2大类,分别是:1.使用Context调用方法,比如启动Activity,访问资源,调用系统服务等。2.调用方法传入Context,如弹出Toast,创建Dialog等。Context是一个抽象类,内部拥有很多方法及静态常量,具体实现类为ContextImp

2020-07-27 21:45:43 199

原创 LeetCode:97. 交错字符串

1. 题目描述给定三个字符串s1,s2,s3, 验证s3是否是由s1和s2交错组成的。示例 1:示例2:2. 解题思路 s1 , s2 组成 s3 过程中不能改变 s1, s2 的字符顺序,示例2中 s1, s2 字符和与 s3 相同,但由于不能改变s1, s2 的字符顺序,结果为 false.90%的字符串问题可由动态规划解决,本题就是一道动...

2020-04-02 15:49:59 299

原创 leetcode:115. 不同的子序列

1.题目描述给定一个字符串S和一个字符串T,计算在 S 的子序列中 T 出现的个数。一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE"是"ABCDE"的一个子序列,而"AEC"不是)示例1:输入: S = "rabbbit", T = "rabbit"输出:3解释:如下图所示, ...

2020-04-01 22:25:11 143

原创 Android Handler 消息机制

一、Handler的简单使用class LooperThread extends Thread { public Handler mHandler; public void run() { Looper.prepare(); mHandler = new Handler() { ...

2020-03-28 22:40:59 139

原创 EventBus3.0源码解析(二):post()与postSticky()

在上一篇文章中,我们分析了register和unregister过程:EventBus3.0源码解析(一):register()与unregister()接下来我们分析post()与postSticky()。1.postSticky(Object event)这个方法是发送粘性事件,细节如下:public void postSticky(Object event) { ...

2020-02-17 14:59:24 371

原创 EventBus3.0源码解析(一):register()与unregister()

EventBus能够简化并且更加高效地在各组件间进行通信,本文基于EventBus3.1.1对其源码解析进行。1.getDfault()无论在进行注册register,unregister,或者是post时,都需先调用getDefault方法。方法细节:public static EventBus getDefault() { if (defaultInsta...

2020-02-16 21:25:54 413

原创 Android:实现井字棋小游戏

井字棋实现方式有许多,最简单的方法是将9个imagView组成棋盘,然后通过一些逻辑设计进行游戏。本文采用的是自定义View的方式进行游戏设计,通过继承View进行棋盘,选中状态绘制,效果如下:1.棋盘绘制 通过选取设置宽高中最小值作为控件宽高,并平均分为3段作为每小格的长度,在onDraw()方法中绘制棋盘,代码如下://重写onMeasure()设置宽高@Ov...

2020-01-01 23:43:15 3340

原创 Android Service总结

目录1.Service 简介2.Service 的生命周期3.Service 的基本用法1.Service 简介 Service 是Android四大组件之一,它的作用是实现程序后台运行。它的运行不依赖用户界面,生命周期长。比如执行下载,音乐播放等任务。Service一般依赖于创建它的进程,一旦所依赖进程被杀死,Service也会停止执行。Service默认执...

2019-12-18 21:08:34 174

原创 安卓Bug记录

1.Unable to start activity ComponentInfo{com.example.administrator.practice/com.example.administrator.practice.Main4Activity}: android.content.res.Resources$NotFoundException: Drawable com.example.adm...

2019-12-01 09:06:18 346

原创 Android 常用控件使用总结

目录1.通知的使用2.菜单的使用3.AlertDialog的使用 1.通知的使用 通知在状态栏,锁屏画面显示我们发送的信息,提醒用户。通知用法比较灵活,可以在活动中创建,也可以在服务,广播接收器里创建。下面以在活动中创建为例,代码如下:public class MainActivity extends AppCompatActivity { @Overri...

2019-11-21 22:20:42 230

原创 操作系统实践 笔记

记录一下,不然期末真的挂了。目录第一章Linux Introduction第二章 UNIX Shells第三章File System第六章 File Processing第一章Linux Introduction UNIX Software Architecture...

2019-11-21 22:18:27 229

原创 读书笔记:《深入理解java虚拟机》(二)

一. 垃圾回收垃圾回收指的是将已死对象所占内存空间释放,避免内存泄漏。java垃圾收集器是针对java堆和方法区。垃圾回收需要考虑3个问题:哪些内存需要回收?什么时候回收?如何回收?在java堆里面存放了几乎所有对象实例,回收前需确定这些对象哪些还“活着”,哪些已经“死去”。通常有2种方法。引用计数法:通过在对象请求头分配一个空间来保存被引用次数,每当一个地方引用它时,计数就加一;当引...

2019-11-09 19:46:06 133

原创 读书笔记:《深入理解java虚拟机》(一)

目录1. 运行时数据区域2.对象(HotSpot虚拟机为例)1. 运行时数据区域a.程序计数器:线程私有的内存空间,可看作当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变计数器的值来选取下条需要执行的字节码指令,分支,循环,跳转,异常处理,线程恢复等功能都需要计数器来完成。各个线程之间计数器互不影响,独立存储。如果线程正在执行的是java方法,计数器记录的是正...

2019-11-08 20:40:33 178

原创 设计模式——单例模式

单例模式(Singleton pattern),是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。如果仅仅是提供全局访问的方法,这种情况下考虑使用静态方法,当类中需要访问资源并需要关注类中对象状态时,则应该使用单例模式。如EventBus,内部缓存了订阅者及其订阅方法的信息,...

2019-11-03 10:39:13 151

原创 android学习路线

(图片来源于网络)热门框架源码分析android学习路线

2019-11-02 11:07:03 555

原创 View的事件分发机制总结

事件分发机制是指系统对用户手指接触屏幕时所产生的一系列MotionEvent对象在View的层级中如何传递所制定的机制。1.MotionEventMotionEvent是一个类,Android将输入事件都生成了 MotionEvent对象。主要有这几种事件类型:类型 说明 ACTION_DOWN 代表手指刚接触屏幕 ACTION_MOVE 代表手指在屏幕上移动...

2019-10-14 21:54:10 188

原创 自定义布局: HorizontalScrollView——支持横向滑动

这是一个支持横向滑动,并处理了滑动冲突的自定义ViewGroup。几乎涵盖了自定义viewGroup的所有知识,对于理解View的相关知识有一定的帮助,是一个不错的实战Demo。以下为功能,所做的处理及对应的知识点。1.支持横向滑动 为了使布局能够横向滑动,需要重写onTouchEvent()方法,在这个方法中判断是否为横向滑动,如果是的话就使用scrollBy()方法让布局内容滑...

2019-09-29 10:31:48 1202

原创 更好地理解 scrollBy() / scrollTo()

scrollTo()与scrollBy()是View提供于实现滑动的方法,其中scrollBy()内部调用了scrolTo()。scrollTo()是移动到具体坐标,scrollBy()是在当前情况下根据传入的偏移量移动。 /** * Move the scrolled position of your view. This will cause a call to * ...

2019-09-22 11:37:35 490

原创 java进阶文章链接

java 泛型:java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一 Java 泛型,你了解类型擦除吗?java 注解:深入理解Java注解类型 秒懂,Java 注解 (Annotation)你可以这样学java 反射:深入理解Java类型信息(Class对象)与反射机制 ...

2019-08-30 22:55:26 189

原创 Android activity总结

目录1.activity生命周期2.activity的启动方式1.activity生命周期(下图源网络)由图可知,activity生命周期包含7种方法。 onCreate():表示activity正在创建。我们可以在此方法完成一些初始化工作。此方法含有参数Bundle savedInstanceState,用 于恢复activity异常情况下被销毁...

2019-05-04 18:05:02 256

原创 Java 继承

目录1.继承的概念2.继承的特性3.super 与 this, final,static 关键字1.继承的概念       继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。       例...

2018-10-17 23:02:20 493

原创 Android自定义View: 组合按钮

       如上图,将两个按钮组合在一起,点击红色按钮将蓝色按钮隐藏或展开,中间用动画实现过渡,蓝色按钮上移或下移,红色按钮以一定规律旋转。实现思路不难,主要是熟悉一下自定义View的流程。      1.自定义属性。在values目录下新建文件,设置自定义View的属性。本例我们设置两个按钮的半径j就行了。<?xml version="1.0" encoding="utf-...

2018-10-02 23:43:01 871

原创 ViewPager 滑动切换效果

    ViewPager是一个允许页面左右滑动的布局管理器,不同的页面可以有不同数据。我们可以通过实现ViewPager.PageTransformer接口来自定义滑动切换效果。       我们需重写transformPage方法,这个方法有2个参数。第一个参数是指需要设置滑动效果的页面,包括即将滑出页面,即将滑入页面,已经滑出的页面,我们可以通过第二个参数判断第一个参数是指哪个页面。...

2018-09-30 19:45:54 3783 4

原创 Android 动画

目录一 . 补间动画与帧动画二 . 属性动画 一 . 补间动画与帧动画       1.补间动画        补间动画可以对view进行一系列动画操作。有以下四种:                有两种实现方式。一是通过配置文件实现。在res文件下新建anim文件夹,在此文件夹新建动画文件编写动画。例子:                      ...

2018-07-30 11:27:40 214

原创 Android SharedPreferences 与 SQLite 基本使用

目录一. SharedPreferences二. SQLite一. SharedPreferences SharedPreferences 属于轻量级的键值对存储方式,支持基本数据类型存储,所保存的数据会以xml格式文件储存在手机内存。 1.使用 SharedPreferences 储存数据 首先需要获取到 SharedPreferen...

2018-07-21 17:00:45 1336

原创 android RecyclerView 基础知识总结

目录一 . 介绍及基本用法二. 点击事件及分割线三 . 增加及删减item 一 . 介绍及基本用法  RecyclerView 是一个强大的滚动控件,应用场景广泛。像消息列表,微博信息等场景大多使用RecyclerView。它具有高度的解耦,异常的灵活性和更高的效率,逐渐替换掉ListView和GridView。  基本用法:   使用前先在 app/bui...

2018-07-12 11:32:28 392

空空如也

空空如也

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

TA关注的人

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