草庐IT

HashMap扩容resize流程

全部标签

Oauth2.0四种授权模式适用场景和授权流程介绍以及个人的一些思考

Oauth协议为用户资源的授权提供了一个安全的、开放而又简易的标准,先前曾经了解过在spring-security-oauth2中Oauth四种模式的实现,也通过Shiro实现了Oauth的授权流程。目前spring-security-oauth2已经被逐步废弃,Spring也提供了新的框架spring-authorization-server,整个框架基于Oauth2.1开发。目前重新整理项目代码,借此机会详细梳理一遍Oauth2.0授权模式的适用场景和授权流程,后续用于和2.1对比参照。一、四种授权模式1.1客户端凭证模式该模式针对客户端而言,对用户是透明的,不需要用户参与,非用户层面授权

Unity 基于Jenkins自动化打包流程

什么是Jenkins?        Jenkins是一款开源CI&CD软件,用于自动化各种任务,包括构建、测试和部署软件。Jenkins支持各种运行方式,可通过系统包、Docker或者通过一个独立的Java程序。Jenkins的下载与安卓直接搜索jenkins进入官网下在LTS(稳定版本)下载地址:https://www.jenkins.io/download/下载完成打开执行文件,点击下一步,修改安装目录, 下载JavaJDK,选中目录然后一直点击next完成安装安装完成后在网页打开 http://localhost:8080 端口号是安装时所选的端口号 按提示找到密码输入,然后直接安装推

Fairseq 机器翻译全流程 (NMT, WMT, translation)

摘要fairseq是个常用的机器翻译项目。它的优化很好,但代码晦涩难懂,限制了我们的使用。准备训练、开发、测试数据,是训练的第一步。但fairseq关于翻译数据的准备流程散布在零星的bash脚本中。本文旨在梳理如下流程:1)准备WMT23的数据,2)训练模型,3)用sacrebleu评测模型。训练数据我们使用mtdata这个库来准备我们需要的数据。这个库是WMT官方钦定的。首先下载数据:pipinstallmtdata==0.4.0wgethttps://www.statmt.org/wmt23/mtdata/mtdata.recipes.wmt23-constrained.ymlforrii

Python 代码一键转流程图---python=>flowchart-dsl=>流程图

简介:这个项目是基于大名鼎鼎的flowchart.js。下面贴几张运行图片: 如果直接输入dsl代码,再进行转化就可以很好的画出流程图   flowchart.js如果你使用Typora,可能知道在Typora中用 flow 可以用一种简单的文本语言来写流程图,根据 Typora的文档,这个功能来自开源的 flowchart.js。 我的方案就是把Python代码转化成这种flowchart语言,然后你就可以借助 flowchart.js.org、Typora、 francoislaberge/diagrams 等等工具来生成流程图了。st=>start:Start:>http://www.g

java HashMap源码详细讲解

文章目录javaHashMap源码详细讲解HashMap源码1put方法流程2扩容3get方法javaHashMap源码详细讲解JavaHashMap是一种基于哈希表的Map接口的实现,它可以存储键值对的数据结构。HashMap的特点有:允许使用null值和null键不保证元素的顺序,也不保证顺序随时间保持不变提供了常数时间的基本操作(get和put)有两个影响性能的参数:初始容量和负载因子当元素数量超过负载因子和当前容量的乘积时,会自动扩容并重新分配元素支持多种遍历方式,如keySet,values,entrySet等不是线程安全的,需要使用Collections.synchronizedM

MarkDown基础及表格、KaTeX公式、矩阵、流程图、UML图、甘特图语法

概述最多可设置6级标题技巧列表有序列表MD语法:1.你好2.我也好呈现效果:你好我也好无序列表MD语法:-a-b*aa*bb+aaa+bbb效果:abaabbaaabbb结论,支持三种方式:-、*、+TODO列表MD语法:-[x]后端接口开发-[]与前端联调呈现效果:后端接口开发与前端联调加粗斜体与删除线MD语法:*斜体*,_斜体1_,**加粗**,__加粗1__,***粗斜体***,**_粗斜体1_**,~~删除线~~效果:斜体,斜体1,加粗,加粗1,粗斜体,粗斜体1,删除线结论:一个*或_表示斜体,两个*或_表示加粗,三个*或_表示加粗斜体。分割线单独一行里输入3个或以上的短横线-、星号*

Android 10.0 SystemUI启动流程

1、手机开机后,Android系统首先会创建一个Zygote(核心进程)。2、由Zygote启动SystemServer。3、SystemServer会启动系统运行所需的众多核心服务和普通服务、以及一些应用及数据。例如:SystemUI启动就是从SystemServer里启动的。4、进入锁屏界面,开机完成。SystemServer中有一个main()方法为系统服务的入口;frameworks/base/services/java/com/android/server/SystemServer.java/***Themainentrypointfromzygote.*/publicstaticv

ubuntu 系统安装docker——使用docker打包python项目,整个流程介绍

目录1安装docker和配置镜像源 2下载基础镜像 3通过镜像创建容器4制作项目所需的容器5容器制作好后打包为镜像6镜像备份为.tar文件7从其他服务器上恢复镜像8docker的其他常用指令首先科普一下镜像、容器和实例;镜像:相当于安装包;容器:相当于系统,比如windows、mac、Linux系统;(容器也由镜像得来)容器可以被创建、启动、停止、删除、暂停等。实例:就是在容器上进行自己的个性化;1安装docker和配置镜像源(1)官网教程: InstallDockerDesktoponLinux(2)中文教程:Ubuntu-Docker—从入门到实践 本人是按照中文教程安装的docker;(

HashMap和Hashtable的区别

相同点:HashMap和Hashtable都是java.util包下的类HashMap和Hashtable都实现了Map接口,存储方式都是key-value形式HashMap和Hashtable同时也都实现了Serializable和Cloneable接口HashMap和Hashtable的负载因子都是0.75负载因子(loadFactor):当我们第一次创建HashMap的时候,就会指定其容量(如果未明确指定,默认是16),随着我们不断的向HashMap中put元素的时候,就有可能会超过其容量,那么就需要有一个扩容机制。所谓扩容,就是扩大HashMap的容量,在向HashMap中添加元素过程