自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Gradle系列(1) Gradle入门介绍及Groovy基本语法介绍

1、Gradle基本入门介绍1、gradle/wrapper(1) wrapper 就是对gradle的一层封装,便于团队开发过程中统一Gradle的构建版本(2) 生成wrapper: 在项目的根目录下运行 gradlew wrapper(mac下运行 ./gradlew wrapper )命令2、gradle 常用命令行(1) 查看所有可执行的任务 gradlew task...

2019-12-29 16:51:15 230

原创 Vim常用操作命令

光标line的切换普通模式(编辑模式按下esc键进入普通模式)下输入下翻一屏:PageDown(或ctrl+F)上翻一屏:PageUp(或Ctrl+B)移到缓冲区的最后一行:G移动到缓冲区的第num行:num G移动到缓冲区的第一行:gg命令模式(普通模式下按:按键进入)的常用交互命令如果未修改缓冲区数据,退出::q取消所有对...

2020-05-03 17:11:31 199

原创 Https请求的加密过程

http与Https的区别https是在https的基础上做了一层数据加密处理,在一些安全要求比较高的场景中,数据在服务器和客户端之间传输的过程中,是要求对数据进行加密处理后再传输的,以保证被传输数据的安全性。加密方式对称加密对称加密的话,加密和解密过程中使用到的秘钥都是同一个,因此,对称加密要保证安全的话,秘钥就必须做好保密,只能让使用的人知道,不能对外公开。对称加密存在一个问...

2020-02-29 13:08:23 1124

原创 Java线程池几个关键构造参数的含义,以及之间的关系

ThreadPoolExecutor构造函数的几个关键参数的含义 /** * Creates a new {@code ThreadPoolExecutor} with the given initial * parameters. * * @param corePoolSize the number of threads to keep in th...

2020-02-27 10:12:24 794 1

原创 java内存模型与happens-before的关系

什么是happens-beforeJava5引入了明确定义的Java内存模型。其中最重要的一个概念就是happens-before关系。happens-before关系是用来描述两个操作的内存可见性的。如果操作X happens-before操作Y,那么X的操作结果对于Y是可见。同一个线程中,字节码的先后顺序也暗含了happens-before关系在程序控制流中靠前的字节码happen...

2020-02-11 15:00:51 156

原创 ThreadLocal解析

ThreadLocal的作用ThreadLocal常用来保存线程的私有数据,用它来完成线程之间的数据隔离,达到数据同步安全的目的,线程利用ThreadLocal来保存一份数据副本在其内部。下面我们就来分析下ThreadLocal的内部实现原理。关键类ThreadLocal$ThreadLocalMapThreadLocal的内部类,其内部用一个Entry[]数组,来描述和封装一个存储T...

2020-02-06 12:41:26 142 2

原创 VSync信号的由来以及用途

VSync的由来,用来解决什么问题的。单缓冲区在早期android(4.1以前) UI显示利用的是单缓冲区,在单缓冲区情况下,CPU和GPU绘图过程和屏幕刷新所用的buffer是同一块,假设此时屏幕的刷新频率和CPU/GPU的绘制速度不一致时,侧可能出现屏幕“割裂”的现象,即屏幕上同时显示两个不同帧中的部分画面。双缓冲区为了解决单缓冲区带来的问题,那么双缓冲区就因运而生了,什么是双双...

2020-02-04 18:01:16 1695

原创 JVM内存管理和GC

JVM内存管理以及垃圾回收。1、虚拟机垃圾收集所关注的区域垃圾收集只关注堆和方法区两个运行时数据区域其他区域程序计数器、虚拟机栈、本地方法栈这些都是随线程而生,随线程而亡的。2、自动垃圾手机的前提是要知道哪些内存可以被释放和回收。对于实例收集监测主要有两种基本算法,引用计数 和 可达性分析1、引用计数算法为对象添加一个引用计数器,没被引用一次计数器加一,引用被释放则计数器减一...

2020-01-30 15:53:12 100

原创 并发编程中各种锁的介绍

1、乐观锁悲观锁以及它的应用1、悲观锁1、悲观锁是一种悲观的并发策略,总是认为只要不去做正确的同步措施(例如加锁),那就会出问题,无论共享数据是否真的会出现竞争,它都要进行加锁。2、java中利用synchronize的锁属于悲观锁。2、乐观锁1、基于冲突检测的乐观并发策略,即先进性操作,如果没有其他线程争用共享数据,那就操作成功了;如果共享数据有争用,那就采用补救措施。...

2020-01-21 23:09:29 265

原创 Gradle系列(4) Android Gradle

android{}其实是Gradle的一个第三方插件扩展类型,由google团队开发的。从Android角度看,Android插件是基于Gradle构建的,和Android Studio完美结无缝搭配的新一代构建系统。下面我们看看Android官方对他的介绍。(1)很容易的实现代码和资源的重用。(2) 很容易创建应用的衍生版本,所以不管是创建多个apk,还是不同功能的应用都很方便。比如说...

2020-01-01 20:52:48 150

原创 Gradle系列(3) Gradle插件的作用及用法

Gradle插件1、Gradle插件概念介绍首先我们来认识下什么是gradle插件,插件顾名思义是具有插拔功能的小部件,这个小部件可以在我们的项目中随插随拔随用,那么插件在项目的实际开发过程中能给我们带来什么作用呢?(1)添加插件可以添加任务到项目中,帮我们完成测试、编译、打包等工作。(2)可以添加依赖配置到项目中来,通过这些依赖配置来配置我们项目构建过程中需要的依赖,比如编译过程...

2019-12-29 17:25:10 1087

原创 Gradle系列(2) Task的介绍和用法

概念介绍Gradle中任务是其设计的核心之一,在利用Gradle构建项目的过程中task起着至关重要的地位,task在gradle脚本中就像其他语言中的方法一样,一个任务代表中一种具体的功能。项目的构建工作都是由一系列不同功能的task组成的。下面我们就来具体的了解下task在gradle中的用法。用法介绍Gradle中有很多创建task的方式,这主要是依赖于Project给我们提供...

2019-12-29 17:10:40 495

空空如也

空空如也

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

TA关注的人

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