下面以win10为例,介绍安装java 1.下载JDK 访问官网下载页面地址 https://www.oracle.com/java/technologies/downloads/ 下面以windows 64位系统为例: 2.双击安装 3.配置环境 鼠标右键 此电脑 > 属性 > 关于 点击高级系统设置,在弹出的对话框点击 环境变量 在系统变量中点击新建,输入java安装路径 点击确定。 在系统变量中找到Path点击编辑,点击新建,输入%JAVA_HOME%\bin
Object.fromEntries()方法 JavaScript中的Object.fromEntries()方法是一个内置对象,它用于将键值对列表转换为对象。这个方法接受一个可迭代对象,通常是一个包含键值对的数组或Map对象,并返回一个新对象,该新对象的属性由可迭代对象中的条目确定。 用法 Object.fromEntries(iterable) 参数: iterable: 一个可迭代对象,例如Array、Map或其他实现可迭代协议的对象。 返回值: 该方法始终返回一个新对象,新对象的属性由可迭代对象中的条目提供。 示例 示例 1:将Map转换为对象 const map1 = new Map([ ['fruit', 'apple'], [1, 0] ]); const geek = Object.fromEntries(map1); console.log(geek); const map2 = new Map( [['color', 'red'], ['weight', '50g']] ); const obj = Object.fromEntries(map2); console.log(obj); 输出: // 示例 1输出 Object { fruit: "apple",...
使用===对字符串进行严格比较 比较两个字符串的内容,看它们是否完全相同。 const str1 = "Hello"; const str2 = "World"; console.log(str1 === "Hello"); // 输出: true console.log(str2 === "world"); // World 与 world 大小写不相同所以输出 false 不区分字符串大小写的比较 使用 toLowerCase() 或 toUpperCase() 方法将字符串转换为统一大小写,然后进行比较。 const str1 = "Hello, World"; const str2 = "hello, world"; console.log(str1.toLowerCase() === str2.toLowerCase()); // 输出: true 查找子字符串 使用 includes()、indexOf()...
Object.keys() 方法是 JavaScript 中用于获取一个对象自身可枚举属性的方法。它返回一个由对象的属性名组成的数组。下面详细解释了 Object.keys() 方法的使用方式。 语法: Object.keys(obj) 参数: obj:要获取属性名的对象。 返回值: 一个由对象的自身可枚举属性的属性名组成的数组。 示例: // 创建一个示例对象 const person = { firstName: 'Tom', lastName: 'Cruise', age: 30, }; // 使用 Object.keys() 获取对象的属性名数组 const keys = Object.keys(person); // 打印属性名数组 console.log(keys); // 输出: ['firstName', 'lastName', 'age'] // 使用数字作为属性名 var obj1 = { 5: "a",...
安装XtraBackup sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm sudo percona-release enable-only tools release sudo yum install percona-xtrabackup-80 也可以使用 创建一个完全备份 full backup 1. 创建一个用于备份的目录 例如我想将备份的数据放到/data/backup 下 mkdir /data/backup 2. 执行备份 要创建备份,需要使用 --backup 选项运行 xtrabackup,同时还需要指定 --target-dir 选项,该选项指定备份存储的目录 xtrabackup 不会覆盖现有文件,失败时会显示操作系统错误 error 17,文件已存在。 xtrabackup --backup --user=USERNAME --password=PASSWORD --target-dir=/data/backup 3.使用prepare使数据在某个时间点上保持一致 xtrabackup --prepare --target-dir=/data/backup 增量备份 增量备份,即复制自上次备份以来发生变化的所有数据 你可以在每次完整备份后执行多次增量备份,可以设置一个备份流程,例如每周一次完整备份,每天一次增量备份,或者每天一次完整备份,每小时一次增量备份。 1.创建一个增量备份 在创建增量备份之前,应先创建一个全量备份...
什么是深拷贝 ? 在内存中重新开辟一个存储空间,完全克隆一个一模一样的对象。 深拷贝是一种复制对象的方式,通过递归地复制对象及其所有嵌套属性和子属性,从而在新的对象中创建一个完全独立的副本。 这意味着原始对象和深拷贝后的对象之间没有任何共享引用,修改一个对象不会影响另一个对象 浅拷贝则不然,它只复制对象的一级属性,而不会递归地复制下级嵌套属性,因此属性中仍存在原始对象属性中的引用,修改一个对象会影响到另一个对象 下面介绍几种实现深拷贝的方法: 1. 函数递归 function deepClone(obj) { if (obj === null || typeof obj !== 'object') { return obj; } let clone = Array.isArray(obj) ? [] : {}; for (let key in obj) { if (obj.hasOwnProperty(key)) { clone[key] = deepClone(obj[key]); } } return clone; }...
Javascript中的let是ES6新增的关键字,声明变量时,可以使用 let 和 var 这两个关键字, 它们有一些区别,下面是一些示例来说明它们之间的不同之处 1. 作用域不同 在一对{ }内(块级)分别使用 var 和 let 声明的变量作用域不同 if (true) { var a = "我是使用var声明的变量"; let b = "我是使用let声明的变量"; } console.log(a); // "我是使用var声明的变量" console.log(b); // Uncaught ReferenceError: b is not defined 此时,a 在块级作用域外部仍然可见,而 b 由于具有块级作用域,只在 if 语句内可见。 在循环中: 在使用 var 的情况下,异步代码中使用的是同一个变量 i,而在使用 let 的情况下,每次循环都会创建一个新的...
在js中判断两个数组是否存在相同元素有四种方法 1 使用循环 function arraysHasDuplicate(array1, array2) { for (let i = 0; i < array1.length; i++) { for (let j = 0; j < array2.length; j++) { if (array1[i] === array2[j]) { return true; } } } return false; } const a1 = [1, 2, 3]; const a2 = [2,...