Other

JavaScript Promise.all()

今天我们学习使用Promise.all()这个静态方法来聚合多个异步任务的结果。 Promise.all()函数接受一个具有多个promise的数组作为参数,并返回一个promise对象。 什么时候返回? 当数组中的所有Promise全部被resolve或者reject Promise.all的语法: Promise.all([promise1, promise2, promise3]) .then(console.log) .catch(console.log) 首先传入一个数组,数组中的每个值为promise对象。 如果数组中的每个promise都被resolve,则Promise.all会返回一个新的promise对象,并reslove一个数组,里面是每个promise返回的值,同样按照传入的顺序。 如果数组中的某个promise被reject,Promise.all也会返回新的promise对象,reject第一个失败的promise所返回的值,如果后面的promise也有失败也不会返回。 当我们处理同时多个异步请求的时候,Promise.all非常的有用。 Promise.all() 示例代码 看明白代码就会了 成功resolve Promise示例下面的3个promise分别在第1、2、3秒的时候成功返回数字10、20、30。我们用setTimeout来模拟异步操作。 我需要将这个3个promise所返回的结果进行计算总和。 如果使用昨天的链式调用的话,结果将在1+2+3,6秒后才能返回结果。 但今天我们使用Promise.all,同时处理3个异步操作,最长时间的是p3的promise,所以3秒后就可以计算出结果。 const p1 = new Promise((resolve, reject) => { setTimeout(() => { console.log('第一个promise被resolve'); resolve(10); }, 1 * 1000); }); const p2 = new Promise((resolve, reject) => { setTimeout(() => { console.log('第二个promise被resolve'); resolve(20); }, 2 * 1000); }); const p3 = new Promise((resolve, reject) => { setTimeout(() => { console.

Main.java:2: class main is public, should be declared in a file named main.java public class main

 Main.java:2: class main is public, should be declared in a file named main.java public class main  搜了很多解决办法,都是说类名要和文件名改成一样的,明明我改的确实是一样的鸭。。我还问了强者大哥大姐们,怎么改都是报这个错(;′⌒`) 。。。。。 后来一个同学告诉我,原来是PTA的平台问题: http://www.cnblogs.com/zhrb/p/6347738.html   类名文件名都得是 Main,最后改完终于成功啦 下面提交第一行要去掉 package he1; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub int foot; //double inch; Scanner in = new Scanner(System.in); foot = in.nextInt(); //inch = (foot-32)*5/9; System.out.println((int)((foot-32)*5/9.0)); in.close(); } }  

python 加密 from cryptography.fernet import Fernet

 from cryptography.fernet import Fernet def encrdecr(keyval, textencr, textdecr): # Write your code here key = keyval # key = Fernet.generate_key() f = Fernet(key) result = [] result.append(f.encrypt(textencr)) result.append(f.decrypt(textdecr).decode()) # python去除 b' return(result)  

Java语言基础

(一)Java编译运行过程  编译期:Java源文件经过编译生成.class字节码文件 运行期:JVM加载.class并运行.class 特点:跨平台,一次编译到处使用(跨平台特性如下图) (二)JVM、JRE、JDK  JVM:(Java Virtual Machine),Java虚拟机 JRE:(Java Runtime Environment),Java运行环境,除包含JVM外还包含运行Java程序所必须的环境,JRE = JVM + Java系统类库 JDK:(Java Development Kit),Java开发工具包,JDK = JRE + 编译运行等命令工具 说明: 运行Java程序最小环境为JRE 开发Java程序最小的环境为JDK (三)变量的命名  在程序执行过程中,其值能被改变的量称为变量,其值不能改变的量称为常量。变量与常量的命名都必须使用合法的标识符。 变量的命名应遵循以下规则: -只能包含字母、数字、_和$符,并且不能以数字开头 -严格区分大小写 -不能使用关键字 -允许中文命名,但不建议,建议英文的见名知意、小驼峰命名法 (四)代码注释  通过在程序代码中添加注释可以提高程序代码的可读性和可维护性,帮助程序员更好的阅读和理解程序。Java语言提供 3 种添加注释的方法,分别为单行注释、多行注释和文档注释。 单行注释 “//”为单行注释标记,从符号“//”开始直到换行为止的所有内容均为注释而被编译器忽略。语法如下: //注释内容 例如,以下代码为声明 int 型变量添加注释: int age; //声明 int 变量用于保存年龄信息 多行注释 “/* */”为多行注释标记,符号“/*”与“*/”之间的所有内容均为注释内容。注释中的内容可以换行。语法如下: /* 注释内容 1 注释内容 2 .

mysql 内置函数总结

1.生成随机数 select rand(); 返回[0,1)之间的小数 如果想生成某个[min,max]之间的随机数 select min + rand()*(max - min),随机整数 select min + trunc(rand()*(max-min)); 2. 分组聚合函数group_concat 相当于 oracle 的wm_concat create table a(id int primary key auto_increment,staffid varchar(20),roleid varchar(20)); insert into a(staffid,roleid) values('a','admin'); insert into a(staffid,roleid) values('a','safeadmin'); insert into a(staffid,roleid) values('b','general'); insert into a(staffid,roleid) values('b','planer'); mysql> select staffid,group_concat(roleid order by roleid) from a group by staffid;+---------+--------------------------------------+| staffid | group_concat(roleid order by roleid) |+---------+--------------------------------------+| a | admin,safeadmin || b | general,planer |+---------+--------------------------------------+2 rows in set (0.

node-js 学习笔记

node-js 学习笔记 day01 一 1安装完之后node--js之后检查 2 五大浏览器:ie 谷歌 火狐 safri opera 内核:渲染引擎(css+html)+js引擎 3.cmd常用命令 ​ ping:检查连接 ​ ipconfig:当前ip地址 ​ ctrl+c 退出前一步的环境 ​ cd 前进或后退文件夹 ​ dir 查看当前路径下的所有文件夹 ​ tab 根据名字补全文件名 ​ cls 清除cmd窗口下的已打印指令 ​ 上翻/下翻 找到之前/之后输入的指令 4 学习node-js ​ 1个中心思想--模块化开发 ​ 2个关键词--module exports require ​ export default import ​ 3种分类 自带模块 第三方模块 自定义模块 二 es6模块化开发语法 1 用sc来引入数据,数据不安全 曝露在全局 2 模块化环境 只有当前环境能用,更安全 打开页面用http协议打开 <script type=module> //2.模块化环境 只有当前环境能用,更安全 打开页面用http协议打开 import student from .

关于sql优化

一:基本写法优化  1.少使用 * ,需要什么字段就取什么字段。  2.对于条件中等号两边类型要一致,字符串类型不加单引号会导致索引失效。  3.尽量少使用order by,对于多个字段要排序的使用组合索引。  4.对于group by语句要先过滤后分组。  5.在查询时尽量少使用null,可给字段设置默认值。  6.少使用like,需要使用时,尽量用 abd% ,不要将%用在最前面。  7.在where后面少使用函数或算术运算。  8.distincit过滤字段要少,避免使用distinct * 。  9.不要超过5个表以上的连接。 二:建立合适的索引  1.对于高频筛选字段可以适当简历索引。  2.一个表的索引不要超过5个,多了会影响插入、修改。  3.不要对值是有限重复的字段建立索引,如性别。  4.使用组合索引一定要遵守最左原则。 三:替代优化  1.不要使用not in和<>,会破坏索引结构,not in可以使用not exists代替,<>可以使用<和>代替。  2.使用join连接代替子查询。

Java获取图片的MD5

File file = new File(/usr/local/face.jpg);try { FileInputStream fis = new FileInputStream(file); MessageDigest md = MessageDigest.getInstance(MD5); byte[] buffer = new byte[1024]; int length = -1; while ((length = fis.read(buffer, 0, 1024)) != -1) { md.update(buffer, 0, length); } BigInteger bigInt = new BigInteger(1, md.digest()); System.out.println(文件md5值: + bigInt.toString(16)); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }

3.4 常用Linux命令

1.cat命令 cat命令用于查看纯文本文件(内容较少的)  2.more命令 more命令用于查看纯文本文件(内容较多的),语法格式为“more [参数] 文件名称”。  3.head命令 head命令用于查看纯文本文件的前N行,语法格式为“head [参数] 文件名称”。  4.tail命令 tail命令用于查看纯文本文件的后N行或持续刷新文件的最新内容,语法格式为“tail [参数] 文件名称”。 tail -f文件名称 一般查看刷新的日志  5.tr命令 tr命令用于替换文本内容中的字符,英文全称为“transform”,语法格式为“tr [原始字符] [目标字符]”。  6.wc命令 wc命令用于统计指定文本文件的行数、字数或字节数,英文全称为“word counts”,语法格式为“wc [参数] 文件名称”。 wc -l 显示行数,wc -w 显示单词数,wc -c 显示字节数 /etc/passwd 文件保存着所有用户的登陆信息,所以wc -l /etc/passwd 可以查看用户数  7.stat命令 stat命令用于查看文件的具体存储细节和时间等信息,英文全称为“status”,语法格式为“stat文件名称”。 Linux系统中的文件包含3种时间状态,分别是Access Time(内容最后一次被访问的时间,简称为Atime),Modify Time(内容最后一次被修改的时间,简称为Mtime)以及Change Time(文件属性最后一次被修改的时间,简称为Ctime) Atime:查看内容时间 Ctime:查看修改属性的时间 Mtime:查看修改内容的时间  8.grep命令 grep命令用于按行提取文本内容,语法格式为“grep [参数] 文件名称”。 -n参数用来显示搜索到的信息的行号; -v参数用于反选信息(即没有包含关键词的所有信息行)  9.cut命令 cut命令用于按“列”提取文本内容,语法格式为“cut [参数] 文件名称”。 按“列”搜索,不仅要使用-f参数设置需要查看的列数,还需要使用-d参数来设置间隔符号。  10.diff命令 diff命令用于比较多个文件之间内容的差异,英文全称为“different”,语法格式为“diff [参数] 文件名称A 文件名称B”。

JAVA中的Integer对象大小比较100等于100,1000不等于1000

integer源码中的方法valueOf()做了一个条件判断,其中IntegerCache.low的值为-128,IntegerCache.higth的值为127 也就是说目标值在-128~127中会直接从cache数组中读取值,否则会创建新的对象。 为什么默认值在-128~127之间 JAVA api中说-128~127之间数据在int范围内时频繁使最高的,为了减少频繁创建对象带来内存消耗,这里其实用上了享元模式,以提高对时间和空间的性能。