自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 「开眼Eyepetizer」SimpleEyes 学习Kotlin必备良器

介绍SimpleEyes是一款基于仿开眼视频App,力求与原始开眼App相似(附上相关App参考版本,如有需要可下载开眼Version 3.8.1.2.216 ),该项目中采用多Activity+多Fragment开发。使用MVP+RxJava+Retrofit架构。主要采用语言Kotlin,目前该项目持续开发中。如果你愿意和我一起开发,或者有任何问题,...

2018-04-10 09:35:00 313

原创 为什么Java的泛型要用"擦除"实现

春熙路.JPG前言在 Java 中的 泛型,常常被称之为 伪泛型,究其原因是因为在实际代码的运行中,将实际类型参数的信息擦除掉了(Type Erasure)。那是什么原因导致了 Java 做出这种妥协的呢?下面我就带着大家以 Java 语言设计者的角度,带领大家一起了解这里面的辛酸过往。什么是真泛型在了解 Java "伪泛型" 之前,我们先简单讲一讲"真泛型"与...

2020-04-22 00:06:37 2643 2

原创 ViewModel 这些知识点你都知道吗?

成都.JPG前言ViewModel 作为 Jetpack 中的明星组件,相信大家都对其有一定的了解。在 Google 的官方介绍中也详细的罗列了 ViewModel 的优点,如:可以提供和管理UI界面数据。(将加载数据与数据恢复从 Activity or Fragment中解耦)可感知生命周期的组件。不会因配置改变而销毁。可以配合 LiveData 使用。...

2020-03-01 23:06:02 3575 1

原创 Androidx 下 Fragment 懒加载的新实现

Fragment.jpg前言年后最后一篇文章啦,在这里先祝大家新年快乐~最重要的抽中全家福,明年继续修福报????以前处理 Fragment 的懒加载,我们通常会在 Fragment 中处理 setUserVisibleHint + onHiddenChanged 这两个函数,而在 Androidx 模式下,我们可以使用 FragmentTransaction.se...

2020-01-19 00:15:01 1427

原创 Android 注解系列之EventBus3“加速引擎“(五)

bus.jpg前言在上篇文章 Android 注解系列之 EventBus3 原理(四)中我们讲解了 EventBus3 的内部原理,在该篇文章中我们将讲解 EventBus3 中的 “加速引擎"---索引类。阅读该篇文章我们能够学到如下知识点。EventBus3 索引类出现的原因EventBus3 索引类的使用EventBus3 索引类生成的过程Even...

2019-10-22 23:40:35 352

原创 Android 注解系列之 EventBus3 原理(四)

bus.jpg前言在之前的文章 Android 注解系列之APT工具(三) 中,我们介绍了 APT 技术的及其使用方式,也提到了一些知名的开源框架如 Dagger2、ButterKnife、EventBus 都使用了该技术。为了让大家更好的了解 APT 技术的使用,在接下来的文章中我将会着重带领大家来了解 EventBus 中 APT 技术的使用,在了解该知识之前,...

2019-10-22 23:36:40 293

原创 Git新手教程-添加忽略文件(十)

title.jpg前言通过前面的文章,我相信大家已经对 Git 有所掌握了,现在还剩下最后一个知识点,就是让 Git 添加忽略某些文件。在实际的项目开发中,我们可能不想将一些文件添加到 Git 仓库中。比如,一些敏感文件、临时文件、自动生成文件、日志文件等。那应该怎么操作呢?实际例子假设我们想创建一个项目并使用 Git 进行管理,现在我们有三个文件 A.md、B...

2019-10-13 20:20:53 1870

原创 Git新手教程-远程仓库(九)

title.jpg前言在前面的文章中,我们一直介绍的在本地Git的仓库相关知识点。而在实际的项目开发中,大多数情况下,我们往往需要和他人进行合作。因此学习如何与他人协作开发项目使我们必须要学习与掌握的知识点。在接下的的文章中,我们将讲解什么是远程仓库,以及如何运用远程仓库。在本文中将介绍如下命令:git remote:管理远程仓库。git push :将修改推...

2019-10-11 23:45:30 228

原创 Git新手教程-存储与清理(八)

title.jpg前言在实际开发中,常常会遇到这样的情况,我们正在 dev 上开发一个功能,这个时候突然接到上级命令,需要修改一个紧急 bug-5501 ,当然我们马上想到的就是创建一个 branch bug-5501 的分支来修复它,但是这个时候我们在 dev 上的功能已经写了一半了,如果我们直接创建分支,并 chekcout branch bug-5501 的话...

2019-10-11 23:43:52 834

原创 Git新手教程-日志提交规范(五)补充

title.jpg前言如果大家学习了之前的文章Git新手教程-向仓库中添加commit(五),我相信大家肯定还会为如何提交一个比较规范的 commit 信息而烦恼,虽然我们在上面的文章中介绍了两篇相关的文章:怎么写 Git Commit MessageCommit message 和 Change log 编写指南我相信大家肯定还是会疑惑。这里就以我之前理...

2019-10-11 23:42:27 677

原创 Git新手教程-撤销更改(七)

title.jpg前言在前面的文章中,我们学习了标签、分支、和合并。现在我们将学习Git中另外的三个命令git commit --amend , git revert , git reset。下面简单的介绍中几个命令的功能:git commit --amend :可以修改最后一次提交中的内容,加东西,加文件。修改 commit 信息。git revert ...

2019-10-11 23:41:12 374 1

原创 Git新手教程-标签、分支和合并(六)

title.jpg前言在之前的文章中,我们已经对仓库和提交已经有一定的了解了,在该篇文章中,我们将学习git tag、git branch、 git checkout 和 git merge。下面简单的介绍一下几个命令的功能:使用 git tag 你可以为特定提交添加标签。标签是提交的额外标记,可以指示有用的信息。使用 git branch 你可以创建分支。用...

2019-10-11 23:39:48 886

原创 Git新手教程-向仓库中添加commit(五)

title.jpg前言在该篇文章中,我们终于要来学习如何创建自己的提交(commit),在前面的文章中,我们已经学会使用 git init 命令来创建新仓库,使用 git clone 命令来复制现有仓库,使用 git log 命令来查看现有的提交。以及使用非常重要的 git status 命令来查看仓库的状态。本篇文章会在这些知识的基础上添加 git add 、 g...

2019-10-11 23:37:32 10177 1

原创 Git新手教程-查看仓库的历史记录(四)

title.jpg前言在前面的文章中,我们学习了如何创建仓库。现在我们将学习如何查看仓库的历史记录,之所以没有先讲解如何向仓库如何提交commit,是因为我觉得,只有先了解历史记录中包含哪些信息后,我们才能更好的创建良好的提交。有了良好的提交,才会有助于以后我们对项目的整体回顾。在本文章中,我们将介绍 git log 和 git show 两个指令,这里先简单介绍一...

2019-10-11 23:35:27 2031

原创 Git新手教程-从头创建仓库(三)

title.jpg前言在上篇文章中,我们学习了版本控制系统的一些专业术语,我们在计算机上也安装了Git,并为Git做了一些初始配置,比如添加点击邮件,名字。及配置默认的Git的默认编辑器。在本篇文章中,我们将学习仓库的创建。在该篇文章中,我们不仅将学习如下三个命令git init、git clone、和git status,还将会学习该命令在IntelliJ IDE...

2019-10-11 23:33:50 445

原创 Git新手教程-Git的下载与设置(二)

title.jpg前言在前面的文章中,我们介绍了Git的基本概念,了解的Git常用的术语。相信大家对Git已经有一个基本的了解了。工欲善其事,必先利其器。让我们去下载并配置Git吧。Mac/Linux/Windows设置我们可以根据自己的系统,选择不同的版本。推荐上官网直接下载最新的版本。跳转到Git相关下载界https://git-scm.com/down...

2019-10-11 23:31:09 313

原创 Git新手教程-什么是版本控制(一)

title.jpg前言本来不打算写相关Git系列教程,因为网上已有廖雪峰老师的《Git教程》,及扔物线老师的《Git原理及使用指南》,怕自己写不好,写不全,讲不清。但自己学习 Git 后,又按捺不住想写的冲动,所以最终我还是动笔了。为了让初次接触 Git 的小伙伴快速上手,整个系列不打算深入的讲解Git,而会将重心放在Git的常用概念及频率较高的Git命令。同时又因...

2019-09-28 23:11:57 1860 2

原创 Java并发编程之线程篇之线程间通信(四)

IMG_0140.JPG前言在上篇文章Java并发编程之线程篇之线程中断(三)中我们讲解了线程中断的相关知识点,现在我们来了解一下线程间的通信。线程间的通信在我们实际项目中是不可或缺的,多数情况下,我们需要创建多个线程,配合完成某项任务。合理并正确使用线程间的通信方式,是作为一个良好程序员必须掌握的技能。那现在就让我们来了解在Java中线程...

2019-08-18 21:20:00 183

原创 Java并发编程之线程篇之线程中断(三)

IMG_0141.JPG前言在上篇文章Java并发编程之线程篇之线程简介(二)中我们基本了解了如何创建一个线程并执行相应任务,但是并没有提到如何中断一个线程。例如:我们有一个下载程序线程,该线程在没有下载成功之前是不会退出的,假如这个时候用户不想下载了,那我们该如何中断这个下载线程呢?下面我们就来学习如何正确的中断一个线程吧。对于过时的...

2019-08-18 21:02:00 226

原创 Java并发编程之线程篇之线程简介(二)

IMG_0142.JPG前言在上一篇文章中Java并发编程之线程篇-线程的由来已经主要讲解了线程的由来,以及进程与线程的关系。接下来我们就继续讲解在Java中线程的相关知识。主要内容包括Java构造与启动线程的方式、线程优先级、线程的状态等知识点。希望大家继续保持一个热爱学习的心。快来和我一起学习吧。Java程序中进程和线程的关系在Ja...

2019-08-18 20:59:00 359

原创 Java并发编程之线程篇之线程的由来(一)

IMG_0143.JPG前言在Java并发编程中线程的使用尤为重要。了解线程的由来,使用场景及注意事项是作为一个合格的Java程序员必备的技能。本文章中会对线程的由来、进程与线程的区别、及线程的使用场景进行简单介绍。希望通过该文章,小伙伴们能对线程有一个更深的了解。从操作系统发展了解线程线程的出现,离不开进程。而进程的出现又离不开操作系...

2019-08-18 20:52:00 235 1

原创 自定义View事件之进阶篇(四)-自定义Behavior实战

女票镇楼.jpg前言在上篇文章自定义View事件之进阶篇(三)-CoordinatorLayout与Behavior中,我们介绍了CoordainatorLayout下的Behavior机制,为了帮助大家更好的理解并运用Behavior,现在我们通过一个Demo,来巩固我们之前学习的知识点。该博客中涉及到的示例,在NestedScrol...

2019-08-02 12:37:00 896

原创 自定义View事件篇进阶篇(三)-CoordinatorLayout与Behavior

IMG_0096.JPG前言在上篇文章中,我们介绍了NestedScrolling(嵌套滑动)机制,介绍了子控件与父控件嵌套滑动的处理。现在我们来了解谷歌大大为我们提供的另一个控件的交互布局CoordainatorLayout。CoordainatorLayout对于Android开发老司机来说肯定不会陌生,作为控制内部一个或多个的子控件协...

2019-08-02 00:43:00 382

原创 自定义View事件篇进阶篇(二)-自定义NestedScrolling实战

slice.jpg前言在上篇文章自定义View事件之进阶篇(一)-NestedScrolling(嵌套滑动)机制中,我们分析了谷歌对NestedScrolling机制的设计,了解的不同接口的使用场景。现在就让我们一起结合一个实际的使用例子,来巩固之前学习的知识点吧。效果展示先看我们需要仿写的实际效果吧。如下图所示:demo展...

2019-07-29 13:53:00 444 1

原创 自定义View事件之进阶篇(一)-NestedScrolling(嵌套滑动)机制

image.png最近一段时间,一直都在忙于找工作。虽然花费了三个月的时间,但是结果并不是很美满。想去大厂、想去好公司、想遇见更厉害的人的愿望还是没有实现。或许是自己不够强大,或许自己不够努力,或许需要一定运气。生活总是需要经历一些波折。没有谁总是能一帆风顺。接下来一段时间内,会继续更新文章。希望大家能继续关注。Thanks~前言在L...

2019-07-29 13:18:00 938

原创 volatile修饰数组,那么数组元素可见吗?

bg.jpg前言最近一段时间,在看并发集合的源码,发现了一个非常有趣的现象。我们都知道并发集合,为了保持对其他线程的可见性,通常集合中的方法都会使用CAS、volatile、synchronized、Lock等方式。但是在CopyOnWriteArrayList与ConcurrentHashMap中,对其中的存放数据的数组的操作却截然不同。...

2019-04-09 15:29:00 9669 5

原创 BAT大厂Android面试知识点,请客官拿好

bat.jpeg前言年年寒冬,年年也挡不住一个安卓程序员追求大厂的决心。想要进入大厂,我们需要掌握哪些知识点呢?这里,我为大家梳理了一个整体的知识架构。整体包括Java、Android、算法、网络等,并且我也在相应知识点下推荐了与该知识点相关的书籍与博客。希望大家阅读之后,能帮助大家完善与整理自己的知识体系。祝大家早日进入自己理想的公司~~...

2019-02-23 03:21:00 243

原创 Java并发编程之锁机制之ReentrantReadWriteLock(读写锁)

蓝天.jpg前言在前面的文章中,我们讲到了ReentrantLock(重入锁),接下来我们讲ReentrantReadWriteLock(读写锁),该锁具备重入锁的可重入性、可中断获取锁等特征,但是与ReentrantLock不一样的是,在ReentrantReadWriteLock中,维护了一对锁,一个读锁一个写锁,而读写锁在同一时刻允许...

2018-12-18 19:29:00 165

原创 在安卓的道路上铿锵前行

你不是一个人.png时间过的真快,马上现在已是2018年的最后一个月了。算算日子,从毕业到现在。从事安卓开发,快三个年头。这一路走来,着实不易,想和大家分享我的故事。分享这一路走来的点点滴滴与心路历程。或许在如此寒冷的冬季,大家能相偎取暖。对于所有从事IT事业的工作者来说,选择这个行业的原因有千千万。而我,很幸运的就与计算机早早的结缘了。...

2018-12-16 16:56:00 269 2

原创 Java并发编程之锁机制之(ReentrantLock)重入锁

小兔子.jpg最近在忙公司的项目,现在终于有时间来写博客啦~开心开心前言通过前面的文章,我们已经了解了AQS(AbstractQueuedSynchronizer)内部的实现与基本原理。现在我们来了解一下,Java中为我们提供的Lock机制下的锁实现--ReentrantLock(重入锁),阅读该篇文章之前,希望你已阅读以下文章。...

2018-11-23 13:33:00 138

原创 Java并发编程之锁机制之Condition接口

book.jpg前言在前面的文章中,我曾提到过,整个Lock接口下实现的锁机制中AQS(AbstractQueuedSynchronizer,下文都称之为AQS)与Condition才是真正的实现者。也就说Condition在整个同步组件的基础框架中也起着非常重要的作用,既然它如此重要与犀利,那么现在我们就一起去了解其内部的实际原理与具体逻...

2018-11-12 16:54:00 626

原创 Java并发编程之锁机制之LockSupport工具

长鼻子.jpg关于文章涉及到的jdk源码,这里把最新的jdk源码分享给大家----->jdk源码前言在上篇文章《Java并发编程之锁机制之AQS(AbstractQueuedSynchronizer)》中我们了解了整个AQS的内部结构,与其独占式与共享式获取同步状态的实现。但是并没有详细描述线程是如何进行阻塞与唤醒的。我也提到了...

2018-11-02 16:55:00 317

原创 Android 注解系列之APT工具(三)

该文章中涉及的代码,我已经提交到GitHub上了,大家按需下载---->源码骑车车.jpg前言在上篇文章Android 注解系列之Annotation(二)中,简要的介绍了注解的基本使用与定义。同时也提出了以下几个问题,当我们声明了一个注解后,是不是需要手动找到所有的Class对象或Field、Method?,怎么通过注解生成新...

2018-10-29 17:09:00 377

原创 Android 注解系列之Annotation(二)

居家程序员.jpg注解基本概念注解(也称为元数据),为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便的使用这些数据。其中注解是总到引入到JAVA SE5的重要的语言变化之一。其可以提供用来完整的描述程序所需的信息,而这些信息是无法用Java表达的。因此,注解使得我们能够以将由编译器来测试和验证的格式,存储有关程...

2018-10-15 17:42:00 267

原创 Java并发编程之锁机制之AQS(AbstractQueuedSynchronizer)

爆炸.png该文章属于《Java并发编程》系列文章,如果想了解更多,请点击《Java并发编程之总目录》前言在上篇文章 《Java并发编程之锁机制之Lock接口》中,我们已经了解了,Java下整个Lock接口下实现的锁机制是通过AQS(这里我们将AbstractQueuedSynchronizer 或AbstractQueuedLong...

2018-10-11 15:55:00 198

原创 Java并发编程之锁机制之Lock接口

小盒子.jpg该文章属于《Java并发编程》系列文章,如果想了解更多,请点击《Java并发编程之总目录》前言在上篇文章《Java并发编程之锁机制之引导篇》中,我们大致了解了Lock接口(以及相关实现类)在并发编程重要作用。接下来我们就来具体了解Lock接口中声明的方法以及使用优势。Lock简介Lock 接口实现类提供了比使用 sy...

2018-10-11 15:53:00 400

原创 Java并发编程之锁机制之引导篇

小石头.jpg该文章属于《Java并发编程》系列文章,如果想了解更多,请点击《Java并发编程之总目录》前言在前面的文章中。我们了解了volatile、了解了synchronized。现在我们来了解一下Java SE 5之后新增加的Lock接口(以及相关实现类)实现的锁功能。在阅读该系列文章之前,希望你已经掌握了volatile原理及...

2018-10-11 15:51:00 280

原创 Java并发编程之原子类

天天.jpeg该文章属于《Java并发编程》系列文章,如果想了解更多,请点击《Java并发编程之总目录》前言在上篇文章Java并发编程之synchronized中,曾描述Java提供了两种方式来处理线程安全的问题。第一种是互斥同步(悲观锁),第二种是采用非阻塞式同步(乐观锁)。虽然以上两种方案都能解决线程安全的问题。但是在JDK1.5...

2018-09-23 00:42:00 187

原创 Java并发编程之synchronized

学习.jpeg该文章属于《Java并发编程》系列文章,如果想了解更多,请点击《Java并发编程之总目录》前言上篇文章我们讲了volatile关键字,我们大致了解了其为轻量级的同步机制,现在我们来讲讲我们关于同步的另一个兄弟synchronized。synchronized作为开发中常用的同步机制,也是我们处理线程安全的常用方法。相信大...

2018-09-23 00:33:00 270

原创 Java并发编程之Volatile

认真.png该文章属于《Java并发编程》系列文章,如果想了解更多,请点击《Java并发编程之总目录》前言在前面的文章中,我们已经了解了Java的内存模型,了解了其可见性问题及指令重排序及Happen-Before原则,现在我们来了解一下关键字volatile。在Java中volatile可以算是Java提供的轻量级同步实现机制,但是...

2018-09-23 00:27:00 139

空空如也

空空如也

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

TA关注的人

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