自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 收藏
  • 关注

转载 SpringMVC请求参数解析

客户端请求在handlerMapping中找到对应handler后,将会继续执行DispatchServlet的doPatch()方法。首先是找到handler对应的适配器。HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());进入到getHandlerAdapter(mappedHandler.getHandler())方法中protected HandlerAdapter getHandlerAdapter(Objec

2021-04-30 09:28:49 384

转载 Java 基础 一文搞懂泛型

什么是泛型?泛型的英文是Generics,是指在定义方法、接口或类的时候,不预先指定具体的类型,而使用的时候再指定一个类型的一个特性。写过Java代码的同学应该知道,我们在定义方法、接口或类的时候,都要指定一个具体的类型。比如:public class test {private String name;public void setName(String name) { this.name = name;}public String getName() { return n

2021-04-30 09:28:05 256

转载 EhCache缓存使用教程

使用方法1、在pom.xml里添加依赖: <!--引入Mybatis的ehCache的适配--> <dependency> <groupId>org.mybatis.caches</groupId> <artifactId>mybatis-ehcache</artifactId> <version>1.0.3</version> </

2021-04-29 11:45:31 409

转载 定时线程分配统计事件:jdk.ThreadAllocationStatistics

使用代码测试这个事件package com.github.hashjang.jfr.test;import com.sun.management.ThreadMXBean;import jdk.jfr.Recording;import jdk.jfr.consumer.RecordedEvent;import jdk.jfr.consumer.RecordedThread;import jdk.jfr.consumer.RecordingFile;import sun.hotspot.Whit

2021-04-29 11:36:56 155

转载 前端实用程序包utils - 开发工作流(一)

注意: 因为笔者目前前端接触的比较多,所以这个库的定义就是给前端环境用的,不是很推荐用在nodejs开发上使用,因为其后面涉及到了一些DOM之类的操作是对nodjs没什么卵用的,所以采用ES Module的语法来书写,若想在node环境使用,请配合babel,webpack等工具使用,请确保电脑上安装了nodejs环境。举个例子,比如我要创建一个项目叫utils,可以怎么做?(考虑到0基础的同学,我会讲的比较细,老司机请直接跳过这章节)如果你只是想玩玩,不想一步一步去配置,那么你只需要执行mkdir u

2021-04-29 11:29:26 739

转载 java面试一日一题:mysql中的自增主键

从学习mysql开始,我们就知道在建表时经常建的是自增主键,并且在mysql的优化中经常看到的一句就是,最好有自增主键,那么自增主键是做什么用的。自增主键的用法,CREATE TABLE t1 (c1 INT(11) NOT NULL AUTO_INCREMENT,c2 VARCHAR(10) DEFAULT NULL,PRIMARY KEY (c1)) ENGINE=InnoDB;上面的建表语句中c1就是一个自增主键。自增主键的好处是在进行数据插入时,会按照主键的顺序自增插入,且在innod

2021-04-29 11:28:31 142

转载 Leetcode组合总和系列——回溯(剪枝优化)+动态规划 组合总和 I

这样看整棵解空间树就小多了,下面直接上代码:Java版本的回溯解法代码class Solution {List<List<Integer>> result = new ArrayList<>();public List<List<Integer>> combinationSum(int[] candidates, int target) { Arrays.sort(candidates); dfs(candidates,t

2021-04-29 11:27:25 245

转载 JS 中一些高效的魔法运算符

. 可选链运算符之前当我们想要使用某个结构比较深的属性,同时又无法确定所有的父级一定存在时,我们需要进行一连串的判断,例如一个数据结构:const student = {score: {math: 98,},};我们想要获取最内层的 math 属性的值时:if (student && student.score) {console.log(student.score.math);}1.1 获取深层次的属性不过当我们使用可选链运算符后,判断就简单很多了,可选链运算符会在

2021-04-29 11:21:15 149

转载 只出现一次的数字--力扣

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4我的解法:思路:首先对nums数组进行排序,然后判断第 i 个元素和该元素的前后两个元素是否相等,如果跟前后两个元素都不相等,则答案就是该元素。这样解决问题有一个弊端就是,需要考虑数组越界问题。出现的问题:第一个元素没有之前的

2021-04-28 09:19:06 50

转载 Java基础--循环结构

循环结构while 循环while是最基本得循环,它的结构为:while(布尔表达式){//循环内容}只要布尔表达式为true,循环就会一直执行下去public class WhileDemo01 {public static void main(String[] args) {//输出0~100int i = 0;while (i<100){i++;System.out.println(i);}}}我们大多是情况是会让循环停止下来得,我们需要一个表达失效得方式来结束

2021-04-28 09:18:26 190

转载 Java 并发编程 Executor 框架

主线程首先要创建实现 Runnable 或 Callable 接口的任务对象,可以使用工具类 Executors 把一个 Runnable 对象封装为一个 Callable 对象// 返回结果为 nullExecutors.callable(Runnable task);// 返回结果为 resultExecutors.callable(Runnable task, T result);然后把 Runnable 对象直接交给 ExecutorService 执行ExecutorService.e

2021-04-28 09:17:27 46

转载 Java基础语法

public class Hello {public static void main(String[] args) {//单行注释 //开头//输出一个Hello World!System.out.println(“Hello World!”);/多行注释我是多行注释//* 文档注释* @Description Hello //描述* @Author 作者**/}}标识符关键字Java中所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。abstract

2021-04-27 10:51:37 177

转载 【Django】有关多用户管理的

假设有用户类型A和用户类型B两中用户。class User(AbstractUser):is_type1 = models.BooleanField(default=False)is_type2 = models.BooleanField(default=False)# 这里添加三类用户的除Django-admin框架的User类属性外的额外属性# 比如姓名name = models.CharField(max_length=100)通过上面的代码,可以清楚的看到,User类中设置一个布尔标

2021-04-27 10:39:30 332

转载 .NET 开源配置组件 AgileConfig 初体验

在客户端程序使用这里使用了asp net core web项目示例,首先需要安装客户端组件,执行一下命令或者通过Nuget安装。Install-Package AgileConfig.Client然后修改appsetting.json 文件{“AgileConfig”: {“appId”: “LogService”,“secret”: “123456”,“nodes”: “http://localhost:5000,http://localhost:5001”//多个节点使用逗号分隔}}

2021-04-27 10:27:42 164

转载 go的令牌桶实现库 go-rate

这里有两个参数:第一个参数是 r Limit。代表每秒可以向 Token 桶中产生多少 token。Limit 实际上是 float64 的别名。第二个参数是 b int。b 代表 Token 桶的容量大小。上述的限流器的含义是:拥有一个容量为1的令牌桶,以每钞10个的速度向桶中放令牌。除了直接指定每秒产生的 Token 个数外,还可以用 Every 方法来指定向 Token 桶中放置 Token 的间隔,例如:limiter := NewLimiter(Every(100 * time.Mill

2021-04-27 10:23:05 259

转载 Shell:如何遍历包含空格的文本

处理包含空格或特殊字符的文件是每个使用Linux的人都应必须掌握的。本文我们将讨论如何在带有空格的文件上使用for循环。测试文本如下:This line has spacesthesedonot现在,我们使用for循环来迭代这个文本。当我们执行for循环时,shell会看到第一行的空格,并假设每一行都是不同的迭代。[root@test ~]# for i in $(cat test);do echo $i;doneThislinehasspacesthesedonotIFS定义

2021-04-27 10:11:30 1124

转载 electron踩坑系列之一

坑前准备项目模板开发,当然就需要搭建项目,搭建项目github上有不少模板。你可以去 awesome-electron 的 boilerplates部分看到比较流行的模板。比如:electron-react-boilerplateelectron-vueelectron-quick-startelectron-boilerplate用模板相当于上高速,嗖嗖的飞起,不错的选择。这些模板基本都是把静态页面和electron部分的开发,集成到一个项目里面,有利有弊。我们项目采用的是分离式的:

2021-04-27 10:09:08 1590

转载 String 的不可变真的是因为 final 吗?

String 为啥不可变?因为 String 中的 char 数组被 final 修饰。这套回答相信各位已经背烂了,But 这并不正确!面试官:讲讲 String、StringBuilder、StringBuffer 的区别我:String 不可变,而 StringBuilder 和 StringBuffer 可变,叭叭叭 …面试官:String 为什么不可变?我:String 被 final 修饰,这说明 String 不可继承;并且String 中真正存储字符的地方是 char 数组,这个数组被

2021-04-27 09:44:07 161

转载 CSS 还能这样玩?奇思妙想渐变的艺术

数量级对背景图形的影响本文的主角主要是:多重径向渐变(repeating-radial-gradient)多重角向渐变(repeating-conic-gradient)什么是数量级对背景图形呢?我们来看这样一种有意思的现象:我们使用 repeating-conic-gradient 多重角向渐变实现一个图形,代码非常的简单,示意如下:div { width: 100vw; height: 100vh; background: repeating-conic-gradi

2021-04-27 09:39:10 242

转载 0609-搭建ResNet网络

利用 torch 实现 ResNet34 网络import torch as tfrom torch import nnfrom torch.nn import functional as Fclass ResidualBlock(nn.Module):“”"实现子 module:Residual Block“”"def __init__(self, inchannel, outchannel, stride=1, shortcut=None): super(ResidualBloc

2021-04-27 09:35:22 119

转载 JavaScript事件循环机制

解析图文:同步和异步任务分别进入不同的执行"场所",同步的进入主线程,异步的进入Event Table(任务队列)并注册函数。当指定的事情完成时,Event Table(任务队列)会将这个函数移入Event Queue(事件队列)。主线程内的任务执行完毕为空,会去Event Queue(事件队列)读取对应的函数,进入主线程执行。上述过程会不断重复循环,也就是常说的Event Loop(事件循环)。举个例子:console.log(‘script start’);setTimeout(funct

2021-04-27 09:34:11 60

转载 如何在 ASP.Net Core 中使用 Lamar

创建 IDBManager 和 DBManager首先创建一个 IDBManager 接口类,用于后续做依赖注入用,代码定义如下:public interface IDBManager{ void Initialize(); bool Save<T>(T obj);}接下来定义 DBManager 类并实现接口 IDBManager ,代码定义如下:public class DBManager: IDBManager{ public void Initia

2021-04-26 11:13:37 98

转载 Java 8 新特性

语法相关新特性默认接口方法从 Java 8 开始,接口支持定义默认实现方法。所谓的默认方法,就是指接口中定义的抽象方法可以由接口本身提供默认实现,而不一定要实现类去实现这个抽象方法。比如我定义了一个 Programmer 接口,在 Java 8 之前,我们必须在实现类中实现所有的抽象方法,比如下面的 JavaProgrammer 类。package com.csx.feature.defaultm;public interface Programmer {/*** 编程操作*/void c

2021-04-26 11:12:31 89

转载 Julia 变量

Julia 变量Julia语言中,变量是与某个值关联的名字。你可以用它来保存一个值x = 10x + 1x = “hello world”Julia提供了非常灵活的变量命名的策略。变量名是大小写敏感的,且不包含语义,意思就是说,Julia会根据变量的名字区别对待julia> x = 1.0 1.0julia> y = -3 -3julia> Z = “My string” “My string”julia> customary_phrase = “Hello wor

2021-04-26 11:07:28 366

转载 如何在 ASP.NET Core 中写出更干净的 Cont

当在写 Controller 的时候,你应该遵守 单一职责,也就意味着你的 Controller 只需做一件事情,换句话说,只有一个因素或者唯一一个因素能让你修改 Controller 中的代码,如果有点懵的话,考虑下面的代码片段,它将 数据访问代码 糅进了 Controller 。public class AuthorController : Controller{private AuthorContext dataContext = new AuthorContext();public Acti

2021-04-26 11:06:45 119

转载 [算法] 树链剖分解析

C++代码void dfs1(int now, int father) {fa[now] = father;//初始化父节点sz[now] = 1;//子树大小包括自己dep[now] = dep[father] + 1;//初始化深度int SIZ = v[now].size();int maxn = 0;//记录最大的子树大小for(int i = 0; i < SIZ; i++) {int next = v[now][i];if(next == father)continue

2021-04-25 10:46:12 69

转载 ElasticSearch(ES)使用Nested结构存储KV及聚合查询

为何要使用Nested结构存储KV(键值对)?ElasticSearch对于field的数量有限制,默认情况下field的数量如果超过1000个,写入时再创建新的fields就会报错:java.lang.IllegalArgumentException: Limit of total fields [1000] in index [(index_name)] has been exceededat org.elasticsearch.index.mapper.MapperService.checkTo

2021-04-25 10:45:15 1043

转载 Java8的新特性--Lambda表达式

为什么使用Lambda表达式知道了Lambda表达式是什么之后,我们也没啥感觉,下面我们来体验一下Lambda表达式到底有啥好的。我们回顾下我们原来学过的的匿名内部类//原来的匿名内部类@Testpublic void test01(){ //一个Comparator接口比较两个Integer的大小 Comparator<Integer> com = new Comparator<Integer>() { @Override

2021-04-25 10:44:17 125

转载 docker搭建redis集群和Sentinel,实现故障转移

1.基础安装注:基础安装是根据已有博客搭建的,有很多问题,不是最终步骤。最终步骤在第三部分总结给出,当然也可能有问题,毕竟各个环境可能不同。(1)在虚拟机中安装docker-compose默认已经安装过了docker。1)拉取安装包curl -L “https://get.daocloud.io/docker/compose/releases/download/1.27.3/docker-compose-(uname−s)−(uname -s)-(uname−s)−(uname -m)” -o /

2021-04-25 10:42:02 338

转载 dubbo实战之三:使用Zookeeper注册中心

接下来逐个创建上述内容;创建名为springbootmulticastprovider的子工程,pom.xml内容如下,要重点关注的是新增依赖dubbo-spring-boot-starter,这就是dubbo在SpringBoot环境的starter依赖,还有Zookeeper的依赖dubbo-dependencies-zookeeper:<?xml version="1.0" encoding="UTF-8"?>dubbopracticecom.bolingcavalry1.0

2021-04-25 10:39:57 505

转载 Springboot 轻量替代框架 Solon 1.3.10 发布

所谓更自由:(代码操控自由)// 除了注解模式之外,还可以按需手动////手动获取配置(Props 为 Properties 增强版)Props db = Solon.cfg().getProp(“db”);//手动获取容器里的BeanUserService userService = Aop.get(UserService.class);//手动监听http post请求Solon.global().post("/user/update", x-> userService.updat

2021-04-25 10:34:13 229

转载 确保某个BeanDefinitionRegistryPostProcessor Bean被最后执行的几种实现方式

第一种实现方案第一种:通过嵌套注册自定义的BeanDefinitionRegistryPostProcessor 类BEAN的方式,这种方式实现思路是:PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors会先执行已获得BeanDefinitionRegistryPostProcessor BEAN集合,执行完这些BEAN集合后(这里我称为第一轮或第一层),会再次尝试获取第二轮、第三轮一直到获取的BeanDefinitionReg

2021-04-25 10:33:07 266

转载 Android - Handler原理

Handler的主要作用是收发消息和切线程功能一:收发消息简单流程介绍希望你看完这篇文章后也可以把流程自己讲出来,并且每个环节还可以讲出很多细节他的消息机制离不开Looper、MessageQueue其中 Looper 每个线程只能持有一个,主要负责循环查看 MessageQueue 里面是否有 msg 需要处理,并将需要处理的消息取出,交给 HandlerMessageQueue 是负责存放消息的,数据结构是一个单链表,这样就可以方便地插入或删除 msg具体流程一般是:Handler 发送

2021-04-25 10:27:28 169

转载 Rust宏:教程与示例(二)

过程宏(Procedural macros)[1]是一种更为高级的宏。过程宏能够扩展 Rust 的现有语法。它接收任意输入并产生有效的 Rust 代码。过程宏接收一个TokenStream作为参数并返回另一个TokenStream。过程宏对输入的TokenStream进行操作并产生一个输出。有三种类型的过程宏:属性式宏(Attribute-like macros)派生宏(Derive macros)函数式宏(Function-like macros)接下来我们将会对它们进行详细讨论。属性式宏属

2021-04-25 10:18:47 1433

转载 C语言头文件到底是什么?

一,.h头文件会参与编译吗?不妨来做个实验这个是head.h文件的内容#include <stdio.h>int main() {printf(“Hello World!”);return 0;}这个是ori.c文件的内容#include “head.h”编译执行gcc ori.c -o ori发现输出的是.\ori.exehello world!.c文件中并没有引入任何其他的文件,除了我们自己定义的head.h头文件,而在这个头文件中,我们引入了stdio.h头

2021-04-25 10:01:43 2279 1

转载 c++ 11 是如何简化你的数据库访问接口的

插入单条数据复制代码1 uint64_t test_insert_single(qtl::sqlite::database &db)2 {3 time_t now = time(0);4 int tmp = rand() % 1000;5 uint64_t id = db.insert_direct(“insert into popbox_msg(msgid, msgtype, appname, uid, status, count, msgbody, stamp

2021-04-23 10:06:42 226

转载 ASP.NET Core扩展库之日志

使用日志库是随着扩展库一起启用的,最简单的情况是启用扩展库即可,默认配置将开启文件日志目标,日志存入应用下Logs目录,以日期为文件夹,以日志名称为文件名称。开启扩展库有两种方式,可以在IHostBuilder上通过UseExtensions方法,或者在Startup启动类ConfigureServices方法中通过IServiceCollection的AddExtensions方法。复制代码// 通过IHostBuilder上的UseExtensions方法// Program.cs .NET

2021-04-23 10:02:56 275

转载 使用css3和javascript开发web拾色器实例

web拾色器三个部分的html元素如下:复制代码 R: G: B: 复制代码加上一些css样式实现图片上的布局效果:复制代码.color_container {width:610px;background:#333;padding:10px;font-size:0;margin:30px auto;}.color

2021-04-23 09:57:57 415

转载 如何在 C# 中使用 ArrayPool 和 MemoryPoo

使用 ArrayPool可以通过下面三种方式来使用 ArrayPool 。通过 ArrayPool.Shared 属性来获取 ArrayPool 实例。通过 ArrayPool.Create() 来生成 ArrayPool 实例。通过继承 ArrayPool 来生成一个自定义子类。下面的代码展示了如何从 ArrayPool 中获取一个 size >= 10 的 array 数组。var shared = ArrayPool.Shared;var rentedArray = shared.

2021-04-23 09:57:03 621

转载 从sql语句的角度解刨SqlServer插入语句的并发问题

操作一:重现问题出现原因然后同时(有点间隔也没关系,但隔时间要小)在查询分析器的两个窗口中执行下如下语句:复制代码declare @id intset @id = ( select max(id) from aTable )while @id < 40000beginset @id = @id + 1insert into aTable ( id ) select @idset @id = ( select max(id) from aTable )end复制代码这样的目的在于

2021-04-23 09:55:48 397

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除