自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(54)
  • 收藏
  • 关注

原创 fs 的一些参考

经常在r3 下调试经常会看到mov eax,fs:[18h] ;获取TEP 其实就只指向自己fs:[0]mov eax,[eax+30h] ;获取PEB这样的语句。fs段在用户模式(R3)和系统模式(R0)分别指向两个最重要的系统结 构:Ring3:fs --> TEB (Thread Environment Block)结 构表 --> 7FFDE000即“线程环境块”。Ring0:fs --> KPCR (Kernel

2020-12-07 18:04:34 460

原创 你想要知道的Vue组件间数据传递的方式

通过 props 传递属性父级给demo2组件绑定一个msg数据 复制代码子组件通过定义props来使用msg,$emit触发外部的函数来改变父级传入的值 {{msg}} 复制代码通过 $attrs 来收集属性$attrs 会收集组件上绑定的属性,对应class和style不会处理。如果与props同用,props的优先级要高于attrs 复制代码子组件中this.$attrs会收集组件上绑定的属性 {{$attrs.ms

2020-07-12 16:22:21 160

原创 了不起的 Webpack Scope Hoisting 学习指南

Scope Hoisting 是 webpack3 的新功能,直译为 “「作用域提升」”,它可以让 webpack 打包出来的「代码文件更小」,「运行更快」。在 JavaScript 中,还有“变量提升”和“函数提升”,JavaScript 会将变量和函数的声明提升到当前作用域顶部,而“作用域提升”也类似,webpack 将引入到 JS 文件“提升到”它的引入者的顶部。首先回顾下在没有 Scope Hoisting 时用 webpack 打包下面两个文件:// main.jsexport defaul

2020-07-12 16:21:42 201

原创 关于前端的 13 个安全提示

未经允许严禁转载无论你是 React.js、Angular、Vue.js 程序员还是前端页面仔,你的代码都可以成为引诱黑客入侵的大门。作为前端开发人员,我们最关心的是性能、SEO 和 UI/UX——安全性却经常被忽略。你可能会惊讶地知道大型框架如何使你的网站对跨站点脚本(XSS)攻击打开大门。有很多危险的操作,例如 React 中的 dangerouslySetInnerHTML 或 Angular 中的 bypassSecurityTrust API。我们应该记住,就安全性而言,前端现在与后端或

2020-05-12 12:14:44 270

原创 double类型数据的加减乘除

import java.math.BigDecimal;/**由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入。*/public class DoubleUtils{private static final int DEF_DIV_SCALE = 2;/**@Description 两个Double数相加@param d1@param d2@return Double*/public static Double ad

2020-05-12 12:13:11 1441

原创 前端进阶高薪必看-正则篇

此系列作为笔者之前发过的前端高频面试整理的补充 会比较偏向中高前端面试问题 当然大家都是从新手一路走过来的 感兴趣的朋友们都可以看哈闲谈说起正则 大家第一反应肯定是各种表单验证 什么用户名 密码 邮箱… 的确 前端使用正则进行用户输入验证是最常见的场景 但是我相信大多数的前端都忽略了正则这一块的知识点 和我一样 Ctrl+c Ctrl+v 各种正则表达式就到手了 哈哈 直到我看 Vue 源码-模板解析这块正则时 我的内心是崩溃的(这是什么火星文) 既如此那就让我们代表月亮消灭它vue源码-解析属性相关

2020-05-12 10:30:13 162

原创 使用 NPM 发布和使用 CLI 工具

本文是 Node.js 使用浅谈的三件套之一工具篇,主要讲解了 NPM 命令行接口(CLI)工具发布的教程,适合阅读的对象包括:不熟悉 NPM 工具 和 Node 脚本不知道如何制作通用的 CLI 工具只会简单的发布和使用 NPM 包温馨提示:这是一篇 2 年前写的相对老旧知识体系的旧文章,只用于新人扫盲。完整的源代码仓库地址 ziyi2/npm-cli-package。服务篇可查看 基于 Express 应用框架的技术方案选型浅谈。Node 脚本在项目中我们经常会用到一些 Node 脚本命

2020-05-12 10:27:57 1071

原创 前端进阶算法7:小白都可以看懂的树与二叉树

不同与我们之前介绍的线性结构,今天我们介绍一种非线性结构:树,树的内容比较多,包括BST树、AVL树、Trie树等,这部分内容将放在下几个章节陆续放出,本章将介绍树与二叉树的基础必会内容,在开始这一章节前,请思考以下内容:什么是树?树的高度怎么计算?什么是二叉树?什么是平衡二叉树?在代码中如何表示一棵二叉树?二叉树的前序、中序、后序遍历又是什么?如何实现?能否用递归及迭代两种方式实现喃?下面进入本节内容????一、树不同于我们上面介绍的线性结构,树是一种非线性结构。图:它遵循:仅有

2020-05-12 10:24:50 373

原创 从一条数据说起——InnoDB存储数据结构

先给大家讲一个故事,我刚参加工作,在一个小作坊里面当【码畜】(尽管现在也是),有一天老板从我背后走过,说了一句举世震惊的话:我看你们的数据库和excel一样,不就是一行行数据,人家excel还可以对单元格进行美化,还有各种函数,生成各种报表,你们的数据库有什么复杂的?我竟无力反驳。为什么要说这个故事呢,当然是为了引出今天的话题——InnoDB的数据结构。虽然做开发的各位,或多或少都接触过数据库...

2020-05-07 19:10:59 235

原创 JS做类型检测到底有几种方法?看完本文就知道了!

JS有很多数据类型,对于不同数据类型的识别和相互转换也是面试中的一个常考点,本文主要讲的就是类型转换和类型检测。数据类型JS中的数据类型主要分为两大类:原始类型(值类型)和引用类型。常见的数据类型如下图所示:原始数据类型存在栈中,引用类型在栈中存的是一个引用地址,这个地址指向的是堆中的一个数据对象。需要注意的是null在这里我们算在原始类型里面,但是你用typeof的时候会发现他是objec...

2020-05-07 19:04:57 119

原创 搞点好玩儿的,如何做一个你自己的"ad-block"插件

解释一下,是类似ad-block的插件,但是它的功能不是屏蔽广告,而是【屏蔽文章】【屏蔽作者】,在你不想看的文章或者帖子上面右键,你就能选择屏蔽作者还是屏蔽文章,下次就不会再看到他的文章了!是不是很好玩?一起来探索一下呀一、为什么要搞一个这个插件 前几天浏览到【掘金前站长 @阴阴】的一篇专栏 “老站长近期问题解答”,闲来无事浏览一下评论,发现好多掘友都有屏蔽文章或者作者的诉求,但是掘金目前并...

2020-05-07 19:03:42 901

原创 为了性能选择了for语句循环?

几种遍历方法中for执行最快,它没有任何额外的函数调用栈和上下文。但在实际开发中我们要结合语义话、可读性和程序性能,去选择究竟使用哪种方案。下面来看for , foreach , map , for…in , for…of五种方法现场battle。自我介绍环节for我是最早出现的一方遍历语句,在座的各位需称我一声爷爷。我能满足开发人员的绝大多数的需求。// 遍历数组let arr = [...

2020-04-27 16:29:19 294

原创 JS 图片简易压缩

说起图片压缩,大家想到的或者平时用到的很多工具都可以实现,例如,客户端类的有图片压缩工具 PPDuck3, JS 实现类的有插件 compression.js ,亦或是在线处理类的 OSS 上传,文件上传后,在访问文件时中也有图片的压缩配置选项,不过,能不能自己撸一套 JS 实现的图片压缩代码呢?当然可以,那我们先来理一下思路。压缩思路涉及到 JS 的图片压缩,我的想法是需要用到 Canva...

2020-04-27 16:28:14 316

原创 手把手教你定位常见Java性能问题

性能优化一向是后端服务优化的重点,但是线上性能故障问题不是经常出现,或者受限于业务产品,根本就没办法出现性能问题,包括笔者自己遇到的性能问题也不多,所以为了提前储备知识,当出现问题的时候不会手忙脚乱,我们本篇文章来模拟下常见的几个Java性能故障,来学习怎么去分析和定位。预备知识既然是定位问题,肯定是需要借助工具,我们先了解下需要哪些工具可以帮忙定位问题。top命令top命令使我们最常用的...

2020-04-26 11:03:31 171

原创 这是一份面向Android开发者的复习指南

相信很多同学都会有这样的感受,前三天刚刚复习的知识点,今天问的时候怎么就讲不出个所以然了呢?本文的目的就是致力于帮助大家尽可能的建立Android知识体系,希望大家会喜欢~必读知识结构覆盖的知识点有Android、Java、Kotlin、Jvm、网络和设计模式。面向人群正在求职的中高级Android开发食用指南和大部分人一样,我在复习完第一遍Android知识的情况下,看到相关的知...

2020-04-26 11:02:26 245

原创 利用Python实现前端自动化打包部署

作为一名专职前端开发的我,为了帮助解决目前工作中的一些繁琐的工作(主要是处理 excel 数据),解放程序员双手,前阵子就刚刚入了 python 的坑,毕竟也算是门工具语言,都已经加入少儿编程了,哈哈哈!背景实践是检验学习成果的唯一标准!在我学习过程中,一直琢磨着如何将学习的理论与我所掌握的知识结合起来,来解决或者处理实际问题,于是就有了 前端自动化打包部署 的念头。尽快近几年,市面上关于...

2020-04-25 22:42:21 884 1

原创 Android-Flutter面经

第一高:前台进程前台进程是Android系统中最重要的进程,是与用户正在交互的进程。第二高:可见进程可见进程指部分程序界面能够被用户看见,却不在前台与用户交互。第三高:服务进程一个包含已启动服务的进程就是服务进程,服务没有用户界面,不与用户直接交互,但能够在后台长期运行,提供用户所关心的重要功能。第四高:后台进程如果一个进程不包含任何已经启动的服务,而且没有用户可见的Activity,则这个进程就...

2020-04-25 21:05:21 299

原创 基于react搭建一个通用的表单管理配置平台(vue同)

熟悉我的朋友可能会知道,我一向是不写热点的。为什么不写呢?是因为我不关注热点吗?其实也不是。有些事件我还是很关注的,也确实有不少想法和观点。但我一直奉行一个原则,就是:要做有生命力的内容。这篇文章是一篇应用性极强的文章,我们通过一个实际的应用场景,去解决某一类的问题,提供一种或者几种解决方案,来探索技术的魅力。接下来笔者主要分析表单定制平台的实现思路和技术方案,来实现一个类似于金数据或者问卷星...

2020-04-25 21:00:01 488

原创 使用 Python 远程登陆服务器的最佳实践

在使用 Python 写一些脚本的时候,在某些情况下,我们需要频繁登陆远程服务去执行一次命令,并返回一些结果。在 shell 环境中,我们是这样子做的。$ sshpass -p ${passwd} ssh -p ${port} -l ${user} -o StrictHostKeyChecking=no xx.xx.xx.xx “ls -l”复制代码然后你会发现,你的输出有很多你并不需要,但...

2020-02-29 20:55:07 140

原创 Android NDK入门:C++ 基础知识

本文算作是 《Android 音视频开发打怪升级》系列文章的“番外”篇,原本打算将本文的内容写在 《Android FFmpeg视频解码播放》 这篇文章中,因为要想学习 FFmpeg 相关知识,C++ 的基础知识是必不可少的。但是写着写着发现,篇幅还是太长了,加上有部分小伙伴对 C++ 可能也比较熟悉,所以把此节独立成篇,更有利于不熟悉 C++ 的小伙伴学习查看,熟悉的小伙伴也可以直接跳过。C...

2020-02-27 11:47:52 428

原创 如何实现一个对角线布局

实现对角线布局有三种方式:SVG(参见 Erik Kennedy 的文章)CSS clip-path(参见 Sebastiano Guerriero 或 Kilian Valkhof 的文章)CSS 转换本文讲述如何使用 CSS 转换(对应 transform 属性)实现对角线布局效果。一、HTML 结构 ... 复制代码加一点基本的 CSS 样式:.diagonal-box...

2020-02-27 11:46:22 1635

原创 从微前端到智能化:2020前端开源技术趋势

毫无疑问 TypeScript 将成为很长一段时间的主流,大型前端开源项目大都已经或正在全面拥抱 TypeScript,他能让我们拥有很多面向对象语言、强类型语言才具备的先进特性,能帮助我们提升代码质量,降低团队协作上的成本和风险,如果我们的项目还未转过来,是时候动手了。但一个开源项目的质量跟语言本身并无直接关系,更别说 TypeScript 本身依旧还只是带「静态类型检查」的「弱类型」语言,OO...

2020-02-26 19:34:32 345

原创 Vue.js开发去哪儿网WebApp

理解整个vue项目的开发流程,上手中型vue项目的开发Vue Router 来做多页面的路由Vuex 多个组件的数据共享插件swiper实现页面轮播效果Axios 来进行 Ajax 数据的获取移动端页面布局技巧stylus 编写前端的样式公用组件的拆分规范的代码编写1.4 项目目录附上项目目录和仓库地址vue仿去哪儿网webappF:.│ .babelrc│ ....

2020-02-26 19:31:16 263

原创 vue核心原理-监测数据变化

我们实际开发中发现,在data中定义的所有数据,后续无论是在template中使用,还是在methods中使用,都能随着数据的变化而变化。为了理解这其中的原理,研究源码后整理出这篇文章,欢迎大家及时指正。第一步:数据注册监听vue 2.x 版本使用的是 Object.defineProperty 详细API文档见Object.defineProperty用于绑定Object类型数据,比如定义...

2020-02-26 11:16:10 383

原创 说透MySQL里面的各种锁

在上篇中,我们介绍了MySQL中的全局锁和表锁。今天,我们专注于介绍一下行锁,这个在日常开发和面试中常常困扰我们的问题。1.行锁基础由于全局锁和表锁对增删改查的性能都会有较大影响,所以,我们自然会想到,只需要对有修改的行加锁就行了,这就是行锁。在事务中,事务1更新了一行主键为1的数据行,那么,在这个事务释放锁之前,事务2是不能操作的。另外,有一个很多人容易混淆的概念,就是行锁什么时候释放?搞清这个...

2020-02-26 11:14:35 90

原创 架构师必备之常见面试题整理——高性能三十问!

大型互联网架构演进过程,架构师应具备的分布式知识,主流分布式架构设计详解分布式系统分布式系统是一个由硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。其拥有如下特点分布性对等性并发性缺乏全局时钟故障总是会发生(开心一笑)分布式协调和分流(二)Zookeeper分布式环境指挥官,Nginx高并发分流进阶实战应用场景Zookeeper的功能很...

2020-02-26 11:12:51 221

原创 手写一个 typescript 打包器

最近其实写了几个 typescript 的库,但是打包一直困扰着我,一方面感觉 tsc 比较好用,不想用 rollup,一边 ts 很难打包多文件typescript 是可以将多文件打包为一个文件的,使用 --outputFlie“compilerOptions”: {“module”: “amd”,“outFile”: “./dist/doux.js”}复制代码这样可以将所有的 ts...

2020-02-25 20:26:44 591

原创 浅谈Event Loop

众所周知,js是一种单线程语言。为什么是单线程呢?我引用一句烂大街的话:假设js同时有两个线程,一个线程想要在某个dom节点上增加内容,另一个线程想要删除这个节点,这时要以哪个为准呢?当然,多线程有多线程的解决办法,加锁啊,但是这样的话,又会引入锁、状态同步等问题。js是浏览器脚本语言,主要用途是与用户互动,操作dom,多线程会带来很复杂的同步问题。好吧,那就单线程吧。但是单线程又带来了单线程...

2020-02-25 20:21:45 124

原创 2019自结前端面试小册

临近2019年的尾声,是不是该为了更好的2020年再战一回呢? ‘胜败兵家事不期,包羞忍耻是男儿。江东子弟多才俊,卷土重来未可知’,那些在秋招失利的人,难道就心甘情愿放弃吗!此文总结2019年以来本人经历以及浏览文章中,较热门的一些面试题,涵盖从CSS到JS再到Vue再到网络等前端基础到进阶的一些知识。总结面试题涉及的知识点是对自己的一个提升,也希望可以帮助到同学们,在2020年会有一个更好的...

2020-02-25 20:20:23 343

原创 SpringBoot2.x基础篇:带你了解扫描Package自动注册Bean

SpringBoot把入口类所在的Package作为了默认的扫描目录,这也是一个约束,如果我们把需要被注册到IOC的类创建在扫描目录下就可以实现自动注册,否则则不会被注册。如果你入口类叫做ExampleApplication,它位于org.minbox.chapter目录下,当我们启动应用程序时就会自动扫描org.minbox.chapter同级目录、子级目录下全部注解的类,如下所示:. sr...

2020-02-25 16:58:14 273

原创 MySQL索引那些事

大家有没有遇到过慢查询的情况,执行一条SQL需要几秒,甚至十几、几十秒的时间,这时候DBA就会建议你去把查询的 SQL 优化一下,怎么优化?你能想到的就是加索引吧?为什么加索引就查的快了?这就要从索引的本质以及他的底层原理说起。索引是什么那索引到底是什么呢?你是不是还停留在大学学『数据库原理』时老师讲的“索引就像字典的目录”这样的概念?老师讲的没错,但没有深入去讲。其实索引就是一种用于快速...

2020-02-25 16:56:31 69

原创 前端规范那些事

随着前端工程化的日益成熟,代码规范化对于开发效率的提升起着很大的作用,包括后期的维护,统一的规范能节省交接的时间成本,而规范包括目录结构、代码质量(命名、注释、JS规范、CSS规范、缩进等)1.eslint一个插件化的 javascript 代码检测工具,它可以用于检查常见的 JavaScript 代码错误,也可以进行代码风格检查使用到两个扩展包(airbnb规范 & eslint-...

2020-02-25 16:54:25 165

原创 mysql数据库插入字符串附带emoji表情发生报错的一般情况及解决方法

疫情应该也快结束了,我们公司也迎来了复工,在家办公的这几天里,突然负责的中心传来线上的噩耗:线上生产某接口出问题了!经过排查,原来是某接口的保存接口在接收微信传来的微信昵称往我们中心数据库插数据的时候由于附带emoji,报错了!我说奇怪,这种问题不应该啊,总所周知,目前mysql数据库的支持算是比较完备的,只要数据库的字符集设置成utf8mb4!果不其然, 查了线上的数据库字符集,果然不是...

2020-02-24 20:20:23 937

原创 进阶之路 | 奇妙的Animation之旅

笔者在之前进阶之路 | 奇妙的View之旅中,提及View滑动的七种方式的时候简单说到Animation,想必看过的读者们已经对Animation有一个简单的印象。动画,对于一个APP来说非常重要,现在市面上使用的用户比较多的APP,无一不是采用了各种丰富多彩的动画效果;在应用中善于使用动画,不仅让APP的体验更上一层楼,还能牢牢抓住用户的心!而作为开发者的我们,一定要对动画有一定深度的了解,...

2020-02-24 20:17:41 266 1

原创 用于VS Code调试的可视化数据插件:Debug Visualizer

安装此扩展后,使用命令 Open a new Debug Visualizer View 打开新的可视化器视图。在这个视图中,你可以输入一个表达式,该表达式在逐步分析你的代码时会进行评估和可视化,例如1{ 2 kind: { graph: true }, 3 nodes: [ { id: “1”, label: “1” }, { id: “2”, label: “2” } ], 4 ...

2020-02-24 20:15:44 2967

原创 巧用Kotlin:内置函数let、also、with、run、apply大大提高你的开发效率!

在Kotlin中,有一些用于扩展 & 方便开发者编码的内置函数,能大大提高开发者的开发效率。今天,我将主要讲解的是:let函数also函数with函数run函数apply函数基础知识:接口回调中Lambda使用在Kotlin中可使用Lambda函数简化一些不必要的嵌套接口回调方法注:仅支持单个抽象方法回调,多个回调方法不支持。// Java接口回调mVar.setEve...

2020-02-24 10:49:27 119

原创 前端下载文件的6种方法的对比

在前端站点上下载文件,这是一个极其普遍的需求,很早前就已经有各种解决方法了,为什么还写这么老的文章,只是最近在带一个新人,他似乎很多都一知半解,也遇到了我们必经问题之“不能下载txt、png等文件”的典型问题,我就给他总结下下载的几个方式。顺便分享出来,也许,真有人需要。form表单提交这是以前常使用的传统方式,毕竟那个年代,没那么多好用的新特性呀。道理也很简单,为一个下载按钮添加click...

2020-02-23 21:50:37 1172

原创 在网页中隐藏元素

在平时的开发工作中,有时会有隐藏元素的需求。比如,一个按钮,需要在桌面端隐藏,在手机端显示;一个导航栏,需要在手机端隐藏,在桌面端显示。“隐藏”不是字面上展示的这样简单,它还包含几层意思:元素完全从文档流中移除的隐藏。元素仅仅是视觉上的隐藏,使用像屏幕阅读器(screen reader)这样的辅助技术(assistive technology,简称“AT”)依然是能访问的。元素在视觉上可见,...

2020-02-23 21:08:44 717

原创 Vue CLI3.x 配置指南「初识Vue CLI3.x 版本」

由于之前的项目中都是用的vue-cli 2.x 版本,最近新开的项目使用了vue-cli 3.x 版本的脚手架,因此总结一下笔记,方便以后查看使用。关于旧版本Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。 如果你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你需要先通过 npm uninstall vue-cli -g 或 yarn global re...

2020-02-23 21:06:47 193

原创 3w字深度好文|Redis面试全攻略,读完这个就可以和面试官大战几个回合了

不过本文不是要讲述数据结构和算法的,而是另外一个面试重点Redis,因为Redis也是跨语言的共同技术点,无论是Java还是C++都会问到,所以是个高频面试点。笔者是2017年才开始接触Redis的,期间自己搭过单机版和集群版,不过现在公司大一些都完全是运维来实现的,我们使用者只需要在web页面进行相关申请即可,很多细节都被屏蔽了,这样当然很方便啦,不过我们还是要深入理解一下的。在工作几年中笔者接...

2020-02-23 21:03:15 418 1

空空如也

空空如也

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

TA关注的人

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