自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 堆排序以及TopK大顶堆小顶堆求解方式(js版)

我理解的堆排序堆排序是一种选择排序,时间复杂度o(nlogn),空间复杂度o(1)。数据结构底层是数组,通过索引之间的关系可看二叉树,父结点总是大于或者小于孩子结点。这就是堆的结构。刚初始完的堆是占据整个数组的。开始排序后,数组分为两个部分!前面是堆,后面是已排序完的有序子数组。排序时,堆顶元素和堆尾元素会交换,有序子数组长度+1,堆长度-1;此时,原堆尾元素占据了堆顶,可能会破坏了堆结构,所以,需要堆化,也就是堆顶元素要保持最大或者最小。当堆只有一个元素,自动加入有序子数组;这时有序子数组占

2021-02-28 00:28:35 695

原创 node实现国际化翻译以及文件读写

前几天有项任务是让我在几千个文件中,对指定内容进行繁体翻译。大概估算了一下有4700多处需要进行繁体翻译,如果只靠去google翻译复制粘贴也需要2天多的时间,而且会非常无聊!!所以,在这里利用了nodejs的文件读写以及google翻译的api帮助我来做这繁琐的事情其中,编程用到的工具有:1.typescript (npm安装即可)2.lodash(npm安装即可)3.fsPromise(用异步读取文件的目的只是想用用async)4.google-translate-api(npm 安装即可

2021-02-21 12:38:49 816

原创 排序:js实现快速排序

实现快速排序// 1 2 9 3 4 -1 8 -2const arr = [1, 2, 9, 3, 4, -1, 8, -2];let p = +new Date() % arr.length;console.log(quickSort(arr, 0, arr.length - 1));function partition(arr, left, right) { let i = left; let j = right; const x = arr[i]; wh

2021-01-27 22:35:34 129

原创 CSS实现正方形

正方形以前有人问我怎么实现一个正方形,我就很纳闷!把块属性width和height设置成一样不就好了吗!//这不就是个正方形.div { width:100px; height:100px }但这不是他想要的答案。也许是考虑到自适应的问题吧。于是,我想到了最近在b站Steven老师那看到他用过的vw vh单位//vw单位把屏幕宽分为100(vh同理,高).div { width:20vw height:20vw}俺想,酱不就好了吗!再稍微对样式补充一下,看一下具体效果&l

2021-01-26 01:21:38 2151

原创 js实现任务(promise任务)队列

任务队列队列的特点就是先进先出先开始的任务执行完后,才能开始执行后续任务另外任务队列中有任务时是自动执行的。另外提一点,实现稍微复杂一点功能,全都是闭包!!设计:new一个队列,返回值是一个function,这个function的入参为为task(类型promise),返回值也是promise const queue = new Queue(); queue(task1).then(data=>console.log(data)); queue(task2).then(data=&gt

2021-01-23 18:40:57 4151 2

原创 git分支删除与获取新的远程分支

删除分支 以及 获取远程新建的分支有的时候分支建的太多了,需要删除本地、远程的分支,在此记录一下删除分支,以及删除对应远程分支git branch -a //查看本地的远程的(已知)分支git branch -d [分支名]//如果提示没有完成合并的时候,可以用下面的命令删除git branch -D [分支名]删除完本地的后,可以使用下面命令删除远程的git push origin --delete [branch]2.获取远程新的分支git fetch //这样就可以获取到远

2021-01-23 14:21:46 262

原创 oracle死锁进程查看以及删除

最近又遇到oracle死锁问题,先记录一下查看锁表进程:select sess.sid,sess.serial#,lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_mode,sess.LOGON_TIME,sess.machinefrom vlockedobjectlo,dbaobjectsao,vlocked_object lo, dba_objects ao, vlockedo​bjectlo,db

2021-01-22 10:44:48 251

原创 js 实现new操作符以及继承

js 实现new操作符new 干了啥?来自MDN:new 关键字会进行如下的操作:创建一个空的简单JavaScript对象(即{});链接该对象(设置该对象的constructor)到另一个对象 ;将步骤1新创建的对象作为this的上下文 ;如果该函数没有返回对象,则返回this。function CustomNew(fn) { const obj = {}; //1 obj.__proto__ = fn.prototype;//2 const result =

2021-01-21 00:39:22 162

原创 js实现链表翻转以及检查是否有环

翻转一个链表input a->b->c->doutput d->c->b->a// 链表翻转const reverseList = function(head) { let prev = null; let curr = head; while (curr) { [ curr.next, prev, curr ] = [ prev, curr, curr.next ]; } return prev;};let a = {value:'a',nex

2021-01-20 00:09:12 238 1

原创 大致实现Promise

今天俺尝试一下实现Promise1.下面代码实现不了micro task,所以resolve后,then中回调的函数是立即执行的。2.then方法是加入成功、失败回调函数的入口,以及获取成功value,失败reason的地方//实现promise,有回调的地方需要保存this为ctx;不然this指向会有问题//另外,写代码时候想用闭包来代替this,最终失败了。还是换回了ctxfunction CustomPromise(execute) { this.status = 'pendi.

2021-01-18 13:35:39 85

原创 节流和防抖的实现

节流和防抖特点1.节流的特点:指定的delay时间段中,无论调用多少次方法,只触发一次。2.防抖的特点:调用方法后,在delay时间过后,才会触发方法,如果delay内又调用方法,则重新计时。3,实现方式:两者的实现方式都是利用闭包,闭包就是,函数 + 函数可访问的局部变量[^1](该变量可以一直保存在内存中)4.另外俺个人觉得它俩的简单实现版还有一个特点,一个掐头儿 一个去尾儿。防抖的第一次调用不立即执行;节流的最后一次调用可能不会执行简单实现节流简单版// 节流的简单实现functio

2021-01-16 12:38:14 283

原创 ES6 String.raw会对以转义过的字符串进行再次转移

ES6 String.raw会对以转义过的字符串进行再次转移String.rawString.raw是ES6提供用于处理模板字符串的方法,它可以转义’'反斜杠。相当于在反斜杠前再加上一个反斜杠,用于转义自己。有部分博客以及视频中,有说“如果原字符串的斜杠已经转义,那么 String.raw 不会做任何处理。”这句话应该是不对的。后来我在阮一峰老师的es6入门博客中看到这句话:“如果原字符串的斜杠已经转义,那么String.raw()会进行再次转义。”并在浏览器下实验:String.rawHi\

2021-01-11 22:09:13 425 1

原创 使用JPA repository的findBy时,null指针异常问题

使用JPA repository的findBy时,null指针异常问题null异常触发时机最近有见过java程序中途抛了null指针异常的情况,排查时,发现是在调用Dao的findBy方法查询数据时抛出的null异常。原因B实体上存在version字段,并且是Integer类型。当调用A实体对应的Dao的findBy方法时,触发了B实体的版本字段+1方法;代码大致是,判断version是整型类型,然后,currentVersion + 1。由于数据库中的version字段是null(为什么是n

2020-11-28 14:40:03 1780 1

原创 502 bad gateway报错可能的原因之一

记录一次状态码502 Bad gateway第一次遇到请求返回502状态码之前遇到的基本都是500(服务器内部错误),比如java代码运行时,被throw出来的错误。这种错误,打个断点就很好排查。解决过程疯狂网上找资料。网上有一些说法是,当使用Nginx代理时,发生了502报错,很有可能是请求头header过大而导致的。所以,在Nginx配置内添加一下增加缓存的的代码就能解决proxy_buffer_size 64k;proxy_buffers 4 32k;proxy_busy_buffe

2020-07-06 21:55:05 1478

空空如也

空空如也

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

TA关注的人

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