![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程
文章平均质量分 83
普通网友
这个作者很懒,什么都没留下…
展开
-
Promise自定义封装
文作为本人学习总结之用,以笔记为主,同时分享给大家.本篇文章是B站尚硅谷最新Promise视频的部分笔记因为个人技术有限,如果有发现错误或存在疑问之处,欢迎指出或指点!不胜感谢!基本原理Promise 是一个类,在执行这个类的时候会传入一个执行器,这个执行器会立即执行Promise 会有三种状态Pending 等待Fulfilled 完成Rejected 失败状态只能由 Pending --> Fulfilled 或者 Pending --> Rejected,且一但发生改变便原创 2021-10-18 18:50:47 · 187 阅读 · 0 评论 -
手把手教你实现一个方法耗时统计的 java agent
前面有两篇铺垫博文,在博文《200303-如何优雅的在 java 中统计代码块耗时》,其最后提到了根据利用 java agent 来统计方法耗时博文《200316-IDEA + maven 零基础构建 java agent 项目》中则详细描述了搭建一个 java agent 开发测试项目的全过程本篇博文将进入 java agent 的实战,手把手教你如何是实现一个统计方法耗时的 java ag...原创 2020-03-17 20:26:26 · 273 阅读 · 0 评论 -
JSON命名约定[关闭]
JSON命名是否有标准? 我看到大多数使用由下划线(lower_case)分隔的小写的示例。 但是,你可以使用PascalCase或camelCase吗?#1楼在本文档中, Google JSON样式指南 (在Google上构建JSON API的建议),它建议:属性名称必须是camelCased ,ASCII字符串。第一个字符必须是字母,下划线(_)或美元符号($)。例:{“thi...原创 2020-03-14 12:16:49 · 490 阅读 · 0 评论 -
五分钟新概念之函数劫持
今天接触到了一个陌生的名词:函数劫持,查了一些资料记录一下。函数劫持的意思是在一个函数运行之前把它劫持下来,添加我们想要的功能,然后再调用原来的函数执行。这也是常见的钩子函数的原理之一。举一个简单的例子:var _alert = alert;window.alert = function(s) {console.log(‘alert:’, s);_alert(s);}复制代码二、应...原创 2020-03-06 19:29:24 · 569 阅读 · 0 评论 -
何时使用 Map 来代替普通的 JS 对象
JS 普通对象 {key: ‘value’} 用于存放结构化数据。但有一件事我觉得很烦:对象键必须是字符串(或很少使用的 symbol)。如果将数字用作键会怎样? 在这种情况下不会有错误:const names = {1: ‘One’,2: ‘Two’,};Object.keys(names); // => [‘1’, ‘2’]复制代码JS 会隐式地将对象的键转换为字符串,这...原创 2020-02-25 21:53:18 · 199 阅读 · 0 评论 -
Java并发编程—并发流程控制与AQS原理及相关源码解析
并发流程控制1.1 什么是并发流程控制并发流程控制,就是让线程之间相互配合完成任务,来满足业务逻辑如:让线程A等待线程B完成后再执行等策略1.2 并发流程控制的工具类作用说明Semaphore信号量:可以通过控制“许可”的数量,来保证线程间配合线程只有拿到了许可才可以继续运行CyclicBarrier循环栅栏:线程会等待,直到足够多线程达到了规定数量,再执行下一步任务...原创 2020-02-24 14:55:45 · 158 阅读 · 0 评论 -
Java并发原理抽丝剥茧,读写锁ReadWriteLock实现深入剖析
前面的章节中我们分析了Java语法层面的synchronized锁和JDK内置可重入锁ReentrantLock,我们在多线程并发场景中可以通过它们来控制对资源的访问从而达到线程安全。这两种锁都属于纯粹的独占锁,也就是说这些锁任意时刻只能由一个线程持有,其它线程都得排队依次获取锁。有些场景下为了提高并发性能我们会对纯粹的独占锁进行改造,额外引入共享锁来与独占锁共同对外构成一个锁,这种就叫读写锁。为...原创 2020-02-24 12:58:18 · 128 阅读 · 0 评论 -
一文完全吃透 JavaScript 继承
原型链是实现原型继承的主要方法,基本思想就是利用原型让一个引用类型继承另一个引用类型的属性和方法。实现原型链的基本模式function SuperType(){this.property=true;}SuperType.prototype.getSuperValue=function(){return this.property;}function SubType(){this....原创 2020-02-24 12:12:40 · 93 阅读 · 0 评论 -
避开NullPointerException的10条建议
NullPointerException应该是 Java 开发中最常出现的问题,也是 Java 程序员最容易犯的错误。虽然看起来是个小错误,但带来的影响却不小,Tony Hoare(null 引用的发明者)在 2009 年说过 NPE 大约给企业造成数十亿美元的损失。在这工作半年内,我就踩了好几次 NPE 的坑。举个例子,我需要在原有逻辑上加一段代码,而新加的代码报错抛出了 NPE,同时又没做异常...原创 2020-02-23 20:31:03 · 226 阅读 · 0 评论 -
编写高质量箭头函数的 5 个最佳实践
JS 中的箭头函数是 匿名的(anonymous):即函数的 name 属性是个空字符串 ‘’。( number => number + 1 ).name; // => ‘’复制代码匿名函数在调试会话(debug session)或调用栈分析(call stack analysis)时被标记为 anonymous。不幸的是,匿名函数并不能为调试程序带来有用的线索。下面展示了执行匿...原创 2020-02-23 20:27:37 · 167 阅读 · 0 评论 -
理解Javascript的变量提升
总括: 什么是变量提升,使用var,let,const,function,class声明的变量函数类在变量提升的时候都有什么区别。参考文章:Hoisting in Modern JavaScript — let, const, and var公众号:「前端进阶学习」,回复「666」,获取一揽子前端技术书籍要么庸俗,要么孤独。正文Javascript中的变量提升说的是在程序中可以在变量声...原创 2020-02-23 13:42:39 · 157 阅读 · 0 评论 -
经典案例:磁盘I/O巨高排查全过程
朋友小明的线上数据库突发严重告警,业务方反馈写入数据一直堵住,很多锁超时回滚了,不知道怎么回事,就找到我了。不管3721,先采集现场的必要信息再说。a. 系统负载,主要是磁盘I/O的负载数据该服务器的磁盘是由6块2T SSD硬盘组成的RAID-5阵列。从上面的截图来看,I/O %util已经基本跑满了,iowait也非常高,很明显磁盘I/O压力太大了。那就再查查什么原因导致的这么高压力。...原创 2020-02-21 21:19:39 · 673 阅读 · 0 评论 -
java源码学习---ThreadLocal
ThreadLocal 是一个线程安全副本,用于储存仅允许当前线程能访问/修改的值,不知从何时起看到了”线程安全“这种字眼就会不自觉想到性能问题,但是ThreadLocal是实现线程安全的另外一种方案"空间换时间"。先看2个小Demo使用ThreadLocalpublic class ThreadLoacalTest{// 定义线程安全副本private final static Thr...原创 2020-02-20 22:23:47 · 97 阅读 · 0 评论 -
Android组件化模块化在移动应用开发中
文章目录在移动应用上由于应用本身与使用者相贴近,日常开发中难免的需求变更朝令夕改、朝三暮四,尤其遇到没啥规范流程的或者形式主义流程;关于组件化模块化是什么及其优点不再赘述,在此补充点优点而已:减少名言的联想Linus:Read the fucking source code我们的终极目标不仅是解耦。简化框架,减少过分约束而给予组件/模块内充分的自由,从初始设计已有两年余,由于重复搬砖没得时...原创 2020-02-20 11:39:42 · 345 阅读 · 0 评论 -
2020年,你必须知道的JS数组技巧
在Javascript中,数组是一个重要且常见的知识点,我们经常将数据存储在数组中。作为一名Javascript工程师,数组必须要运用自如。这篇文章,向大家展示了在日常开发中,数组有哪些奇淫技巧值得关注和学习,让我们开始吧!1.去重这也是一道常见的面试题,怎么对JS的数组去重。在ES6的时代,有个非常快速且简单的方法,使用new Set()以及Array.from()或者展开运算符(…)va...原创 2020-02-19 10:47:03 · 197 阅读 · 0 评论 -
年底面试之JavaScript总结(用心收集)
1.如何理解 JS 中的this关键字?this表示当前对象,this的指向是根据调用的上下文来决定的,默认指向window对象。全局环境:全局环境就是在里面,这里的this始终指向的是window对象。局部环境:1.在全局作用域下直接调用函数,this指向window。2.对象函数调用,哪个对象调用就指向哪个对象。3.使用 new 实例化对象,在构造函数中的this指向实例化对象。...原创 2020-02-14 20:55:12 · 120 阅读 · 0 评论