node

Web大前端环境搭建

寵の児 提交于 2020-03-19 09:55:38
1,Install Nodejs https://nodejs.org/en/ 2,Install SublimeText 3 www.sublimetext.com 3,Install Package Control https://packagecontrol.io 复制 python 代码 粘贴到sublime的console中 重启sublime 安装package Preference -> Packages Control->输入install package->搜索package名称 Emmet :快捷键 SideBarEnhancement :增强右边栏功能 HTML-CSS-JS Prettify :文档格式整理,需要安装nodejs Seti-UI :主题 Themr :主题管理器 Preference -> Packages Control-> 删除 Packages Control 文字,输入Themr ColorPicker: command + shift + C CSSComb: control + shift + C 其它一些好用的插件,可以参考:http://www.cnblogs.com/jadeboy/p/5049340.html 4,Install Chrome 来源: https://www.cnblogs.com/jacky1982/p

集合框架系列 Map(十一):LinkeHashMap

a 夏天 提交于 2020-03-18 18:31:25
目录 1 概述 2 原理 3 源码分析  3.0 Entry 的继承体系  3.1 链表的建立过程  3.2 链表节点的删除过程  3.3 访问顺序的维护过程  3.4 基于 LinkedHashMap 实现缓存 4 总结 1. 概述 LinkedHashMap 继承自 HashMap,在 HashMap 基础上,通过维护一条双向链表,解决了 HashMap 不能随时保持遍历顺序和插入顺序一致的问题。除此之外,LinkedHashMap 对访问顺序也提供了相关支持。在一些场景下,该特性很有用,比如缓存。在实现上,LinkedHashMap 很多方法直接继承自 HashMap,仅为维护双向链表覆写了部分方法。所以,要看懂 LinkedHashMap 的源码,需要先看懂 HashMap 的源码。关于 HashMap 的源码分析,本文并不打算展开讲了。大家可以参考我之前的一篇文章“ HashMap 源码详细分析(JDK1.8) ”。在那篇文章中,我配了十多张图帮助大家学习 HashMap 源码。 本篇文章的结构与我之前两篇关于 Java 集合类( 集合框架 )的源码分析文章不同,本文将不再分析集合类的基本操作(查找、遍历、插入、删除),而是把重点放在双向链表的维护上。包括链表的建立过程,删除节点的过程,以及访问顺序维护的过程等。好了,接下里开始分析吧。 2. 原理 上一章说了

集合框架系列 Map(十):HashMap

柔情痞子 提交于 2020-03-18 18:17:13
目录 1 概述 2 原理 3 源码分析  3.1 构造方法   3.1.1 构造方法分析   3.1.2 初始容量、负载因子、阈值  3.2 查找  3.3 遍历  3.4 插入   3.4.1 插入逻辑分析   3.4.2 扩容机制   3.4.3 链表树化、红黑树链化与拆分  3.5 删除  3.6 其他细节  3.7 总结 1. 概述 本篇文章我们来聊聊大家日常开发中常用的一个集合类 - HashMap 。HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序可能会发生变化。另外,需要注意的是,HashMap 是非线程安全类,在多线程环境下可能会存在问题。 在本篇文章中,我将会对 HashMap 中常用方法、重要属性及相关方法进行分析。需要说明的是,HashMap 源码中可分析的点很多,本文很难一一覆盖,请见谅。 2. 原理 上一节说到 HashMap 底层是基于散列算法实现,散列算法分为散列再探测和拉链式。HashMap 则使用了拉链式的散列算法,并在 JDK 1.8 中引入了红黑树优化过长的链表。数据结构示意图如下: 对于拉链式的散列算法,其数据结构是由数组和链表(或树形结构)组成

Nodejs中的路径问题

谁说我不能喝 提交于 2020-03-18 11:58:45
一、path核心模块 ①path.basename(path【,ext】)获取一个路径中的文件名 var path=require('path'); console.log(path.basename('C:/Files/nodejs/a.js'));//a.js console.log(path.basename('C:/Files/nodejs/a.js','.js'));//a ②path.dirname(path) 获取一个路径中的目录 var path=require('path'); console.log(path.dirname('C:/Files/nodejs/a.js'));//C:/Files/nodejs ③path.extname(path) 获取一个路径中文件扩展名部分 var path=require('path'); console.log(path.extname('C:/Files/nodejs/a.js'));//.js ④path.isAbsolute(path) 判断一个路径是否为绝对路径,返回布尔值 var path=require('path'); console.log(path.isAbsolute('C:/Files/nodejs/a.js'));//true console.log(path.isAbsolute('./a.js

node 1.开启应用

夙愿已清 提交于 2020-03-18 07:32:42
// 引用http插件 var http = require('http'); // 开启node服务 var server = http.createServer(); // 监听开始 server.on('listening', function () { console.log('listen..'); }); // 客户端请求 server.on('request', function (req,res) { //console.log('请求了'); // 返回状态位、显示纯文本、html res.writeHead(200, '1', { 'content-type': 'text/plain', // 'content-type': 'text/html;charset=utf-8' }); res.write(' hello world! '); res.end(); }); // 监听8080端口 server.listen(8021, 'localhost'); 来源: https://www.cnblogs.com/Hsong/p/8934058.html

斐波那契堆(二)之 C++的实现

99封情书 提交于 2020-03-18 05:32:33
概要 上一章 介绍了斐波那契堆的基本概念,并通过C语言实现了斐波那契堆。本章是斐波那契堆的C++实现。 目录 1. 斐波那契堆的介绍 2. 斐波那契堆的基本操作 3. 斐波那契堆的C++实现(完整源码) 4. 斐波那契堆的C++测试程序 转载请注明出处: http://www.cnblogs.com/skywang12345/p/3659069.html 更多内容: 数据结构与算法系列 目录 (01) 斐波那契堆(一)之 图文解析 和 C语言的实现 (02) 斐波那契堆(二)之 C++的实现 (03) 斐波那契堆(三)之 Java的实现 斐波那契堆的介绍 斐波那契堆(Fibonacci heap)是一种可合并堆 ,可用于实现合并优先队列 。它比二项堆具有更好的平摊分析性能,它的合并操作的时间复杂度是O(1)。 与二项堆一样,它也是由一组堆最小有序树组成,并且是一种可合并堆。 与二项堆不同的是,斐波那契堆中的树不一定是二项树;而且二项堆中的树是有序排列的,但是斐波那契堆中的树都是有根而无序的。 斐波那契堆的基本操作 1. 基本定义 template <class T> class FibNode { public: T key; // 关键字(键值) int degree; // 度数 FibNode<T> *left; // 左兄弟 FibNode<T> *right; //

如何在CentOS 中部署Node.js项目

断了今生、忘了曾经 提交于 2020-03-17 22:43:00
本文记录如何在CentOS 7.2系统的服气中,安装Node.js并部署项目。用于个人记录和以后使用时查找方便。 用于连接ECS实例的机器上已安装 ssh软件 使用本教程进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册。 背景信息 Node.js是一个基于Chrome V8引擎的JavaScript运行环境,用来方便快速地搭建易于扩展的网络应用。Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效,非常适合运行在分布式设备的数据密集型的实时应用。Node.js的包管理器npm,是全球最大的开源库生态系统。Node.js的典型应用场景包括: 实时应用:如在线聊天,实时通知推送等等(例如socket.io)。 分布式应用:通过高效的并行I/O使用已有的数据。 工具类应用:海量的工具,小到前端压缩部署(例如grunt),大到桌面图形界面应用程序。 游戏类应用:游戏领域对实时和并发有很高的要求(例如网易的pomelo框架)。 利用稳定接口提升Web渲染能力 前后端编程语言环境统一:前端开发人员可以非常快速地切入到服务器端的开发(例如著名的纯Javascript全栈式MEAN架构)。 操作步骤 在ECS实例上安装Node.js并部署项目的操作步骤如下: 步骤一:创建并连接ECS实例 步骤二:部署Node.js环境 步骤三:部署测试项目 步骤一

ubuntu系统下面PhantomJS not found on PATH

浪尽此生 提交于 2020-03-17 20:50:14
完整报错如下: PhantomJS not found on PATH Downloading https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2 Saving to /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 Receiving... ^C (python3.6) root@iZuf62cvmxv23irc7lrcobZ:~/saleor_docker/saleor-storefront# cnpm install phantomjs@02.1.1 ✔ Installed 1 packages ✔ Linked 11 latest versions [1/1] scripts.install phantomjs@02.1.1 run "node install.js", root: "/root/saleor_docker/saleor-storefront/node_modules/_phantomjs@2.1.1@phantomjs" PhantomJS not found on PATH Phantom installation failed TypeError: Path

centos8 安装 nodejs (源码编译nodejs)

我的梦境 提交于 2020-03-17 19:13:30
centos8 安装 nodejs (源码编译nodejs) 1.安装必要的编译软件包 yum -y install gcc gcc-c++ 2.下载源码nodejs wget https://npm.taobao.org/mirrors/node/v10.13.0/node-v10.13.0.tar.gz 3.解压 tar xvf node-v10.13.0.tar.gz 4.编译安装 cd node-v10.13.0 ./configure && make && make install 5.验证 node -v 来源: CSDN 作者: hflxhn.com 链接: https://blog.csdn.net/weixin_42500714/article/details/104829119

Node.js随手笔记

落爺英雄遲暮 提交于 2020-03-17 18:52:07
参考文章: https://blog.csdn.net/IronKee/article/details/83780857 安装nvm的方法: 如果已经单独安装了node,建议卸载,然后继续向下看。 直接进入安装包下载地址: https://github.com/coreybutler/nvm-windows/releases ,选择nvm-setup.zip,下载后直接安装。 D:\Tool\nvm是nvm的安装目录 D:\Tool\nodejs是当前使用的node目录(是一个快捷方式,链接到nvm文件夹对应的node版本,当你切换到使用的版本后,快捷方式的指向随之改变,后面再讲) 2、配置环境变量 NVM_HOME :指向nvm安装目录(node.js所有版本都会在这个目录下) NVM_SYMLINK:nodejs安装目录 (当前使用nodejs版本) 我这边是安装完nvm后自动配置好了环境变量 3、验证是否安装成功 cmd,输入nvm -v,出现版本号,说明安装成功 1、Node.js的版本控制器--nvm nvm root,查看nvm版本控制工具的根目录 C:\Users\Administrator\AppData\Roaming\nvm nvm做版本控制的原理:通过创建快捷方式的形式来控制node版本的切换 实际应用: 这个是nvm文件夹里面的内容,实际项目中