自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(573)
  • 收藏
  • 关注

转载 spring boot读取Excel

首先引入相关依赖 <!--解析office相关文件--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> &l...

2019-10-06 15:45:00 268

转载 JAVA泛型知识--> <? extends T>和<? super T>

<? extends T> 和 <? super T> 是Java泛型中的“通配符(Wildcards)” 和 “边界(Bounds)”的概念<? extends T> 是指 “上界通配符(Upper Bounds Wildcards)”<? super T> 是指 “下界通配符(Lower Bounds Wildcard...

2019-10-06 08:29:00 225

转载 D3.js的v5版本入门教程(第十三章)—— 饼状图

D3.js的v5版本入门教程(第十三章) 这一章我们来绘制一个简单的饼状图,我们只绘制构成饼状图基本的元素——扇形、文字,从这一章开始,内容可能有点难理解,因为每一章都会引入比较多的难理解知识点,在这里作者本人也只是粗略的讲解每个新知识点的意思!如果不是很理解的话,需要读者自行查看官网API为了绘制一个饼状图,我们还是需要以下新的知识点d3.arc( {}...

2019-09-29 18:49:00 375

转载 D3.js的v5版本入门教程(第十二章)—— D3.js中各种精美的图形

D3.js的v5版本入门教程(第十二章) D3中提供了各种制作常见图形的函数,在d3的v3版本中叫布局,通过d3.layout.xxx,来新建,但是到了v5,新建一个d3中基本的图形的方式变了(我也并不知道是不是还叫布局,我觉得也可以这么叫,反正布局指的也是一个绘图函数) 下面是d3中一些常见的部分图形 bubble —— 泡泡图...

2019-09-29 18:46:00 271

转载 D3.js的v5版本入门教程(第十一章)——交互式操作

D3.js的v5版本入门教程(第十一章) 与图形进行交互操作是很重要的!所谓的交互操作也就是为图形元素添加监听事件,比如说当你鼠标放在某个图形元素上面的时候,就会显示相应的文字,而当鼠标移开后,文字就会消失,或者鼠标单击一下某图形元素就会使它动起来为了与图形元素进行交互操作,我们还是需要以下新的知识点on("eventName",functio...

2019-09-29 18:42:00 229

转载 D3.js的v5版本入门教程(第十章)

在这一章我们干点有趣的事——让我们上一章绘制的图表动起来,这样岂不是很有意思 为了让图表动起来,我们还是需要以下新的知识点.attr(xxx) .transition() .attr(xxx),transition()表示添加过渡,也就是从前一个属性过渡到后一个属性.duration(2000),表示过渡时间持续2秒.delay(500),表示延迟0.4秒后再进行过渡....

2019-09-29 18:39:00 135

转载 D3.js的v5版本入门教程(第九章)——完整的柱状图

D3.js的v5版本入门教程(第九章) 一个完整的柱状图应该包括的元素有——矩形、文字、坐标轴,现在,我们就来一一绘制它们,这章是前面几章的综合,这一章只有少量新的知识点,它们是d3.scaleBand():这也是一个坐标轴,可以根据输入的domain的长度,等分rangeRound域(类比range域)d3.range():这个比较复杂,建议去看百度(或者...

2019-09-29 18:30:00 231

转载 D3.js的v5版本入门教程(第八章)—— 坐标轴

D3.js的v5版本入门教程(第八章) D3中没有现成的坐标轴图形,需要我们自己用其他组件拼凑而成。D3中提供了坐标轴组件,使得我们在SVG中绘制一个坐标轴变得像添加一个普通元素那样简单 为了表绘制一个坐标轴,我们还是需要以下新的知识点call()函数 定义一个坐标轴 坐标轴是有朝向的,在这里我们以向下朝向、水平方向的坐标轴为例,其他朝向的...

2019-09-29 18:28:00 113

转载 D3.js的v5版本入门教程(第七章)—— 比例尺的使用

D3.js的v5版本入门教程(第七章) 比例尺在D3.js中是一个很重要的东西,我们可以这样理解d3.js中的比例尺——一种映射关系,从domain映射到range域(为什么会是domain和range呢?等一下你就会看到,因为我们在建立比例尺是常常会用到domain()和range()两个函数,当然不是绝对的,D3中有很多类型的比例尺) 下面介绍在本套教程中常用的两...

2019-09-29 18:21:00 117

转载 D3.js的v5版本入门教程(第五章)—— 选择、插入、删除元素

D3.js的v5版本入门教程(第五章) 1、选择元素 现在我们已经知道,d3.js中选择元素的函数有select()和selectAll(),下面来详细讲解一下 假设我们的<body>中有三个<p>,如下<p>dog</p><p>cat</p><p>pig&l...

2019-09-29 18:11:00 253

转载 D3.js的v5版本入门教程(第三章)—— 选择元素和绑定数据

D3.js的v5版本入门教程(第三章) 在D3.js中,选择元素和绑定元素是最基本的内容,也是很重要的内容,等你看完整个教程后你会发现,这些D3.js教程都是在选择元素和绑定元素的基础上展开后续工作的 1、选择元素 在D3.js中,选择元素的函数有两个d3.select()d3.selectAll() 这两个函数返回的就是选择集 ...

2019-09-29 18:01:00 102

转载 D3.js的v5版本入门教程(第四章)—— 理解Update、Enter、Exit

D3.js的v5版本入门教程(第四章)Update、Enter、Exit是D3.js中很重要的概念,下面来讲一下它们到底是什么?(当你看完后。你就会知道如果数据集个数和选择集个数不匹配的情况下使用data(),D3.js会怎么办) 在使用data()时,例如现在我们有一个数组[3,6,9,12,15],我们可以将数组每一项与一个<p>绑定,但是,现在就有...

2019-09-29 17:56:00 131

转载 一张图理解网络的几个专有名词:数据、段、包、帧、比特

今天工作的时候刚好有客户对我说 :“包”和“帧”有啥区别,你咋一会说“包”,一会说“帧”呢? 太不讲究了!这说的让我有点脸红,工作中我们通常会把“包”和“帧“混着说,两者在大部分场景中都代表着相同的意思。但是严格说起来两者是完全不同的,它们代表着不同的网络层次,作为一个专业的人,咱们还是要分开说的!它们之间的区别也是我们今天的分享的主题,同时也会分享一下与其相关的内容。我们来看看下面...

2019-09-28 09:08:00 986

转载 MySQL索引和SQL调优手册

MySQL索引MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引。MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的...

2019-09-27 12:13:00 73

转载 node省市区三级数据性能测评

闲来无事,测试下node和egg首先是数据库,大概长这样然后是代码'use strict';const Controller = require('egg').Controller;class HomeController extends Controller { async index() { const { ctx } ...

2019-09-27 08:21:00 70

转载 java生成HMACSHA256的方法

data要加密的数据,key密钥public static String HMACSHA256(String data, String key) throws Exception { Mac sha256_HMAC = Mac.getInstance("HmacSHA256"); SecretKeySpec secret_key = new...

2019-09-26 14:58:00 511

转载 Lomok @Data使用

看了廖师兄的Springboot视频发现很多很好玩的小工具,lombok就是其中一个。lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立getter和setter方法啊,构造函数啊之类的,lombok的作用就是为了省去我们手动创建这些代码的麻烦...

2019-09-25 18:24:00 99

转载 图解LinkedHashMap原理

1 前言LinkedHashMap继承于HashMap,如果对HashMap原理还不清楚的同学,请先看上一篇:图解HashMap原理2 LinkedHashMap使用与实现先来一张LinkedHashMap的结构图,不要虚,看完文章再来看这个图,就秒懂了,先混个面熟:LinkedHashMap结构.png2.1 应用场景HashMa...

2019-09-23 13:23:00 79

转载 TreeMap用法总结

TreeMap用法总结public class TreeMap<K,V>extends AbstractMap<K,V>implements NavigableMap<K,V>, Cloneable, SerializableTreeMap中的元素默认按照keys的自然排序排列。(对Integer来说,其自然排序就是数字的升序;...

2019-09-23 13:13:00 196

转载 HashTable和HashMap的区别详解

一、HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。 HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。 HashMap实现了Serializ...

2019-09-23 12:25:00 66

转载 spring boot validation参数校验

对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证。 Spring Boot自身对数据在服务端的校验有一个比较好的支持,它能将我们提交到服务端的数据按照我们事先的约定进行数据有效性验证。1 pom依赖<dependency> <groupId>org.spri...

2019-09-19 19:23:00 68

转载 小tips: 使用&#x3000;等空格实现最小成本中文对齐

一、重见天日第二春11年的时候,写了篇文章“web页面相关的一些常见可用字符介绍”,这篇文章里面藏了个好东西,就是使用一些空格实现个数不等的中文对齐或等宽。见下表:字符以及HTML实体描述以及说明&nbsp;这是我们使用最多的空格,也就是按下space键产生的空格。在HTML中,如果你用空格键产生此空格,空格是不会累加的(只算1个...

2019-09-18 18:45:00 175

转载 vuejs cli3 env配置文件实践指南

env文件配置四个环境名字分别VUE_APP_ENV=dev只支持:VUE_APP_ 开头,比如设置其它变量 VUE_APP_NAME=starkpackage.json 配置 方式 "scripts": { "start": "npm run dev", "serve": "vue-cli-service serve",...

2019-09-18 09:39:00 230

转载 Nginx的rewrite(地址重定向)剖析

1、rewrite语法:  指令语法:rewrite regex replacement[flag];  默认值:none  应用位置:server、location、if  rewrite是实现URL重定向的重要指令,他根据regex(正则表达式)来匹配内容跳转到replacement,结尾是flag标记  简单的小例子:1...

2019-09-16 18:52:00 74

转载 什么是TCP粘包?怎么解决这个问题

在socket网络编程中,都是端到端通信,由客户端端口+服务端端口+客户端IP+服务端IP+传输协议组成的五元组可以明确的标识一条连接。在TCP的socket编程中,发送端和接收端都有成对的socket。发送端为了将多个发往接收端的包,更加高效的的发给接收端,于是采用了优化算法(Nagle算法),将多次间隔较小、数据量较小的数据,合并成一个数据量大的数据块,然后进行封包。那么这样一来...

2019-09-10 21:27:00 88

转载 windows bat批处理语法简析

第一节先介绍windows批处理。这个起源于跟旁边同事学习在windows用命令行办公,渐渐地有些批处理功能就需要了,于是专门抽出了几天学习了一下。我认为文档最重要的功能是为了备忘,择取了很多文档的例子,现在很久了就没法详细的标明出处了,很是抱歉。为了我个人的使用,例子中很多不太必要的东西都被我简化了,有些很重要的东西就被我描述的过于详细。大家择优而看吧。简单一点,把批处理当初语言来看,...

2019-09-10 11:04:00 170

转载 BAT文件语法和技巧(bat文件的编写及使用)

比较有用的东西首先,批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环...

2019-09-10 10:15:00 112

转载 CSS Sticky 其实很简单

为什么要写这篇文章Sticky 也不是新知识点了,写这篇文章的原因是由于最近在实现效果的过程中,发现我对 Sticky 的理解有偏差,代码执行结果不如预期。决定写篇文章重新学习一次。什么是 StickySticky (MDN 翻译成粘性效果)是 CSS 属性 position 中的一个可选值。跟我们用得比较多的 static, fixed,relative,absol...

2019-09-09 18:56:00 184

转载 Java NIO?看这一篇就够了!

现在使用NIO的场景越来越多,很多网上的技术框架或多或少的使用NIO技术,譬如Tomcat,Jetty。学习和掌握NIO技术已经不是一个JAVA攻城狮的加分技能,而是一个必备技能。在前面2篇文章《什么是Zero-Copy?》和《NIO相关基础篇》中我们学习了NIO的相关理论知识,而在本篇中我们一起来学习一下Java NIO的实战知识。全文较长,建议先马后看(记得关注不迷路)。一、概述...

2019-09-06 12:26:00 52

转载 Java NIO - Channel

前言上文讲到Java NIO一些基本概念。在标准的IO中,都是基于字节流/字符流进行数据操作的,而在NIO中则是是基于Channel和Buffer进行操作,其中的Channel的虽然模拟了流的概念,实则大不相同。本文将详细阐述NIO中的通道Channel的概念和具体的用法。Channel和Stream的区别区别StreamChannel是否支持异步...

2019-09-04 15:09:00 77

转载 Java NIO之Selector(选择器)

历史回顾:Java NIO 概览Java NIO 之 Buffer(缓冲区)Java NIO 之 Channel(通道)其他高赞文章:面试中关于Redis的问题看这篇就够了一文轻松搞懂redis集群原理及搭建与使用超详细的Java面试题总结(三)之Java集合篇常见问题一 Selector(选择器)介绍Selector一般称 为选择器,当然你也可以...

2019-09-04 08:17:00 82

转载 BufferedReader和BufferedWriter简介

BufferedReader和BufferedWriter简介为了提高字符流读写的效率,引入了缓冲机制,进行字符批量的读写,提高了单个字符读写的效率。BufferedReader用于加快读取字符的速度,BufferedWriter用于加快写入的速度BufferedReader和BufferedWriter类各拥有8192个字符的缓冲区。当BufferedReader在读取文本文件...

2019-09-03 08:17:00 473

转载 HTTP 基础

由于 Controller 基本上是业务开发中唯一和 HTTP 协议打交道的地方,在继续往下了解之前,我们首先简单的看一下 HTTP 协议是怎样的。如果我们发起一个 HTTP 请求来访问前面例子中提到的 Controller:curl -X POST http://localhost:3000/api/posts --data '{"title":"control...

2019-08-28 10:52:00 55

转载 比如我们试图测试这样一段代码的执行速度,我们通常会这样做:

比如我们试图测试这样一段代码的执行速度,我们通常会这样做:然而鉴于现在的设备和浏览器运行得越来越快,这种将代码运行固定次数的测试方法有很大概念会得到一个0ms的时间差结果,显然0是毫无意义的,如下图这里推荐使用benchmark.js进行代码段的基准测试,同时可以使用jsPerf来分享我们的基准测试Benchmark.js的使用:github...

2019-08-27 09:19:00 67

转载 js jquery 实现 排班,轮班,日历,日程。使用fullcalendar 插件

如果想用fullcalendar实现排班功能,或者日历、日程功能。那么只需要简单的几步: 这里先挂官网链接: fullcalendar fullcalendar官网下载链接 一、下载及简单配置 1、这里先明确你想要的是哪种形式式:fullcalendar 提供多种日历形式: 你们可以在官网首页的演示里面看到,在这里我主要讲一下我这里使用的两种实现: (1)日历模式(只是用fullcale...

2019-08-26 19:19:00 1056

转载 搭建前端组件库(二)

进阶组件库按需引入在目前,所有的组件会被打包进一个文件,组件库是一骨碌加载完所有组件,同时也会打包和加载多余的代码。对于小项目这样没有问题,但是当组件库越来越庞大、丰富,特别是像我们带业务逻辑的非js库,代码量会更大,如果不管不顾的一通加载完所有资源,后期肯定会带来业务方面的体验问题。所以首要的问题是实现源代码的按需引入,而按需引入的前提是实现源码包按独立组件分割和的拆分...

2019-08-23 11:01:00 1067

转载 搭建前端组件库(一)

本文梳理如何搭建和构建前端组件库.了解几个问题为何需要组件化?大部分项目起源都是源于业务方的各种各样的奇葩需求。随着公司的业务发展,公司内部开始衍生出很多的B2C系统、后台系统,前端部门也疲于应对越来越多同质化的项目,这些项目在很多基础模块层、源代码存在不小的相似,甚至存在相似的业务模块。笔者曾经所在的一个电商团队,前端成员基本每个人多做过登录注册、购物车、支付、微信...

2019-08-23 10:18:00 521

转载 shell中的crontab定时任务

一、crontab简介:crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux下的任务调度分为两类,系统任务调度和用户任务调度。系统任务调度:系...

2019-08-22 16:50:00 78

转载 linux设置定时任务的方法步骤

一,首先登录二,找到文件夹三,查看定时任务crontab -l四,vi root 编辑定时任务 编辑完成后,点ESC,然后:wq时间格式分钟 小时 日期 月份 周 命令数字范围 0-59 0-23 1-31 1-12 0-7 echo "hello" >> abc.log特殊字符的含义*(星号) 代表任何时刻都接受。,(逗号...

2019-08-22 16:33:00 78

转载 CSS角度单位:deg、grad、rad、turn

1、deg度(Degress)。一个圆共360度90deg = 100grad = 0.25turn ≈ 1.570796326794897rad-moz-transform: rotate(2deg);-webkit-transform: rotate(2deg);transform: rotate(2deg);2、grad梯度(Gradians)。一个圆共400梯度9...

2019-08-21 11:01:00 377

空空如也

空空如也

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

TA关注的人

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