next

Web全栈~29.MySQL

左心房为你撑大大i 提交于 2021-02-05 15:25:07
Web全栈~29.MySQL 上一期 MySQL安装 根据自己的需求选择~ 不过本人选了第一个,开发者默认~ 大多数操作,只需要默认下一步就好了,就不一一发截图了~ 接下来又是一顿next和finish~ 然后还是一顿Next和Finish~最后安装成功… 来任务管理器里面的服务看看? 默认路径C:\Program Files\MySQL\MySQL Server 8.0 配置path环境变量 计算机,右键,属性,高级系统设置,环境变量 把C:\Program Files\MySQL\MySQL Server 8.0\bin这个路径加到环境变量里面去(放最上面) 现在就可以用CMD登录MySql了 登录命令: mysql -hlocalhost -uroot -p 然后我们发现navicat无法连接MySql? 别着急,我们还有操作~ 这种错误的原因是在MySQL8之前版本中加密规则mysql_native_password,而在MySQL8以后的加密规则为caching_sha2_password。要么更新navicat驱动来解决此问题,要么就是将mysql用户登录的加密规则修改为mysql_native_password。我的话呢,就用第二种吧~ 加上这两行命令就可以了~ 设置密码永不过期 alter user 'root'@'localhost' identified by

数据地图系列10|excel(VBA)数据地图透明度填充法

穿精又带淫゛_ 提交于 2021-02-05 10:40:53
今天要跟大家分享 数据地图系列的第10篇——excel(VBA)数据地图透明度填充法。 这种方法的制作步骤难度与前一篇相比都较低,但是涉及到的VBA代码却要比前一篇略复杂一点。 1、首先我们要准备的是世界地图素材: 本案例中数据多达191个国家,每个国家图形名称都取得是“S_”+“前三个字母大写”,需要一一命名,当然这个过程是非常耗时费力的,推送后我会将本例源文件贡献,如感兴趣,可以直接拿案例中已经命名好的矢量图形尝试着去做。 2、添加透明度列变量 =($E$1-D4)/($E$1-$E$2)*90% 根据指标值的范围将指标值转化为0%~90%的透明度指标。 3、选择透明度填充的主色,作为填充色色调的主题色。 将选好的主色填充到指定单元格中。(H3) 4、插入一个矩形 (命名为color_label)将作为地图图例 5、输入VBA填色代码 ALT+F11打开VBA编辑器,输入以下代码: Sub fill_color_vba() Application.CalculateFull '模拟效果用 On Error Resume Next '个别国家无图形,忽略 Application.ScreenUpdating = False '暂停刷新屏幕 For i = 4 To 193 '为数据源的起始和结束行号 ActiveSheet.Shapes(Range("sheet1!C" & i)

数据地图系列9|excel(VBA)数据地图!

非 Y 不嫁゛ 提交于 2021-02-05 09:55:23
今天要跟大家分享的是 数据地图系列的第九篇——excel(VBA)数据地图! 关于VBA在excel中的应用非常广泛,本篇仅仅是给出示例代码,不会对基础操作做太过详细的讲解。 要说为什么手动操作都可以完成的地图填充,为啥要弄得这么复杂。其实理由很简单,就是效率,可以以一种一劳永逸的方式节省时间、提高效率。 否则你只能每一次都手动操作,重复劳动,想想一下,靠简单几句的代码,就可以瞬间完成批量的图形填充效果,那么花一点儿心思做一套模板(可以循环使用),真的是太值得了。 下面是VBA数据地图的详细制作步骤: 1、首先你需要一个纯色的矢量地图素材。 这个问题早在数据地图的入门篇里已经解决了。 数据地图入门篇——素材获取! 2、图形命名 这里需要我们给每一个省份(或者图形)命名。 选中某一个省份图形,在左上角的名称栏中直接修改定义或者,在绘图工具——选择窗格中,双击该图形默认名称,进行自定义。(中国地图就需要定定义34个省级行政单位名称)。 3、输入数据: 关于作图的数据组织:这里需要三列数据,一列省份名称、一列指标值,一列颜色填充值(需要使用函数自动获取)。 4、定义组距 5、定义颜色填充范围 将F9:G13单元格区域选中并定义名称为color_table 使用concatenate函数制作分段值范围。 将D9-D13区域的五个单元格分别命名为color1~color5。(命名方法同上)

.net core webapi通过中间件获取请求和响应内容

二次信任 提交于 2021-02-05 05:45:29
本文主要根据中间件来实现对.net core webapi中产生的请求和响应数据进行获取并存入日志文件中; 这里不详细介绍日志文件的使用。你可以自己接入NLog,log4net,Exceptionless等 创建接口记录的中间件 using Microliu.Core.Loggers; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Internal; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ptibro.Partner.API.Extensions { public class RequestResponseLoggingMiddleware { private readonly RequestDelegate _next; private readonly ILogger _logger;

判断链表中是否有环(BAT面试题)

本秂侑毒 提交于 2021-02-04 23:00:39
一,题目描述 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例1: 输入:head = [3,2,0,-4], pos = 1 输出:true 解释:链表中有一个环,其尾部连接到第二个节点。 示例二: 语言 方法 6813 CE13t50T8q pD82o 抖音怎么恢复播放量 7858 2008-08-27 22:08:26 输入:head = [1,2], pos = 0 输出:true 解释:链表中有一个环,其尾部连接到第一个节点。 示例三: 输入:head = [1], pos = -1 输出:false 解释:链表中没有环。 二,解决思路 使用快慢指针,让节点fast和slow开始都指向头节点,在fast != null && fast.next != null的条件下fast一次走两步,slow一次走一步,如果fast能与slow能够相遇即有环 三,代码实现 public boolean hasCycle ( ListNode head ) { // 使用快慢指针的方式来判定 ListNode fast = head ; ListNode slow = head ; while ( fast != null && fast . next

Oxylabs代理指南

大城市里の小女人 提交于 2021-02-04 18:39:32
Oxylabs代理 总部位于立陶宛维尔纽斯的Oxylabs是一家发展迅速的高级代理供应商,为公开的网络数据收集提供市场领先的解决方案,恪守职业道德。丰富的实践经验、创新的技术解决方案和强大的核心价值是Oxylabs在 网络数据收集行业 呈 指数级增长 的引导力量。 最近一些朋友苦于找不到抓取大量数据时需要的稳定代理,向我们咨询我们有没有好的解决方案。于是我们根据最近的业务需求整理出了几个方向下需要用到的 代理和工具 。希望能帮助用户节约更多的时间。 首先要说的是数据中心代理。因为其支持的并行数比较多,且支持在 短期内爬取大量数据 。很适合用来做 调研、电商和安全类的工作 。下面我们就来看看数据中心代理的特点。 数据中心代理 Oxylabs的数据中心代理提供稳定快速的网速,旨在满足各行各业的需求,Oxylabs拥有专业的专用代理IP池(超过200万)来自82个地区,以及近8,000个子网。我们的专用代理提供迅速的响应时间,因为每个数据中心代理一次只分配给一个用户。 主要特点: 超过200万个IP 遍布全球82个地区 99.99%上线率 极为快速且稳定 无限数量 的可选择目标、带宽和并行会话 卓越的性能和可靠性 使用场景 : 市场调研、电子商务、品牌保护、邮件保护、网络安全。 如果数据中心代理的最大特点是快,那么 住宅代理的最大特点就是稳 。因为住宅代理模拟的真实的住宅用户

HashMap 1.8 源码

守給你的承諾、 提交于 2021-02-04 07:27:12
hashMap 在JDK8与之前的版本实现上的不同点 hashMap 在 JDK8 之前的实现为:数组 + 链表 构造方法: 在初始化 loadFactor、 threshold 之后,会指向初始化操作,创建一个长度为 capacity 的 Entry 数组: 计算 hash : h ^= (h >>> 20 ) ^ (h >>> 12 ); return h ^ (h >>> 7 ) ^ (h >>> 4 ); 计算table对应的index : h & (length- 1 ); 扩容 :不存在什么红黑树与链表的转化,将当前 table 的容量翻倍,重新计算每个元素的index。 对于旧table的数组上的链表遍历操作,每次计算出对应的新的index,然后放置到新 table 上 链表的头部 且 next 将指向刚刚在该位置的第一个元素。 因此, 对于再次计算出index 相同的 键值对来说,它们的顺序会变成了原来的倒序。 JDK 8 中:数组+链表,当链表长度超过8将转为 红黑树,红黑树元素小于 6 将转为链表 构造方法: 只进行初始化 loadFactor、 threshold 操作,不会开辟数组的空间。 几种构造器的执行结果: 初始化操作,将在第一次执行put()时,调用 putVal() 时完成: 开辟数组空间的方法,也是扩容的方法: final Node<K,V>[]

JDK(八)JDK1.7&1.8源码对比分析【集合】HashMap

99封情书 提交于 2021-02-04 06:49:45
前言 在 JDK1.8源码分析【集合】HashMap 文章中,我们分析了HashMap在JDK1.8中新增的特性(引进了红黑树数据结构),但是为什么要进行这个优化呢?这篇文章我们通过对比JDK1.7和1.8来分析优化的原因。 众所周知,HashMap底层是基于 数组 + 链表 的方式实现的,不过在JDK1.7和1.8中具体实现稍有不同。 目录 一、对比分析 1. 1.7版本 2. 1.8版本 总结 一、对比分析 1. 1.7版本 1.7 中的数据结构图: 先来看看1.7中几个比较核心的成员变量: /** * The default initial capacity - MUST be a power of two. * 初始桶大小,因为底层是数组,所以这是数组的大小 */ static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 /** * The maximum capacity, used if a higher value is implicitly specified * by either of the constructors with arguments. * MUST be a power of two <= 1<<30. * 桶最大值 */ static final int MAXIMUM

Java并发包异步执行器CompletableFuture

て烟熏妆下的殇ゞ 提交于 2021-02-04 06:32:38
前言 CompletableFuture是对Future的一种强有力的扩展,Future只能通过轮询isDone()方法或者调用get()阻塞等待获取一个异步任务的结果,才能继续执行下一步,当我们执行的异步任务很多,而且相互之前还要依赖结果的时候,可能会创建很多这样的Future,并通过get或者轮询等待执行结果返回之后继续执行,这样的代码显得很不方便而且也不高效。 通过前面的CompletionStage接口给我们提供了一系列将多个阶段(甚至是异步的)的结果相互关联执行的方法,如果把它和Future结合起来,那么可将这种便利与高效编程方式用于异步任务的执行。CompletableFuture就是这样的一个类,同时继承了CompletionStage和Future,可以帮助我们简化异步编程的复杂性,并且提供了函数式编程的能力,可以通过lambda表达式的风格处理各个执行阶段的结果。 实现 CompletableFuture通过以下策略实现了接口CompletionStage: 依赖的非异步阶段提供的操作可以由完成当前CompletableFuture的线程执行,也可以由完成方法的任何其他调用者执行。 所有没有显式指定Executor参数的异步方法都使用ForkJoinPool.commonPool执行(除非它不支持至少两个并行级别,否则将创建一个新线程来运行每个任务).为了简化监视

#leetcode刷题之路21-合并两个有序链表

喜欢而已 提交于 2021-02-04 04:25:00
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 思路:始终让l1是头节点小的那一个,然后拿l2的节点值依次与l1比较并插入l1中。最后返回l1。 #include <iostream> using namespace std; struct ListNode { int val; ListNode * next; ListNode( int x) : val(x), next(NULL) {} }; ListNode * createlist( int n) // 有头节点的 { ListNode *head = (ListNode*) malloc ( sizeof (ListNode)); ListNode *pre = head; for ( int i = 0 ; i < n; i++ ) { ListNode *p = (ListNode*) malloc ( sizeof (ListNode)); cin >> p-> val; pre ->next = p; pre = p; } pre ->next = nullptr; return head; } ListNode * mergeTwoLists(ListNode* l1,