自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BlueLzy的个人博客

个人小站:https://www.bluelzy.top

  • 博客(67)
  • 资源 (2)
  • 收藏
  • 关注

原创 【Gradle之旅-01】如何在Ubuntu安装Gradle

前言对于Android开发而言,Gradle算得上是一门必备技能,而想要学习Gradle,第一步就是在开发环境配置好Gradle。因此Gradle系列的第一步就是:如何安装Gradle。使用的开发环境:Ubuntu 20.04Java: JDK 11Gradle 6.4.1注意:如果是Mac或者Windows请另外查找相关文章,这篇文章只介绍Ubuntu下的环境搭建第一步很简单,只有3个小步骤,分别是:下载Gradle配置Gradle环境验证Gradle是否安装成功安装JDK

2022-01-25 23:04:43 4135 1

原创 JetPack基本组件一:Lifecycle

LifeCycle前言Hello大家好,这里是BlueLzy。本文是JetPack全家桶系列文章的第一篇。作为一名Android开发者,在2021年必备的技能之一就是熟练使用Google为我们提供的开发组件,这一套组件的名字就是:JetPack。里面包括了许多不同功能的SDK,Google推出这套开发组件的目的就是为了能够让开发者在遵循Android系统的生命周期的同时,写出Bug更少,代码量更少,性能更好的App。因此,这一系列文章会按照下面的顺序来介绍其中几个最主要的组件,在学习完这些基本组件之后

2021-10-16 16:16:30 254

原创 Java高级 - 多线程锁和同步问题

前言继上一篇Java高级 - 多线程必知必会之后,我们继续聊一下多线程编程中经常会遇到的同步问题以及对应的解决方式。首先提一下内存可见性,因为这个涉及到为什么会出现线程的同步问题。内存可见性这里引用一幅图来说明:引用自: http://concurrent.redspider.group/article/02/6.html由于在Java里面,Java的内存模型规定所有共享变量都存放在主内存中,而每个线程都会把用到的变量从主内存复制到自己的工作内存中。在线程中读写的变量其实都是自己工作内存的

2020-07-20 23:43:47 437

原创 Java高级 - 多线程必知必会

什么是线程在电脑打开任务管理器,我们能看到一个个的进程,这些就是计算机运行中的程序。而线程,则是进程中的一个实体,换句话说,线程是依附进程而存在的。从操作系统的角度来说,线程就是CPU分配的基本单位。从JVM的角度来说,它可以被看作是执行Java代码的最小单位。我们在执行main()方法的时候其实就是启动了一个JVM的进程,而main()方法所在的线程就是这个进程中的主线程。由于线程是进程的一个实体,因此一个进程可以包含多个线程,多个线程之间共享进程的堆和方法区,但是每个线程都有自己的程序计数器和栈。

2020-07-19 10:55:01 200

原创 SpareArray源码解析

什么是SparseArraySparseArray 是 android.util 包下一的一个类SparseArray中文直译过来就是:稀疏数组。顾名思义,这个数组和我们平时用到的Array不太一样。平时我们用到的Array都是按顺序排列的。而SparseArray可以实现间隔排列,也就是说一个大小为10的SparseArray,有可能是这样的[null, null, 1, null ,2, null, null, null, 3, null]。是不是有点神奇?问题 1: 为什么要实现这样一个数组呢

2020-07-08 00:42:18 235

原创 Java源码分析 - HashMap常用方法和扩容算法

前言本文对HashMap(JDK1.8)的源码进行分析,包括以下几个部分:常用方法(put(), get(), containsKey(), containsValue(), remove())内部类(entrySet())底层基本数据结构以及扩容算法解析什么是HashMapHashMap是基于数组扩展实现的通过<K,V> 通过这种键值对映射的方式来存储数据的一种数据结构。因此它具有在O(1)时间查找元素的效率。HashMap有几个基本概念:Hash函数:也称为散列函数,

2020-07-06 00:11:43 420 1

原创 Java源码分析 - LinkedList

什么是LinkedList和ArrayList不同,LinkedList是基于链表实现的线性数据结构。节点之间访问不是通过下标进行,而是通过指针。同时,LinkedList实现了List接口和Deque接口。在Deque接口中提供了许多有用的方法,我们下面会选一些详细说。这是LinkedList里面Node结构(静态内部类): private static class Node<E> { E item; Node<E> next;

2020-07-03 22:22:06 3108

原创 Java源码分析 - ArrayList

ArrayList是什么public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ // ...}继承AbstractList - 说明本身数据结构是列表实现List, RandomAccess, Cloneable, Serializable 这几个接口

2020-07-03 00:34:30 3318

原创 Java基础-枚举

什么是枚举在Java中,我们可以这样定义一个枚举类:public enum Size { SMALL, NORMAL, LARGE}这段代码的意思是:创建一个用来表示尺寸的枚举类,里面有大中小三种不同的尺寸。在代码层面的含义则是:创建了一个枚举类,里面有三个不同的对象。问题1:为什么说是三个不同的对象呢?既然是对象,那么自然就有构造方法了,因此我们也可以这样来定义一个枚举类: public enum Size { SMALL("1"), NORMA

2020-07-01 23:04:15 214

原创 初识SpringBoot-用IDEA创建工程

初识SpringBoot-用IDEA创建工程开发环境:Win10MySQL8.0IDEA 2019.2.4SpringBoot 2.2.6本文概要:用IDEA创建SpringBoot工程Win10安装MySQL8.0工程连接数据库前言:为什么要写这篇文章呢?作为一名Android开发,在刚入门SpringBoot的时候遇到了很多的障碍,哪怕只是新建项目这么一个简单的步...

2020-03-29 16:18:15 303

原创 使用Kotlin DSL构建Android项目

前言Android支持使用Kotlin DSL来构建Gradle脚本了,还不赶紧学习一波?本文主题:1.如何使用Kotlin DSL替换Groovy2.过程中遇到的问题以及解决方法为什么要使用Kotlin DSL使用Kotlin DSL 的优势:由于现在Kotlin是Android官方推荐语言,因此使用Kotlin构建Gradle脚本有利于整个项目开发语言的统一,不需要另外学习Gr...

2020-03-10 00:44:19 1691 2

原创 从LeetCode No.34谈二分查找

从LeetCode No.34说起题目描述:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: ...

2020-02-17 22:36:55 174

原创 OkHttp4.3源码解析之 - 重试和重定向

OkHttp4.3源码解析之 - RetryAndFollowUpInterceptor回顾上一篇文章:发起请求大家还记得OkHttp是如何发起一条请求的吗?上面这篇文章里介绍了OkHttp是在什么时候把多个拦截器加入到责任链中的。如果大家没看过的可以先去了解一下,因为这个流程和本文息息相关。如果是忘了的话我们再简单的回顾一遍:构建OkHttpClient对象构建Request对象...

2020-02-16 16:54:04 353

原创 OkHttp4.3源码解析之 - 发起请求

什么是OkHttp?OkHttp在Android开发领域里面应该是无人不知了吧。它是一个由Square公司开源的第三方库。主要用于处理网络请求。OkHttp Github地址:https://github.com/square/okhttp/关于Square公司,大家可以去看看他们的其他开源库,质量都挺高的,不仅包括Android相关的,还有Go,Ruby,JS,Kotlin等等Sq...

2020-02-02 01:06:43 517

原创 基于Android9.0的WindowManager源码解析

本文主题关于WindowManager这个复杂的系统,本文会基于Android9.0源码,把其中的关键代码截取出来进行分析,并通过问答的形式来进行叙述,最终回答以下几个问题:WindowManager是什么?它的作用是什么?Window和WindowManager如何关联?Window、WindowManager和WindowManagerService三者有什么关系?Window有哪...

2020-01-16 14:22:46 953

原创 Ubuntu18.04 网易云音乐无法打开

前言最近发现家里PC升级到Ubuntu18.04之后,网易云音乐无法打开了把解决问题的过程记录下来,也方便遇到这个问题的人。起因命令行打开网易云音乐(下面简称网易云)sudo netease-cloud-music终端报错:error while loading shared libraries: libvlc.so.5: cannot open shared obect ...

2019-02-16 13:35:34 612

原创 LeetCode 219.Contains Duplicate II

今天是大年初七,祝大家新年快乐!万事如意!恭喜发财!同时也是今年第一篇文章:LeetCode 219 题解说说LeetCode作为大名鼎鼎的面试刷题网站,最近也出了中文版,如果之前没有了解过的童鞋,建议去网站看看,里面有各大互联网公司的算法面试题,包括谷歌,Fackbook,微软,亚马逊等等,近年来国内的互联网公司也越来越重视算法和数据结构了,特别是后端,经常看到高级工程师 职位以上的jd都...

2019-02-12 00:14:08 188

原创 从Mac转投Ubuntu进行Android开发

Macbook Pro 13寸 乞丐版:开始撤退I7 7700 Win 10: 猥琐发育,别浪I5 4570 Ubuntu :进攻敌方水晶前言由于公司的Android项目过大,15年款13寸的乞丐版Macbook Pro 已经跑不动了,于是只好把项目导入到自己的PC上。而自己又用习惯了Macbook Pro的开发环境,对于Windows的命令行实在是无法忍受,于是给PC装了Ubuntu ...

2018-11-25 20:58:15 1452 2

原创 Ubuntu使用魅族手机进行Debug

最近在使用Ubuntu系统进行Android开发结果发现连接真机Debug的时候居然无法识别一番折腾以后解决了问题,同时把过程记录下来。前言由于公司的项目过大,用15年款13寸的乞丐版Macbook Pro 已经跑不动了,于是只好把项目导入到自己的PC上。而自己又用习惯了Macbook Pro的开发环境,对于Windows的命令行实在是无法忍受了,于是给PC装了个Ubuntu 16.04...

2018-11-25 20:56:51 521

原创 Kotlin学习之旅(D14)-学习资料汇总

首先祝所有程序员1024节日快乐我们也来到了Kotlin学习之旅的最后一天今天的主题是:学习资料汇总文章目录前言官方文档文档类在线编程书籍《Kotlin in Action》《Kotlin for Android Developers》《Programming Kotlin》总结视频Youtube - Kotlin TutorialB站- 黑马Kotlin教程其他视频[Introductio...

2018-10-24 22:13:13 423

原创 Kotlin学习之旅(D13)-第一个App之功能完善

Kotlin学习之旅第十三天今天主要是编写代码,继续实现其他的功能前言Kotlin学习之旅(D1)-学习计划&amp;基本语法Kotlin学习之旅(D2)-基本语法Kotlin学习之旅(D3)-类与继承Kotlin学习之旅(D4)-函数与Lambda表达式Kotlin学习之旅(D5)-高级语法Kotlin学习之旅(D6)-Kotlin Idioms part 1Kotlin学习之...

2018-10-22 21:25:16 251

原创 Kotlin学习之旅(D12)-第一个App之功能实现

Kotlin学习之旅第十一天今天主要是Koltin编写代码,进行功能实现 前言Kotlin学习之旅(D1)-学习计划&amp;amp;基本语法Kotlin学习之旅(D2)-基本语法Kotlin学习之旅(D3)-类与继承Kotlin学习之旅(D4)-函数与Lambda表达式Kotlin学习之旅(D5)-高级语法Kotlin学习之旅(D6)-Kotlin Idioms part 1Kotl...

2018-10-21 16:54:47 399

原创 Kotlin学习之旅(D11)-第一个App之项目介绍

Kotlin学习之旅第十一天接下来这三天,我们会用Kotlin编写一个App今天主要是项目介绍前言Kotlin学习之旅(D1)-学习计划&amp;基本语法Kotlin学习之旅(D2)-基本语法Kotlin学习之旅(D3)-类与继承Kotlin学习之旅(D4)-函数与Lambda表达式Kotlin学习之旅(D5)-高级语法Kotlin学习之旅(D6)-Kotlin Idioms p...

2018-10-21 16:53:46 234

原创 Kotlin学习之旅(D10)- Unit Test with Kotlin

Kotlin学习之旅第十天今天的主题是 - - Unit Test with Kotlin前言Kotlin学习之旅(D1)-学习计划&amp;基本语法Kotlin学习之旅(D2)-基本语法Kotlin学习之旅(D3)-类与继承Kotlin学习之旅(D4)-函数与Lambda表达式Kotlin学习之旅(D5)-高级语法Kotlin学习之旅(D6)-Kotlin Idioms part...

2018-10-18 23:54:39 1623

原创 Kotlin学习之旅(D9)-Android Extensions

Kotlin学习之旅第九天今天的主题是 - -Android Extensions前言Kotlin学习之旅(D1)-学习计划&amp;基本语法Kotlin学习之旅(D2)-基本语法Kotlin学习之旅(D3)-类与继承Kotlin学习之旅(D4)-函数与Lambda表达式Kotlin学习之旅(D5)-高级语法Kotlin学习之旅(D6)-Kotlin Idioms part 1K...

2018-10-17 23:26:59 1314

原创 Kotlin学习之旅(D8)-From Java to Kotlin

Kotlin学习之旅第八天今天的主题是:From Java to Kotlin前言Kotlin学习之旅(D1)-学习计划&amp;基本语法Kotlin学习之旅(D2)-基本语法Kotlin学习之旅(D3)-类与继承Kotlin学习之旅(D4)-函数与Lambda表达式Kotlin学习之旅(D5)-高级语法Kotlin学习之旅(D6)-Kotlin Idioms part 1Kot...

2018-10-15 21:25:59 321

原创 Kotlin学习之旅(D7)-Kotlin Idioms part 2

Kotlin学习之旅第七天今天的主题是:Kotlin中的习惯用法-第二部分前言Kotlin学习之旅(D1)-学习计划&amp;基本语法Kotlin学习之旅(D2)-基本语法Kotlin学习之旅(D3)-类与继承Kotlin学习之旅(D4)-函数与Lambda表达式Kotlin学习之旅(D5)-高级语法Kotlin学习之旅(D6)-Kotlin Idioms part 1今日目标...

2018-10-15 08:30:50 291

原创 Kotlin学习之旅(D6)-Kotlin Idioms part 1

Kotlin学习之旅第六天今天的主题是:Kotlin中的习惯用法-第一部分前言Kotlin学习之旅(D1)-学习计划&amp;基本语法Kotlin学习之旅(D2)-基本语法Kotlin学习之旅(D3)-类与继承Kotlin学习之旅(D4)-函数与Lambda表达式Kotlin学习之旅(D5)-高级语法习惯用法创建DTOs函数的默认参数过滤listString...

2018-10-15 08:30:12 243

原创 Kotlin学习之旅(D5)-高级语法

Kotlin学习之旅第五天今天的主题是:高级语法前言Kotlin学习之旅(D1)-学习计划&amp;基本语法Kotlin学习之旅(D2)-基本语法Kotlin学习之旅(D3)-类与继承Kotlin学习之旅(D4)-函数与Lambda表达式高级语法空安全写过Java代码的人都知道,空指针异常是时刻都要注意的,特别是在Android里面,一个NullPointerException就...

2018-10-11 21:17:10 338

原创 Kotlin学习之旅(D4)-函数与Lambda表达式

Kotlin学习之旅-第四天今天的主题是:函数与Lambda表达式前言Kotlin学习之旅(D1)-学习计划&amp;基本语法Kotlin学习之旅(D2)-基本语法Kotlin学习之旅(D3)-类与继承函数Kotlin里面的函数其实在之前的学习中已经见过了,通过 fun 关键字来标识fun double(x: Int): Int { return 2 * x}默认参数...

2018-10-10 21:25:21 175

原创 Kotlin学习之旅(D3)-类与继承

Day 3Kotlin学习之旅-第三天今天的主题是:类与继承前言Kotlin学习之旅(D1)-学习计划&amp;基本语法Kotlin学习之旅(D2)-基本语法今日目标今天空闲的时候 baidu一下,发现简书,掘金上有很多Kotlin学习总结,但是基本上都是把官方文档一字不落地复制粘贴了过来。我不希望自己也是这样子的,因此在Kotlin学习之旅里面:我只会把最常用的归纳总结起来,其...

2018-10-09 21:55:00 197

原创 Kotlin学习之旅(D2)-基本语法

Day 2Kotlin学习之旅的第二天今天让我们完成 基础语法 的学习前言昨天,我们学习了一部分的基础语法,文章链接:Kotlin学习之旅(D1)-学习计划&amp;基本语法最后还剩下三个基础语法没学:for循环和while循环when表达式遍历集合今天让我们一个个解决掉~循环for循环在Java,C,Python等各种编程语言中,都会有循环控制,其中for循环又是最为...

2018-10-08 21:16:27 240

原创 Kotlin学习之旅(D1)-学习计划&基本语法

2017年的Google I/O 开发者大会Kotlin正式成为了Android的官方支持语言2018年的国庆小长假最后一天BlueLzy正式开始Kotlin学习之旅学习计划学什么?今天是Kotlin学习之旅的第一天,这次Kotlin之旅的行程计划是21天目的:每天只要花30分钟-1个小时,坚持21天,掌握Kotlin开发Android项目所需知识包括:基础语法(2D)...

2018-10-07 18:33:53 549

原创 RecyclerView基本用法和资料总结

Learning By Doing一个Demo掌握RecyclerView基本用法前言由于RecyclerView已经出来很久了,关于RecyclerView的文章网上也有很多,所以这篇文章只是作为一个基本用法的总结 + 常见功能的参考链接,可以理解为一篇查阅/总结的文章。首先总结一下最基本的用法。RecyclerView使用使用RecyclerView的步骤添加...

2018-09-10 23:57:30 538

原创 Android DataBinding基本用法

Learning By Doing一个Demo掌握DataBinding的基本用法前言DataBinding 是Google推出的一个支持库,它的作用是:通过layout文件绑定app逻辑和UI的更新,尽可能地减少编码工作。说定义似乎有些隐晦,还是通过learning by doing的方式来学习吧。这篇文章包括以下几方面的内容:通过layout来绑定app逻辑layo...

2018-09-09 21:52:31 3484

转载 【转】如何提升你的能力?给年轻程序员的几条建议

作者:Glow 技术团队 &nbsp;, 责任编辑:帝都羊http://tech.glowing.com/cn/advices-to-junior-developers/0 题记一转眼工作已有8年,前两天公司一位初入职场的同事希望我给一些建议...

2018-08-01 00:44:51 197

原创 Scrapy入门-第一个爬虫项目

前言千辛万苦安装完Scrapy,当然要马上体验一下啦。 本文采用循序渐进的方式,一步步写出一个完整的爬虫,包括 使用Scrapy创建项目使用Scrapy爬取整个网页使用Scrapy爬取所需元素使用Scrapy保存数据到json文件相当于Scrapy入门教程中的基础篇,如果希望学习Scrapy这个强大的爬虫框架,只要懂一点点Python语法,可以跟着一起来动手了。创建项...

2018-07-23 00:27:47 6405 1

原创 Mac安装Scrapy及踩坑经验

前言系统 - macOS 10.13.6 Python - 2.7 和 3.6 共存Mac出厂自带python2.7版本,后面我又自己安装了Python3.X,于是电脑里就有两个版本共存的情况,今天打算装个Scrapy玩玩,不了解Scrapy的童鞋可以看官方文档:Scrapy官网文档结果没想到一装就是3小时,中间遇到了无数的坑,最终通过曲线救国的方式才把Scrapy装上了,于是趁...

2018-07-22 17:49:53 12058 7

原创 Python3的print函数换行问题

前言最近在看《python网络爬虫实战》,里面的第三章有个打印99乘法表的例子,但是由于书上代码基于Python2.X,我的电脑上是Python3.6,结果print()的时候出了问题,所以通过写博客的方式记录下来。Ptyhon2.X 版本python2.X的代码如下:class PrintTable(object): def __init__(self): ...

2018-07-22 13:46:29 93830 1

翻译 Android Room Entity使用

说明:Android Room 第二篇 - Entity使用主要介绍entity的作用原文地址:https://developer.android.com/training/data-storage/room/defining-data第一篇:Android Room概述使用Room entities 来定义数据当你在使用Room的时候,定义了一组相关的字段作为一个实体。对...

2018-07-08 23:40:01 3885

写给android开发者的kotlin指南.pdf

写给android开发者的kotlin指南,有目录有链接可跳转,排版精美。

2018-01-17

Technical Blogging

技术人员如何写博客,如何优化博客,如何搭建一个成功的技术博客的参考书籍

2018-01-17

空空如也

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

TA关注的人

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