node

HashMap实现原理JDK1.8

爱⌒轻易说出口 提交于 2020-01-08 10:55:24
在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突, 同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。 而JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树 ,这样大大减少了查找时间。 简单说下HashMap的实现原理: 首先有一个每个元素都是链表(可能表述不准确)的数组,当添加一个元素(key-value)时,就首先计算元素key的hash值,以此确定插入数组中的位置,但是可能存在同一hash值的元素已经被放在数组同一位置了,这时就添加到同一hash值的元素的后面,他们在数组的同一位置,但是形成了链表,同一各链表上的Hash值是相同的,所以说数组存放的是链表。而当链表长度太长时,链表就转换为红黑树,这样大大提高了查找的效率。 当链表数组的容量超过初始容量的0.75时,再散列将链表数组扩大2倍,把原链表数组的搬移到新的数组中 即HashMap的原理图是: 一,JDK1.8中的涉及到的 数据结构 1,位桶数组 transient Node<k,v>[] table; //存储(位桶)的数组</k,v> 2,数组元素Node<K,V>实现了Entry接口 1 //Node是单向链表,它实现了Map.Entry接口 2

vue-cli3 中 sockjs-node/info?t=报错 的解决方法

可紊 提交于 2020-01-08 10:52:11
页面突然出现这种报错: 查看Network看到是info接口报错,我项目中没有调用过该项目,然后百度查询sockjs-node/info?t=1562204191563, 首先 sockjs-node 是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟、全双工的浏览器和web服务器之间通信通道。 服务端:sockjs-node(https://github.com/sockjs/sockjs-node) 客户端:sockjs-clien(https://github.com/sockjs/sockjs-client) 如果你的项目也没有用到 sockjs,vuecli3 运行 npm run serve 之后 network 里面一直调研一个接口:https://10.98.36.52:9535/sockjs-node/info?t=1578449724494 解决方案如下: 1. 找到/node_modules/sockjs-client/dist/sockjs.js 2.找到代码的 1605行 try { // self.xhr.send(payload); } catch (e) { self.emit('finish', 0, ''); self._cleanup(false); }   这样就 OK 啦 ! 来源: https:/

npm常用命令

╄→尐↘猪︶ㄣ 提交于 2020-01-08 10:14:19
今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到 npm官网查询文档 让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块的朋友不可错过这些基础命令,新手出品,对本文有疑惑之处还请同学们不耻下问。很久没有写文章啦,后续也希望自己在nodejs这方面有多点内容产出。 本文以Windows平台上做测试,以gulp为示例做教程 目录(更新于20160630) npm是什么 npm install 安装模块 npm uninstall 卸载模块 npm update 更新模块 npm outdated 检查模块是否已经过时 npm ls 查看安装的模块 npm init 在项目中引导创建一个package.json文件 npm help 查看某条命令的详细帮助 npm root 查看包的安装路径 npm config 管理npm的配置路径 npm cache 管理模块的缓存 npm start 启动模块 npm stop 停止模块 npm restart 重新启动模块 npm test 测试模块 npm version 查看模块版本 npm view 查看模块的注册信息 npm publish 发布模块 npm access 在发布的包上设置访问级别 npm package.json的语法 npm是什么

node express安装

女生的网名这么多〃 提交于 2020-01-08 10:08:13
我们现在全局安装只需要安装这个命令行工具就可以,指令如下: npm install -g express-generator 这时我们就着手安装express框架,指令如下: express blog && cd blog ( blog是安装的文件夹名) npm install (安装express及依赖) npm start (这里需要注意 express 4.x 无法以 node app.js 为启动方式,而是用指令 npm start 作为启动) 访问 http://localhost:3000/ 出现熟悉的Welcome to Express,证明安装成功。 来源: https://www.cnblogs.com/bhan/p/5570839.html

node js 入门指南

假如想象 提交于 2020-01-08 08:26:45
一旦你已经安装了 Node,让我们尝试构建第一个 Web 服务器。 请创建一个“app.js”文件,黏贴以下代码: const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); }); 然后使用 node app.js 运行程序,访问 http://localhost:3000 ,你就会看到一个消息,写着“Hello World”。 参考 http://node-js.club 来源: https://www.cnblogs.com/itucao/p/10872611.html

【转】npm 常用命令详解

巧了我就是萌 提交于 2020-01-08 06:40:25
【转】npm 常用命令详解 今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到 npm官网查询文档 让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块的朋友不可错过这些基础命令,新手出品,对本文有疑惑之处还请同学们不耻下问。很久没有写文章啦,后续也希望自己在nodejs这方面有多点内容产出。 本文以Windows平台上做测试,以gulp为示例做教程 目录(更新于20160630) npm是什么 npm install 安装模块 npm uninstall 卸载模块 npm update 更新模块 npm outdated 检查模块是否已经过时 npm ls 查看安装的模块 npm init 在项目中引导创建一个package.json文件 npm help 查看某条命令的详细帮助 npm root 查看包的安装路径 npm config 管理npm的配置路径 npm cache 管理模块的缓存 npm start 启动模块 npm stop 停止模块 npm restart 重新启动模块 npm test 测试模块 npm version 查看模块版本 npm view 查看模块的注册信息 npm publish 发布模块 npm access 在发布的包上设置访问级别 npm package

在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序

醉酒当歌 提交于 2020-01-08 05:47:02
前言 Visual Studio 2017已经发布了很久了。做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧。 随着Google Angular4的发布。我一直在想,怎么能够用这个地表最强IDE工具编写Angular4的Asp.Net Core项目。经过不懈的研究。终于的得到了一套很好的解决方案与大家分享。 文章转载请著名出处: http://www.cnblogs.com/smallprogram 我们的目的 随着Web技术的快速发展,新的技术层出不穷,这使得Web程序的用户体验不断提升。最具代表性的就是SPA(Single Page Application)应用。 技术的快速发展也有弊端,那就是学习成本的不断提升。作为一名开发人员,你需要不断学习、提升自己的技术以适应这个技术快速发展的时代,以让自己不在这个技术快速发展的洪流中所淘汰。 当然,我们的老大Microsoft也是如此,借着Asp.Net Core的机会,发布了好几款集成目前流行的前端框架的Asp.Net Core的模板。文章后边我就具体描述以一下。 你需要知道的东西 你需要明白的东西 1. NodeJS ,这是一个基于Chrome V8 JavaScript引擎构建的JavaScript运行时的库,NPM就包含在NodeJS中,他具有强大的生态系统。 2. NPM

树状数组 --- (离散化+树状数组、求逆序对)

陌路散爱 提交于 2020-01-08 05:04:13
G.Inversions There are N integers (1<=N<=65537) A1, A2,.. AN (0<=Ai<=10^9). You need to find amount of such pairs (i, j) that 1<=i<j<=N and A[i]>A[j]. Input The first line of the input contains the number N. The second line contains N numbers A1...AN. Output Write amount of such pairs. Sample Input Sample test(s) Input 5 2 3 1 5 4 Output 3 【题目来源】:BUN 【题目大意】:求逆序对的个数 【题目分析】 求逆序对有很多方法,比如说用合并排序、分治、树状数组、线段树,甚至连暴力(冒泡排序)也可以做,但是要注意会不会超时。 这里就讲一下树状数组的方法,这一题最有意思的是离散化的方法,这个方法在处理大数据的排序方面很有用,离散化能够有效的降低时空复杂度,他可以改进一个低效的算法。除了加上了一个离散化,其他的用树状数组就可以解决。 1、什么是离散化? 用我的理解来说就是一种映射,为什么能用离散化呢?或者说离散化能用在哪些方面呢? 举个例子说吧 ,在排序

Nginx之红黑树

北战南征 提交于 2020-01-08 05:03:10
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_RBTREE_H_INCLUDED_ #define _NGX_RBTREE_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> typedef ngx_uint_t ngx_rbtree_key_t; typedef ngx_int_t ngx_rbtree_key_int_t; typedef struct ngx_rbtree_node_s ngx_rbtree_node_t; // 红黑树 struct ngx_rbtree_node_s { // 无符号整形的keyword ngx_rbtree_key_t key; // 左子节点 ngx_rbtree_node_t *left; // 右子节点 ngx_rbtree_node_t *right; // 父节点 ngx_rbtree_node_t *parent; // 节点的颜色,0表示黑色。1表示红色 u_char color; // 仅1个字节的节点数据。 因为表示的空间太小,所以一般非常少使用。 u_char data; }; typedef struct ngx_rbtree_s ngx_rbtree

【原】npm 常用命令详解

北城余情 提交于 2020-01-08 04:33:58
今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到 npm官网查询文档 让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块的朋友不可错过这些基础命令,新手出品,对本文有疑惑之处还请同学们不耻下问。很久没有写文章啦,后续也希望自己在nodejs这方面有多点内容产出。 本文以Windows平台上做测试,以gulp为示例做教程 目录 (更新于20160117) npm是什么 npm install 安装模块 npm uninstall 卸载模块 npm update 更新模块 npm outdated 检查模块是否已经过时 npm ls 查看安装的模块 npm init 在项目中引导创建一个package.json文件 npm help 查看某条命令的详细帮助 npm root 查看包的安装路径 npm config 管理npm的配置路径 npm cache 管理模块的缓存 npm start 启动模块 npm stop 停止模块 npm restart 重新启动模块 npm test 测试模块 npm version 查看模块版本 npm view 查看模块的注册信息 npm adduser 用户登录 npm publish 发布模块 npm access 在发布的包上设置访问级别 npm package