自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android 渲染性能

介绍了Android系统中有关性能问题的底层工作原理,也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个方面展开,Android的渲染机制,内存与GC,电量优化。Android的渲染机制Android UI and the GPU...

2020-01-17 15:10:56 373

原创 Flutter 学习之路 —— 汇总

目录页:记录 Flutter 学习历程

2020-01-15 15:46:44 238

原创 Dart 基础概念和内部原理

本文是目录页 具体介绍了 Dart基础概念和内部原理

2019-12-13 12:03:42 2073

原创 android项目 gradle 配置指南

gradle 概览 Groovy语言基础 android项目gradle配置指南gradle 详解 android gradle配置指南gradle 2.x升级到4.4gradle 2.14.1 ->gradle-4.4com.android.tools.build:gradle:2.2.3->3.1.2...

2019-12-13 11:41:12 807

原创 Flutter 3.0

Flutter 3.0 都有哪些新功能

2022-07-22 12:02:40 1301 1

原创 Flutter框架详解

关于Flutter框架的原理与优劣,一文通透。

2022-07-19 16:58:15 23897 2

原创 dart pragma注解 vm:entry-point

vm:entry-point 语用注释@pragma("vm:entry-point", ...) 必须放在类或成员上,以表明它可以在 AOT 模式下直接从本机或 VM 代码解析、分配或调用。背景Dart VM 预编译器(AOT 编译器)执行整个程序优化,例如摇树和类型流分析 (TFA),以减少生成的编译应用程序的大小并提高其性能。这种优化假设编译器可以看到整个 Dart 程序,并且能够发现和分析所有可能在运行时执行的 Dart 函数和成员。虽然 Dart 代码完全可用于预编译器,但嵌入器的本机代码和

2021-11-12 18:14:36 3791

原创 手动构建APK流程

了解构建流程,手动构建流程

2021-09-08 18:04:53 2263

原创 Java集合--HashMap源码解析

本文从源码角度,详细叙述HashMap实现原理

2021-09-03 17:11:30 197

原创 面向对象、设计原则、设计模式、编程规范和代码重构

实际上,面向对象、设计原则、设计模式、编程规范、代码重构,这五者都是保持或者提高代码质量,本质上都是服务于编写高质量代码这一件事的。当我们追本逐源,看清这个本质之后,很多事情怎么做就清楚了。

2021-03-24 19:35:19 302

原创 如何评判代码质量

最常用到几个评判代码质量的标准是:可维护性、可读性、可扩展性、灵活性、简洁性、可复用性、可测试性。其中,可维护性、可读性、可扩展性又是提到最多的、最重要的三个评价标准。要写出高质量代码,我们就需要掌握一些更加细化、更加能落地的编程方法论,这就包含面向对象设计思想、设计原则、设计模式、编码规范、重构技巧等等

2021-03-24 17:51:44 1366

原创 Android中一张图片需要占用多少内存

图片占内存多少的计算原理

2021-03-23 16:57:52 694 1

原创 Android如何优化Bitmap内存占用

如何优化bitmap的内存占用

2021-03-23 16:54:42 3857 5

原创 Android DisplayMetrics 详解

DisplayMetrics详解

2021-03-19 16:59:13 6047

原创 Flutter Curves 动画曲线示意图

Curves中动画曲线示意图

2021-03-17 16:22:17 550

原创 git commit 参数详解 --amend

git commit 参数详解 -m -a --amend

2021-03-16 11:10:35 7526

原创 git branch -d和-D

git branch -d 和-D的区别

2021-03-16 11:08:54 15002

原创 git checkout 参数详解

git checkout 参数详解

2021-03-16 11:07:26 1061

原创 git merge 的两种模式的区别 --no-ff与fast forward

介绍git merge 的两种模式 - - no-ff与fast forward的区别

2021-03-16 11:06:25 2966

原创 git reset 参数详解

git reset 参数详解

2021-03-16 11:04:04 879 1

原创 Flutter2的新功能

Flutter web and Null Safety move to stable, Flutter desktop moves to beta and so much more!

2021-03-08 10:41:37 777

原创 git常用命令

git常用命令git configgit clonegit initgit addgit statusgit commitgit log- -decorate- - log-size-L分支git branchgit checkoutgit mergegit resetgit config$ git config --global user.name "wrd"$ git config --global user.email "[email protected]"执行了上面的命令后,会在你的主目录(h

2021-02-22 19:34:10 216

原创 git log参数详解

git log参数详解

2021-02-22 19:26:57 4762 1

原创 git 回滚代码

怎么回滚代码到刚检出的状态

2021-02-20 18:20:31 277

原创 Git目录、工作目录、索引

Git目录、工作目录、索引

2021-02-19 17:16:08 978

原创 GIT的对象模型

GIT的对象模型SHA对象Blob对象Tree 对象Commit对象Tag对象对象模型与SVN的区别SHA所有用来表示项目历史信息的文件,是通过一个40个字符的(40-digit)“对象名”来索引的,对象名看起来像这样:6ff87c4664981e4397625791c8ea3bbb5f2279a3你会在Git里到处看到这种“40个字符”字符串。每一个“对象名”都是对“对象”内容做SHA1哈希计算得来的,(SHA1 是一种密码学的哈希算法)。这样就意味着两个不同内容的对象不可能有相同的“对象名”。

2021-02-19 17:03:00 554

原创 深度优先搜索

与广度优先搜索不同的是,深度优先搜索会优先考虑最近新遇到的搜索状态。所以算法会沿着一条路往下走,直到遇到目标状态,或者一条死路。

2021-02-19 10:14:38 140

原创 广度优先搜索

广度优先搜索是一个按顺序依次尝试可能的搜索选项的算法。换句话说,它每次都会选择尝试最先发现的但还没有尝试过的选项。

2021-02-18 17:43:05 387

原创 二分搜索

二分搜索算法用于高效地在有序数组A中查找一个目标值v。 和线性搜索不同,二分搜索利用数据结构中的信息让搜索更高效。高效算法的关键是信息。

2021-02-18 16:45:34 323

原创 java语法糖

语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。简而言之,语法糖让程序更加简洁,有更高的可读性。

2020-12-01 10:10:53 102

原创 JVM 调优

JVM调优其实就是通过调节JVM参数,即对垃圾收集器和内存分配的调优,以达到更高的吞吐和性能。

2020-11-30 16:02:26 93

原创 CMS垃圾回收器的工作过程,CMS收集器和G1收集器的区别

CMS(Concurrent Mark Sweep) 收集器:是一种以获得最短回收停顿时间为目标的收集器,标记清除算法,

2020-11-30 16:00:08 557

原创 什么是指针碰撞?什么是空闲列表?什么是TLAB?

指针碰撞、空闲列表、TLAB

2020-11-30 15:58:38 3774

原创 WeakHashMap的工作原理

WeakHashMap 类似HashMap ,不同点在WeakHashMap的key是弱引用的key。WeakHashMap具有弱引用的特点:随时被回收对象。发生GC时,WeakHashMap是如何将Entry移除的呢?

2020-11-30 15:55:02 247

原创 守护线程是什么?守护线程和非守护线程的区别是?守护线程的作用是?

**守护线程**是区别于用户线程哈,**用户线程**即我们手动创建的线程,而守护线程是程序运行的时候在后台提供一种**通用服务的线程**。垃圾回收线程就是典型的守护线程。

2020-11-30 15:49:23 6792 3

原创 JVM 的主要组成部分及其作用

JVM 的主要组成部分及其作用

2020-11-30 15:37:32 446 2

原创 什么是 Stop The World 什么是OopMap 什么是安全点

Stop The World、OopMap、安全点

2020-11-30 15:31:04 504

原创 虚拟机为什么使用元空间替换了永久代

表面上看是为了避免OOM异常。因为通常使用PermSize和MaxPermSize设置永久代的大小就决定了永久代的上限,但是不是总能知道应该设置为多大合适, 如果使用默认值很容易遇到OOM错误。当使用元空间时,可以加载多少类的元数据就不再由MaxPermSize控制, 而由系统的实际可用空间来控制。

2020-11-30 15:27:49 375

原创 对象一定分配在堆中吗?逃逸分析技术

逃逸分析是指分析指针动态范围的方法,它同编译器优化原理的指针分析和外形分析相关联。当变量(或者对象)在方法中分配后,其指针有可能被返回或者被全局引用,这样就会被其他方法或者线程所引用,这种现象称作指针(或者引用)的逃逸(Escape)。通俗点讲,如果一个对象的指针被多个方法或者线程引用时,那么我们就称这个对象的指针发生了逃逸。

2020-11-30 15:16:02 459

原创 Java中String的长度限制

其实是65535,但是由于JVM需要1个字节表示结束指令,所以这个范围就为**65534**了。超出这个范围在编译时期是会报错的,但是运行时拼接或者赋值的话范围是在整形的最大范围。

2020-11-30 14:47:57 1307

空空如也

空空如也

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

TA关注的人

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