node

Java HashMap工作原理【图文版】

て烟熏妆下的殇ゞ 提交于 2019-12-14 16:36:25
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 大部分Java开发者都在使用Map,特别是HashMap。HashMap是一种简单但强大的方式去存储和获取数据。但有多少开发者知道HashMap内部如何工作呢?几天前,我阅读了java.util.HashMap的大量源代码(包括Java 7 和Java 8),来深入理解这个基础的数据结构。在这篇文章中,我会解释java.util.HashMap的实现,描述Java 8实现中添加的新特性,并讨论性能、内存以及使用HashMap时的一些已知问题。 内部存储 Java HashMap类实现了Map<K, V>接口。这个接口中的主要方法包括: V put(K key, V value) V get(Object key) V remove(Object key) Boolean containsKey(Object key) HashMap使用了一个内部类Entry<K, V>来存储数据。这个内部类是一个简单的键值对,并带有额外两个数据: 一个指向其他入口(译者注:引用对象)的引用,这样HashMap可以存储类似链接列表这样的对象。 一个用来代表键的哈希值, 存储这个值可以避免 HashMap在每次需要时都重新生成键所对应的哈希值。 下面是Entry<K, V>在Java 7下的一部分代码: static class

win10安装配置nodejs环境

↘锁芯ラ 提交于 2019-12-14 16:34:12
开发小程序用到Vant组件库,需要安装nodejs环境 1. nodejs下载地址 https://nodejs.org/zh-cn/ 2. win10安装msi版本会提示2503错误,需要在【windows系统】以管理员方式打开【命令提示符】运行 msiexec /package 'msi文件路径' 3. 可以修改默认的安装路径,一直Next直到安装完成。 4. win+R打开输入cmd打开命令提示符,输入node -v或npm -v 查看版本号 5. 在安装路径下新建两个文件夹【node_global】及【node_cache】 在cmd窗口中配置这两个文件夹 npm config set prefix "D:\Program Files\nodejs\node_global" npm config set cache "D:\Program Files\nodejs\node_cache" 6. 设置环境变量,进入环境变量对话框,在【系统变量】下新建【NODE_PATH】,输入【D:\Program Files\nodejs\node_modules】 在【Path】后面加上【D:\Program Files\nodejs】 在【用户变量】增加【D:\Program Files\nodejs\node_global】上移到顶端 7. 在小程序的项目右键【在终端中打开

Gulp.js

邮差的信 提交于 2019-12-14 16:17:54
Gulp.js 是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务。Gulp.js 是基于 Node.js 构建的,利用 Node.js 流的威力,你可以快速构建项目. 为什么要用Node环境: js是一个脚本文件,不能直接用来操作文件。但是,在项目过程中,免不了需要经常操作一些文件,包括移动复制压缩上传修改等。如果重新学习C之类底层操作的语言的未免成本太高,此时node的横空出世,解决了这个问题。因为node使用了js的语法,而且使用js的人也越来越多,node就理所当然的火遍大江南北 在node中有很多插件,类似于手机中的软件,拿到一个新手机没有任何软件是没有办法使用的。 gulp就是node中的工具之一。类似前端工程化工具还有:webpack,grunt,browserify。 gulp是一种前端自动化工具,在使用gulp之前需要先安装gulp 安装gulp有两种方式,一种是通过下载软件安装,一种是通过类似手机的应用商店的软件下载,而node就是这个应用商店 直接在网页上下载安装不仅安全性无法保证,而且还会造成不兼容等问题; 通过手机的应用商店下载的软件会自动适配当前手机的型号和cpu等信息,既保证了安全,也保证的软件的功能完整性 配置nodejs 在配置gulp环境之前需要有node环境, 去官网下载node node是一个命令行工具

nodejs学习笔记

不问归期 提交于 2019-12-14 16:13:22
什么是Nodejs? Nodejs是一个基于Chrome V8 引擎的JavaScript运行时(运行环境)。 下载安装Nodejs 官方站点:https://nodejs.org/en/ 国内站点:http://nodejs.cn/ 建议安装长期支持版(Long Term Support) 建议不要修改默认的安装目录 默认安装的内容有哪些? Node.js runtime JavaScript运行时的环境 npm package manager(Node Package Manager,NPM)Node.js的包管理器,简称为npm Online documentation shortcuts 在线帮助文档 Add to PATH 将Nodejs安装目录添加到PATH环境变量中 Node.js提供了哪些内容? Nodejs运行时,JavaScript代码运行时的环境。 提供了一些核心模块,应用程序编程接口(Application Program Interface,API) 官方API文档https://nodejs.org/dist/latest-v12.x/docs/api/ 国内API文档http://nodejs.cn/api/ 交互式解析器(Read Execute Print Loop,REPL),以及一些相关的命令 打开命令窗口,输入node并回车

Node连接MySQL数据库

梦想的初衷 提交于 2019-12-14 05:42:14
使用 Node 操作 MySQL 数据库 安装: npm install --save mysql 案例: var mysql = require ( 'mysql' ) ; // 1. 创建连接 var connection = mysql . createConnection ( { host : 'localhost' , user : 'root' , password : '123456' , database : 'users' } ) ; // 2. 连接数据库 connection . connect ( ) ; // 3. 执行数据操作 connection . query ( 'select * from users' , function ( error , results , fields ) { if ( error ) throw error ; console . log ( 'The solution is: ' , results ) ; } ) ; connection . query ( 'insert into users values(null, "admin", "123456")' , function ( error , results , fields ) { if ( error ) throw error ; console .

nodejs-翻转算法

懵懂的女人 提交于 2019-12-14 03:29:22
nodejs-翻转算法 1 /** 2 * Created by moon on 2019/12/14. 3 */ 4 //程序运行完成时一定要有输出语句,本工具才能正确展示运行结果。 5 6 7 function abc() 8 { 9 var n = 50; 10 var min_n = n / 2; 11 var max = 9 ; 12 for (var i = 0; i < max; i ++) 13 { 14 var left = max / 2; 15 16 if (i < left) 17 { 18 var abc = (max - i); 19 20 var bag = - (abc * n - left * n) + min_n; //偏移25 21 22 console.log("hello " + bag); 23 } 24 else 25 { 26 var bag = (i * n - left * n) + min_n; //偏移25 27 28 console.log("hello " + bag); 29 } 30 } 31 } 32 33 abc(); 来源: https://www.cnblogs.com/drawmoon/p/12037996.html

UI界面设计的学习

左心房为你撑大大i 提交于 2019-12-14 00:57:33
UI界面设计的学习 JavaFX的基本概念 舞台Stage 场景Scene 节点Node 面板Pane 控件Control 形状Shape 注意的问题: 应用程序的父类Application 舞台Stage 场景Scene 最基本的类Button类 面板类 Pane类 栈面板类 StackPane 流式面板类FlowPane 边界面板类BoderPane 网络面板类GridPane 辅助类 颜色类Color 字体类Font 图像类Image,imageView 常用控件 Label类 TextFiled类 PasswordFiled类 TextArea类 ScrollPane类 JavaFX的基本概念 舞台Stage 是用于显示场景的窗口,它是JavaFX程序用户界面的顶层容器。 场景Scene 是摆放在舞台中的对象,也是一个容器,其中可以放置面板和节点对象。 节点Node 是可视化的组件,可以是面板,控件,图像视图,形状等。 面板Pane 面板中可以摆放各种节点,JavaFX提供了多种面板提供给用户在窗口组织节点。 控件Control 包括标签,按钮,复选框,单选按钮,文本框,文本区等。 形状Shape 是指文本,直线,椭圆等。 注意的问题: 场景中只能放面板和控件,但是面板中可以包含Node的任何子节点。 应用程序的父类Application

maven调用本地nodejs命令

北城余情 提交于 2019-12-13 14:30:35
相关背景: 在公司的一个项目中,前端使用的框架是vue.js,其中有需要使用npm run build进行前端打包。执行打包时,会默认将打包的前端静态资源文件(css/js/img等)输出到dist目录中。而spring boot只能访问src/main/resources/public下的静态资源文件,因此每次工程打包都得将dist目录下的资源文件手动拷贝到src/main/resources/public目录下,然后再执行mvn clean package命令进行打包,这样影响了开发效率。 公司项目使用maven技术进行项目工程组织。 问题思考: 在执行mvn clean package命令时,利用maven插件执行npm run build命令,一次性完成整个过程。 解决方式: 1、利用maven插件:exec-maven-plugin 详细的POM配置信息如下: <profiles> <!--考虑到window 和linux环境 npm命令格式的问题,使用maven的profile实现动态指定命令--> <profile> <id>window</id> <properties> <npm>npm.cmd</npm> </properties> <activation> <activeByDefault>true</activeByDefault> </activation

Vue双向绑定的实现原理系列(四):补充指令解析器compile

不想你离开。 提交于 2019-12-13 12:48:03
补充指令解析器compile github源码 补充下HTML节点类型的知识: 元素节点   Node.ELEMENT_NODE(1) 属性节点   Node.ATTRIBUTE_NODE(2) 文本节点   Node.TEXT_NODE(3) CDATA节点 Node.CDATA_SECTION_NODE(4) 实体引用名称节点    Node.ENTRY_REFERENCE_NODE(5) 实体名称节点   Node.ENTITY_NODE(6) 处理指令节点   Node.PROCESSING_INSTRUCTION_NODE(7) 注释节点   Node.COMMENT_NODE(8) 文档节点   Node.DOCUMENT_NODE(9) 文档类型节点   Node.DOCUMENT_TYPE_NODE(10) 文档片段节点   Node.DOCUMENT_FRAGMENT_NODE(11) DTD声明节点 Node.NOTATION_NODE(12) Compile指令解析器,解析DOM节点,直接固定某个节点进行替换数据的 解析模板指令,替换模板数据,初始化试图 将模板指令对应的节点绑定对应的更新函数,初始化对应的订阅器 首先需要获取到DOM元素,然后对含有DOM元素上含有指令的节点进行处理, 因此这个环节需要对DOM操作比较频繁,所有可以先建一个fragment片段

Redis进阶:Redis的集群模式介绍

隐身守侯 提交于 2019-12-13 07:50:31
Redis进阶:Redis的集群模式介绍 为什么要使用Redis集群 上一期我们介绍了Redis的哨兵机制,通过哨兵机制实现对Redis的监控、提醒,实现自动故障转移,这期我们继续学习下Redis的集群模式。 哨兵模式主要解决的是高可用,提升了Redis读性能,但是Redis的写性能及存储并没有得到有效提升,Redis的集群模式就是解决Redis缓存大数据量及提升写性能而推出的一种解决方案。 Redis通过分区来将数据自动分割到不同的节点,部分节点不可用时,整体上也能继续执行指令。 搭建Redis集群 准备Redis集群配置文件 新建配置文件 redis.conf port 7000 cluster-enabled yes cluster-config-file nodes7000.conf cluster-node-timeout 5000 appendonly yes daemonize yes 新建7000~7005,6个文件夹及配置文件。 [root@localhost redis-cluster]# mkdir 7000 7001 7002 7003 7004 7005 # 将上一步新增的配置文件放到各个文件夹中 注意修改成对应的端口号 [root@localhost 7000]# cp redis.conf ../7002/redis.conf 启动Redis服务