- 博客(12)
- 收藏
- 关注
原创 JVM虚拟机理解(一):Java内存区域
栈存放基本类型(int, short, long, byte, float, double, boolean, char,注意:不包含String类型,它存放常量池)的变量数据和对象或数组的引用(首地址)。栈中的数据在使用的入口可以确切知道其所需的空间大小及生命周期,当没有引用之后就会自动稀放掉为该变量分配的内存空间。另外,栈还有一个重要的特性,存放在栈中的数据可以共享。堆存放所有new出来的对象。堆中的对象在运行期new的时候再动态分配内存,生命期事先编译器并不知晓,内存空间最终由java的垃
2022-03-18 02:38:48 842
原创 MYSQL 悲观锁和乐观锁的理解与使用
悲观锁,是指在数据处理的过程中,保持比较保守的态度,占据要操作的数据权限,待操作结束后再稀放,由数据自身提供的锁机制来实现,根据锁的粒度,有表锁(table lock)、行锁(row lock)。由于表锁占用资源较大,通常我们多使用行锁(本次也是记录行锁)。乐观锁,和悲观锁相反,认为在一般情况下,不会操作这种数据的冲突和数据的不一致,保存乐观的态度。然后大多通过编程方式实现,不依赖于数据库自身的锁机制。
2022-03-10 00:25:33 1691
原创 理解React的虚拟DOM
一、背景React是一个用于构建用户界面的JavaScript库,区别于老的前端开发技术,其最核心的就是引入了虚拟DOM的技术。为了对React有一个比较全面和深入的了解,所以把最近学习React虚拟DOM的知识,做个笔记,仅供学习。二、什么是虚拟DOM 那什么是虚拟DOM呢?官方解析是,Virtual DOM是一种编程概念。通俗点理解,虚拟DOM是一棵虚拟的JavaScript对象树,画重点,”虚拟的“、”JS对象“,指的是它把真实的网页文档节点,虚拟成一个个的j...
2022-02-16 23:07:18 2744 1
转载 React setState的实现原理(三)
本文转载自:https://www.cnblogs.com/jasonlzy/p/8046273.html前面提到事务即将结束时,会去调用FLUSH_BATCHED_UPDATES的flushBatchedUpdates方法执行批量更新,该方法会去遍历dirtyComponents,对每一项执行performUpdateIfNecessary方法,该方法代码如下:performUpdateIfNecessary: function (transaction) { if (this._pen
2020-07-09 11:30:10 293
转载 React setState的实现原理(二)
原文转载自:https://www.cnblogs.com/jasonlzy/p/8046256.htmlReact中的Transaction大家学过sql server的都知道我们可以批量处理sql语句,原理其实都是基于上一篇我们说的Datch Update机制。当所有的操作均执行成功,才会执行修改操作;若有一个操作失败,则执行rollback(回滚)。在React中,我们介绍过事件会在函数前后执行自己的逻辑,具体就是调用perform方法进入一个事件,这个方法会传入一个method参数.
2020-07-09 11:27:10 269
转载 React setState的实现原理(一)
前言首先在学习react的时候就对setSate的实现有比较浓厚的兴趣,那么对于下边的代码,可以快速回答吗?class Root extends React.Component { constructor(props) { super(props); this.state = { count: 0 }; } componentDidMount() { let me = this; me.setState({ count:
2020-07-09 11:17:43 458
原创 模拟实现Android的Handler
一、前言 在Android应用的开发中,Handler的使用是必不可少的,包括目前的面试也都比较喜欢问这一类的问题,所以感觉我们现在不了解Handler都不好意思开口说做Android应用开发的了。抱着最近一段时间对Handler源码的了解,决定通过模拟Handler的实现,来表达和记录下我对Handler内部关系和消息发送之间的简化关系。二、
2017-01-18 00:48:03 423
原创 简单封装okHttp网络请求框架
一、前言 目前好像使用okHttp网络请求框架的人越来越多了,比如大家会说它使用高效,安全等很多优点。毫无疑问,本人也使用一段时间了,不过可能很多人和我一样,在使用okHttp框架之前,可能是使用android-async-http这类框架的,相比前者,在使用okHttp框架完成一次请求,还是需要写蛮多代码的,而且挺多一部分是重复的代码,所以这也就是我准备对它进行二次
2017-01-08 16:40:46 522
原创 Android热修复动手实现
一、前言 最近看了很多第三方的热修复框架的实现,比如阿里的AndFix,对于我们在自己的app里面接入SDK很是方便,至于内部的实现基本不需要我们怎么关注都可以。如此,我们就真的变成搬砖的码农,所以,不行,我们得尝试自己手动来实现一遍安卓的热修复,究其是如何实现的。二、实现原理 在动手前,我们对其原理得有个大概的了
2017-01-07 21:42:58 1534
原创 Android应用增量更新
一、前言 最近发现公司的APP版本升级有点频繁,而每次版本升级又都是整个APP全部下载后升级,如果是在流量下载的情况下,耗费流量不说,还影响升级时间,当我们个别APP比较大的时候,这种很差的体验就越发暴露明显,接着就被产品轻视,被用户吐槽,一系列的不满情绪,促使后来使用增量更新的方法去解决。说得增量更新,相信大家对bsdiff 和 bspatch这两个开源的工具库
2016-12-28 23:20:34 411
原创 Android的Bitmap图片压缩与内存的关系
我们做Android应用的时候最不可避免的就是与图片打交道,而图片通常又是应用内存开销,影响性能的大头,因而这也是网上的帖子关于图片方面的内容热度比较高的原因之一。另外,发现身边的一些做Android应用开发的朋友,在处理图片这方面的问题的时候,基本就是“一把梭,拿起就干“,从网上拷贝了代码贴上去看到没报错了,就完事。缺乏深度的思考,孔子曰“学而不思则罔” ,这也就促使我冲动的写下该文。
2016-12-01 16:02:38 575
原创 xUtils3.0框架源码粗浅讲解
一年多前就已经使用过xUtils框架,但后来因为项目需求的一些原因放弃了使用。最近看到xUtils框架又有更新了,并已到3.0版本,按耐不住想窥视其源码。OK,废话少说,先来看下uUtils框架组成的四大块:ViewInjector注解模块、HttpManager网络请求模块、ImageManager图片模块、DbManager数据库模块。接下来将根据各个模块逐一来进行源码深入分析,不过在分析之前
2016-11-29 16:41:35 1696
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人