学习Gson序列化源码简单记录
简单按照源码实现下「 List to JsonStr」。直接实现也很简单,不过为了锻炼下阅读源码的能力,还是练习跟踪下源码,找出大体框架,不沉迷细节,把握整体。 Gson的使用环境约定这里使用的 Java 环境,使用 Maven 管理依赖 Oracle JDK8 Gson2.8.6 12345<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version></dependency> 使用123456789101112131415161718192021222324252627282930313233import com.google.gson.Gson;import java.util.ArrayList;/** * @author GreenHatHG * @since 2020-05-12...
自用书签(移至notion更新!)
UpdateTime: 2020/03/12 DockerDocker —— 从入门到实践 · GitBook (Legacy) 创建尽可能小的 Docker 容器 - yexiaoxiaobai - SegmentFault 思否 查看 docker 容器使用的资源 - sparkdev - 博客园 使用 docker 对容器资源进行限制 | Cizixs Write Here [求助]docker build 速度非常慢 - V2EX Hexohexo的next主题个性化教程:打造炫酷网站 | Moorez 手把手教你使用Hexo + Github Pages搭建个人独立博客 | 令狐葱@前端笔记 HEXO+NEXT主题个性化配置 | SORA Hexo博客NexT主题从v5.x.x更新到v6.x.x的记录及总结 | 曹雪松de博客|CoderBoy’s Blog 如何在 hexo 中支持 Mathjax? - 简书 常用数学符号的 LaTeX 表示方法 超详细Hexo+Github博客搭建小白教程 | 韦阳的博客 MathJax使用LaTeX语法编写数学公式教程 -...
自用工具(移至notion更新!)
UpdateTime: 2020/03/12 英语Check Spelling, Style, and Grammar with After the Deadline 英语句子成分分析 在线英语句子结构分析器 语法分析软件 句解霸 Grammar Check Online - It’s a Free tool by NOUNPLUS 资源timmy3131/design-resource: A list of design resources. 分享|440+ 个免费的编程 & 计算机科学的在线课程 金老师的计算机技术自学网站 猴头客 | 专注优质视频教程、网络资源的休闲小站 Windsys Project WINOS | 前沿的精简系统下载 PDF下载计算机计算机书籍控 计算机电子书 免费的计算机编程类中文书籍 免费IT计算机电子书下载网站 IT熊猫-计算机书籍下载 综合PDF Drive - Search and download PDF files for free. Jiumo Search 鸠摩搜索 - 文档搜索引擎 书享家-电子书下载导航 Library...
通俗理解数据库三大范式
1NF 2NF...
水SpringBoot与SpringCloud
项目有感 微服务微服务的具体概念或者优缺点可以看这个: 微服务-解决复杂问题 | 千锋教育-李卫民 微服务架构,更好的进行分布式系统开发,拆分单体应用,将一个应用拆分成多个服务,每一个服务都是一个可以独立运行的项目。 微服务分布式开发会遇到这四个问题: 这么多服务,客户端如何访问 这么多服务,服务之间如何通信 这么多服务,如何治理 服务挂了,怎么办? 解决方案: Spring Cloud,是一套生态,是为了解决微服务架构遇到的问题,想要使用Spring Cloud必须基于Spring Boot 后来去了解了下,现在Spring Cloud微服务方案有三套: Spring Cloud Netflix 目前市场上主流的 第一套微服务架构解决方案:Spring Boot + Spring Cloud Netflix Spring Cloud...
2019上海网络赛B题
上海站B题Light bulbs 上海站B题Light bulbs 题解签到题 排序 前缀和 差分 注意此题卡时间又卡空间,单纯普通类型一维数组长度不能超过1e6 前缀和定义前缀和是一种重要的预处理,能大大降低查询的时间复杂度。我们可以简单理解为“数列的前n项的和” 通式给定一个数组A[1..n],前缀和数组PrefixSum[1..n]定义为:PrefixSum[i] = A[0]+A[1]+…+A[i-1];举例A[5,6,7,8] —> PrefixSum[5,11,18,26] PrefixSum[0] =A[0] ;PrefixSum[1] =A[0] + A[1] ;PrefixSum[2] =A[0] + A[1] + A[2] ;PrefixSum[3] =A[0] + A[1] + A[2] + A[3] ; 差分定义差分就是将数列中的每一项分别与前一项数做差,例如:一个序列1 2 5 4 7 3,差分后得到1 1 3 -1 3 -4...
Java设计模式-观察者模式
《Head First Design Patterns》—The Observer Pattern 引言报纸订阅可以从报纸或杂志的订阅方式去了解观察者模式是什么 报纸或杂志的订阅方式: 从上面的订阅方式可以这样认为观察者模式: Publishers + Subscribers = Observer Pattern报纸出版商 + 订阅者 = 观察者模式 we call the publisher the SUBJECT and the subscribers the OBSERVERS.报纸出版商称为SUBJECT(目标),订阅者称为OBSERVERS(观察者) 继续解释开始时 状态改变时 观察者模式通过上面例子已经生动形象得展示了什么是观察者模式 定义The Observer Pattern defines a one-to-many dependency between objects so that when one object changes state, all of its dependents are notified and...
2019徐州网络赛补题
B-so easy B-so easy参考:2019徐州网络赛 B so easy - binarycopycode - CSDN博客 题目 2000ms 262144K 大意有n个点,分别标号为1-n,两种操作: 1 X,表示去掉第X个点 2 X,表示查询[x,n]内第一个存在的点。 题解模拟并查集操作即可(当时并没有想到系列),具体看代码 注意,因为数据量大,所以得用unordered_map代替数组 (unorderd_map的存取查询操作都近似于O(1),map是带log的,而且1e6太大,map会T) 1234567891011121314151617181920212223242526272829303132333435/** * 2019-09-08 21:36 * 1089ms * 20096kB * c++11 */#include <iostream>#include <unordered_map>using namespace...
SpringBoot+Shiro+Jwt填坑-3
整合SpringBoot 省去建表,数据库读取代码。 程序逻辑在SpringBoot中使用JWT来做接口权限认证,安全框架依旧使用Shiro 我们POST用户名与密码到/login进行登入,如果成功返回一个加密token,失败的话直接返回401错误。 之后用户访问每一个需要权限的网址请求必须在header中添加Authorization字段,例如Authorization: token,token为密钥。 后台会进行token的校验,如果不通过直接返回401。 Token加密说明 携带了 username 信息在 token 中。 设定了过期时间。 使用秘钥对 token 进行加密。 Token校验流程服务端接收到token 之后,会逆向构造过程,decode 出JWT 的三个部分,这一步可以得到sign的算法及 payload,结合服务端配置的 secretKey,可以再次进行 Signature 的生成得到新的 Signature,与原有的 Signature 比对以验证 token...
SpringBoot+Shiro+Jwt填坑-1
shiro介绍 RBAC在了解Shiro之前,我们需要认知用户权限模型。 基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。 为实现一个较为灵活的用户权限数据模型,通常把用户信息单独用一个实体表示,用户权限信息用两个实体表示。 用户信息用LoginAccount表示,最简单的用户信息可能只包含用户名loginName及密码password两个属性。实际应用中可能会包含用户是否被禁用,用户信息是否过期等信息。 用户权限信息用Role与Permission表示,Role与Permission之间构成多对多关系。Permission可以理解为对一个资源的操作,Role可以简单理解为Permission的集合。 用户信息与Role之间构成多对多关系。表示同一个用户可以拥有多个Role,一个Role可以被多个用户所拥有。 (图源:RBAC模型:基于用户-角色-权限控制的一些思考 |...