node

【最完整系列】JAVA-容器篇-LinkedList源码解析

拟墨画扇 提交于 2020-02-25 22:43:45
简介 LinkedList 顾名思义其本质是一个链表,具体来说是一个双向链表,同时还有2个指针分别对应链表的头和尾。 源码 源码还是跟 ArrayList 一样,从我们常用的代码出发: List<String> a = new LinkedList<>(); a.add("sidfate"); 进入初始化源码: // LinkedList 长度 transient int size = 0 ; // 指向头结点 transient Node < E > first ; // 指向尾节点 transient Node < E > last ; public LinkedList ( ) { } 可以看到默认的构造函数空空如也,需要注意的是链表是以 Node 为基础连接起来的,Node 的结构如下: private static class Node < E > { E item ; Node < E > next ; Node < E > prev ; Node ( Node < E > prev, E element, Node < E > next ) { this.item = element ; this.next = next ; this.prev = prev ; } } Node 结构也很简单,prev 和 next 说明它是一个双向的链表,保存前后 Node 的指针

Heartbeat基础知识

拈花ヽ惹草 提交于 2020-02-25 22:16:37
在日常的集群系统架构中,一般用到Heartbeat的主要就2种: 1)高可用(High Availability)HA集群, 使用Heartbeat实现,也称为”双机热备”, “双机互备”, “双机”; 2)负载均衡群集(Load Balance Cluster),使用Linux Virtual Server(LVS)实现; Heartbeat 的介绍 Heartbeat是Linux-HA项目中的一个组件,它实现了一个高可用集群系统。 心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat项目里,由heartbeat模块实现了这两个功能 。Heartbeat是目前开源HA项目中十分成功的一个例子,它提供了所有 HA 软件所需要的基本功能,比如 心跳检测和资源接管、监测群集中的系统服务、在群集中的节点间转移共享 IP 地址的所有者 等,自1999年开始到现在,Heartbeat在行业内得到了广泛的应用。heartbeat最核心的功能包括两个部分,心跳监测和资源接管。心跳监测可以通过网络链路和串口进行,而且支持冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。 Hearbeat和Keepalived区别 1)

Mac安装指定版本的node

荒凉一梦 提交于 2020-02-25 21:51:16
Mac安装指定版本的node 安装Homebrew Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。 在终端上运行 $ /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” 安装完成后运行 $ brew -v 出现版本号则说明安装成功 安装nvm nvm是node版本管理工具,为了解决node各种版本存在不兼容现象,nvm是让你在同一台机器上安装和切换不同版本的node的工具。 安装nvm $ brew install nvm 安装完成后打开shell的配置文件 $ cd ~ $ vim .bash_profile 按 i 进入编辑模式 在文件里添加以下命令 export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh 然后按esc退出编辑模式 按 :wq保存 重新source $ source .bash_profile 安装node指定版本 查看所有的node可用版本 $ nvm Is-remote 下载指定版本 $ nvm install

hello Nodejs

孤人 提交于 2020-02-25 21:47:21
在Node中 采用EcmaScript进行编码 没有BOM和DOM 浏览器中的JS没有文件操作的能力 Node中的JS有文件操作的能力 读取文件 fs是file-system的缩写,是文件系统的意思 在Node中如果进行相关文件操作,必须引入fs这个核心模块 例如: fs.readFile 读取文件 1.使用require方法加载核心模块 var fs=require('fs') 2.读取文件 fs.readFile('./data/hello.txt',function(error,data){ console.log(data) }) //第一个参数是文件路径 //第二个参数是一个回调函数 //读取成功 data:数据,error:null //读取失败 data:undefined,error:错误对象 3.写入文件 var fs=require('fs') fs.writeFile(./data/你好.md,'大家好,我是黄开然',function(error){ console.log('文件写入成功') }) //第一个参数:文件路径 //第二个参数:文件内容 //第三个参数:回调函数 //成功:文件写入成功 error:null //失败:文件写入失败 error:错误对象 来源: CSDN 作者: kaba啊 链接: https://blog.csdn.net

Node微信公众号开发 封装request和获取access_token

三世轮回 提交于 2020-02-25 20:57:48
按照上一篇的说明,我们现在已经做好了和微信公众平台的对接工作,接下来我计划首先实现请求 access_token 的功能。 在开发过程中并非照搬教程内容,自己有所修改,主要的修改内容是在文件结构以及数据传输上。 原教程目录结构: material(素材文件夹) wechat(核心文件夹) access_token.json(用于请求 access_token ) menu.json (自定义菜单目录文件) msg.js (涉及所有的被动回复种类) wechat.js (核心文件,其中包括调用自定义菜单、自定义回复等功能) app.js(入口文件) config.json(基础配置数据,其中包括 appid、appScrect 以及各种的请求地址) 我的目录结构: material(素材文件夹) app.js(入口文件) config.json(基础配置数据以及动态存储的 access_token 数据) request.js(封装的 post 和 get 方法) accessToken.js(用于请求 access_token ) createMenu.js(用于生成自定义菜单) replyType.js(涉及所有的被动回复种类) reply.js(自定义回复) 个人认为,至少我的目录结构拆的更细化,至于好坏我不敢说。 封装 request 方法 其实 Node.js

【树】C003_N叉树的后序遍历(递归 | 迭代)

爱⌒轻易说出口 提交于 2020-02-25 20:07:47
一、题目描述 Given an n - ary tree , return the postorder traversal of its nodes' values . Nary - Tree input serialization is represented in their level order traversal , each group of children is separated by the null value ( See examples ) . Follow up : Recursive solution is trivial , could you do it iteratively ? Input : root = [ 1 , null , 3 , 2 , 4 , null , 5 , 6 ] Output : [ 5 , 6 , 3 , 2 , 4 , 1 ] 二、题解 方法一:递归 LinkedList < Integer > resList = null ; //先节点后跟 public List < Integer > postorder ( Node root ) { dfs ( root ) ; return resList ; } private void dfs ( Node root ) { if ( root == null )

node-sass 下载失败 解决方案

ⅰ亾dé卋堺 提交于 2020-02-25 19:39:13
//建议不要用cnpm 安装有各种诡异的bug 可以通过如下操作解决npm速度慢的问题 npm install --registry= https://registry.npm.taobao.org 试过上面方法还不行的同学 ,可以把package.json中的node-scss依赖改为:"node-sass": "^4.5.0", npm install --registry= https://registry.npm.taobao.org执行的时候, 出现错误 gyp ERR! configure error gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable. 然后又去下载python2安装后设置了环境变量, 然后又重新执行npm install --registry= https://registry.npm.taobao.org 启动项目,一直报没有sass-loader和node-sass模块, 然后我的解决方案是分别执行这两条命令: 1、npm install sass-loader --save-dev 2、npm install node-sass --save-dev 来源: https://www.cnblogs.com

k8s部署---master节点组件部署(三)

大憨熊 提交于 2020-02-25 18:58:57
kube-APIserver组件介绍 kube-APIserver提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心。 kube-APIserver的功能 提供了集群管理的REST API接口(包括认证授权、数据校验以及集群状态变更) 提供其他模块之间的数据交互和通信的枢纽(其他模块通过API Server查询或修改数据,只有API Server才直接操作etcd) 是资源配额控制的入口 拥有完备的集群安全机制 kube-apiserver工作原理图 kubernetes API的访问 k8s通过kube-apiserver这个进程提供服务,该进程运行在单个k8s-master节点上。默认有两个端口 本地端口 该端口用于接收HTTP请求 该端口默认值为8080,可以通过API Server的启动参数“--insecure-port”的值来修改默认值 默认的IP地址为“localhost”,可以通过启动参数“--insecure-bind-address”的值来修改该IP地址 非认证或授权的HTTP请求通过该端口访问API Server 安全端口 该端口默认值为6443,可通过启动参数“--secure-port”的值来修改默认值 默认IP地址为非本地(Non-Localhost)网络端口

结构体中typedef语句用法总结

心不动则不痛 提交于 2020-02-25 18:14:54
结构体中typedef语句用法总结 typedef为 C语言 的关键字,作用是为一种数据类型(这里仅讨论结构体数据类型)定义一个新名字。在编程中使用typedef目的一般有两个:给变量一个易记且意义明确的新名字;简化一些比较复杂的类型声明。 1、typedef的最简单使用 typedef int Data; //给已知数据类型int起个新名字---Data。 2、typedef 用法 & 结构体    typedef struct Node{    int info;    char flag;    } MyStruct; 这语句实际上完成两个操作:   1) 定义一个新的结构类型    struct 关键字和Node一起构成了这个结构类型,不论是否有typedef,这个结构都存在。 我们可以用struct Node node来定义变量node,但要注意,使用Node node来定义变量不对 的,因为struct 和Node合在一起才能表示一个结构类型。   2) typedef为这个新的结构起了一个名字,叫MyStruct。因此,MyStruct实际上相当于struct Node,我们可以使用MyStruct node来定义变量node。 3、typedef & 结构体指针类型用法 typedef struct Node {    char flag;    struct

ztree 样式更改

为君一笑 提交于 2020-02-25 17:22:20
管理系统三个不同样式不同内容的左侧导航栏就懒得自己写用的这个插件 插件太多api有的不是很全面查起来浪费时间自己整理下 api: http://www.treejs.cn/v3/demo.php#_114 去掉前面的加减符号 找到 jquery.ztree.core.js 1258行 注释就可以了 makeDOMNodeLine: function (html, setting, node) { /*html.push("<span id='", node.tId, consts.id.SWITCH, "' title='' class='", view.makeNodeLineClass(setting, node), "' treeNode", consts.id.SWITCH, "></span>");*/},自定义背景图片插件中包含的样式根据不同位置更改背景定位 比较局限 可以添加iconSkin class 设置对应的背景图片 如图 更换被点击的图片和样式 来源: https://www.cnblogs.com/Kipper-liu/p/9212452.html