自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

双眸

GitHub:https://github.com/BothEyes1993

  • 博客(134)
  • 资源 (4)
  • 收藏
  • 关注

原创 理解React hooks常用方法useState, useEffect, useMemo, useCallback, useContext

useStateuseState接收一个初始值,返回的是一个解构出来的数组,第一个是当前状态(似state),第二个是状态的更新函数(似setState),更新函数与react的setState不同的是,useState的更新函数会将状态替换(replace)而不是合并(merge)。使用场景:函数组件中需要用到状态值,类似react类组件的stateimport React, { useState } from 'react';function Example() { // 声明一个新的

2021-08-26 18:14:16 1573

原创 Axios使用及源码解析

简介axios 是一个用于浏览器和Node.js上的基于 Promise 的http网络库。大纲使用方式安装:npm install axios使用://引入axiosconst axios = require('axios');import axios from 'axios';axios的四种使用方式1. axios(config)直接将相关配置包括请求url作为参数传入到axios方法中axios({ url: 'https://jsonplaceholder.

2021-06-15 17:39:18 877

原创 关于解构用法小结

介绍数组解构的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者。解构赋值的规则是,只要等号右边的值不是对象,就先将其转为对象,由于 undefined 和 null 无法转为对象,所以对它们进行解构赋值,都会报错。解构赋值对提取JSON对象中的数据,函数参数的默认值,尤其有用。基础用法数组与迭代器的解构数组解构赋值的一个简单示例,其语法的一

2021-06-12 19:12:28 513

原创 关于es6 扩展运算符的小结

参考:es6 扩展运算符 三个点(…)基础用法一1.由于扩展运算符可以展开数组,所以不再需要apply方法,将数组转为函数的参数了。function f(x, y, z) { // …}var args = [0, 1, 2];f(…args);2.数组是复合的数据类型,直接复制的话,只是复制了指向底层数据结构的指针,而不是克隆一个全新的数组。扩展运算符提供了复制数组的简便写法。const a1 = [1, 2];// 写法一const a2 = […a1];// 写法二const

2021-06-12 18:59:05 258

原创 Git的HEAD、master 与 branch区别

这一节主要是几个概念的解释:HEAD、master 以及 Git 中非常重要的一个概念: branch。引用:commit 的快捷方式首先,再看一次 log:通过查看 log,可以对这个逻辑进行验证:当有人使用 git clone 时,除了从远程仓库把 .git 这个仓库目录下载到工作目录中,还会 checkout (签出) master(checkout 的意思就是把某个 commit 作为当前 commit,把 HEAD 移动过去,并把工作目录的文件内容替换成这个 commit 所

2020-09-12 17:32:07 2586

原创 微信开发者工具集成GitHub,多人协调开发,上传拉取等

一,准备环境1,提前安装git环境和GitHub做集成,不做多解释;1,准备微信项目代码;2,创建GitHub仓库;二,创建GitHub仓库1,创建一个空的GitHub仓库,不要任何文件和不要创建任何分支,后面会从微信开发工具统一导入。(只用填个name,其他不勾选,勾选了会自己创建master分支,这里不用创建分支,如果还是勾选了,后面会讲怎么把微信本地版本分支合并到这个分支上面)2,创建完成后复制项目地址,后面有用三,微信版本工具集成GitHub1,打开微信开发工具,导入本地项目;

2020-09-12 17:19:28 1989

原创 查询电脑的逻辑核心数,不同业务下如何配置线程池

逻辑核心数一般百度如何获取电脑的逻辑核心数,都会出现这段代码:Runtime.getRuntime().availableProcessors()然而,问题在于Runtime.getRuntime().availableProcessors()也并非都能返回你所期望的数值。比如说,在我的双核1-2-1机器上,它返回的是2,这是对的。不过在我的1-4-2(1个物理处理器-4个核-每个核2个超线程=也就是通常说的4核8线程)机器 上,也就是一个CPU插槽,4核,每个核2个超线程,这样的话会返回8。不过我

2020-06-02 12:37:26 367

转载 Java乐观锁与悲观锁介绍和CAS的实现方式以及jvm内存分配方式

一: 首先介绍一些乐观锁与悲观锁:悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语synchronized关键字的实现也是悲观锁。乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等

2020-05-23 13:25:38 266

原创 Java爬虫Ins博主所有帖子的点赞和评论导出excel

前言某天朋友说,能不能帮忙扒下ins的博主帖子,要所有帖子的点赞和评论,我本来准备让会python的同事写的,最后还是自己顺手写了,本来一开始准备用nodejs或者js写的,想着前端本地测试代理和导excel比较麻烦还是用Java吧,正好好久没写Java了,就当回忆一波吧。注意点ss梯子大家自己准备好,不然连不上ins的,还有ins的一些反扒规则等等我就不一一列举了,下面说下大概的几个点:instagram的首页数据是服务端渲染的,所以首页出现的11或12条数据是以html中的一个json结

2020-05-14 15:06:41 1502

原创 移动端touch事件影响click事件以及在touchmove添加preventDefault导致页面无法滚动的解决方法

这两天自己在写一个手机网页,用到了触屏滑动的特效,就是往右滑动的时候左侧隐藏的菜单从左边划出来。做完之后在手机原生浏览器中运行正常,但在QQ和微信中打开,发现touchmove只会触发一次,而且touchend也经常不触发。之后百度了一下这个问题,原因是主要是由于200ms超时导致内核不一定会一直处理touchmove事件,一旦超时会将后续所有的事件转交给UI处理,导致touchmove不会...

2020-04-21 22:48:00 526

原创 Gulp的代理转发插件

需求背景前后端分开部署时,需要单独为前端启动一个服务,如果使用gulp-connect的话,那么代理需要额外的插件来配置。首先说下为什么需要代理,gulp-connect是静态web的server(就是只能访问静态页面),如果需要向另外一个或几个服务器请求数据那么就需要代理。除非前后端一起部署,不然由于浏览器的限制是没办法跨域请求数据的。即便是前后端部署在一起,如果还需要向其他服务请求数据,或者...

2020-03-28 17:01:58 418

转载 Mybatis学习笔记汇总(包括源码和jar包)

博客整理Mybatis学习笔记(一)——对原生jdbc中问题的总结Mybatis学习笔记(二)——Mybatis框架Mybatis学习笔记(三)——入门程序MyBatis学习笔记(四)——入门程序(续)Mybatis学习笔记(五)——DAO开发Mybatis学习笔记(六)——配置文件Mybatis学习笔记(七)——输入输出映射Mybatis学习笔记(八)——动态SQLMybati...

2020-03-07 13:10:02 166

原创 HTTP Strict Transport Security (通常简称为HSTS)

HTTP Strict Transport Security (通常简称为HSTS) 是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源, 禁止HTTP方式。Freebuf百科:什么是Strict-Transport-Security?一个网站接受一个HTTP的请求,然后跳转到HTTPS,用户可能在开始跳转前,通过没有加密的方式和服务器对话,比如,用户输入http://foo.com...

2020-01-28 16:59:45 7418

原创 java项目部署Linux服务器几种启动方式总结经验

一:两种部署包:部署之前先说下两种包,java项目部署到服务器一般有用war包的,也有用jar包的,微服务spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包还是jar包,下面小介绍两种包的区别:spring boot既可以打成war发布,也可以找成jar包发布。说一下区别:jar包:直接通过内置tomcat运行,不需要额外安装tomcat。如需修改内置tom...

2020-01-21 15:41:57 1854

原创 Nginx下的location,upstream,rewrite 和 proxy_pass使用总计大全

一 、 location: 顾名思义–>地址,也叫路由。nginx服务器非常核心的配置,一般nginx运维人员在修改nginx配置时,大部分也是围绕着location这个配置进行修改。下面看一下一个简单的location配置:location / { root home/; index index.html;}这个配置表示任何一个路径访问nginx服务...

2020-01-12 17:46:28 930

原创 SQL注入和Mybatis预编译防止SQL注入

什么是SQL注入??所谓SQL注入,就是通过把SQL命令插入到Web表单提交或页面请求url的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。实战举例有个登陆框如下:可以看到除了...

2019-12-31 19:24:34 1150 1

原创 requestAnimationFrame/cancelAnimationFrame——性能更好的js动画实现方式

用js来实现动画,我们一般是借助setTimeout或setInterval这两个函数,css3动画出来后,我们又可以使用css3来实现动画了,而且性能和流畅度也得到了很大的提升。但是css3动画还是有不少局限性,比如不是所有属性都能参与动画、动画缓动效果太少、无法完全控制动画过程等等。所以有的时候我们还是不得不使用setTimeout或setInterval的方式来实现动画,可是setTime...

2019-12-27 21:14:24 444

原创 webview的简单介绍和手写一个H5套壳的webview

1.webview是什么?作用是什么?和浏览器有什么关系?Webview 是一个基于webkit引擎,可以解析DOM 元素,展示html页面的控件,它和浏览器展示页面的原理是相同的,所以可以把它当做浏览器看待。(chrome浏览器也是基于webkit引擎开发的,Mozilla浏览器是基于Gecko引擎开发的)Android的Webview在低版本和高版本采用了不同的webkit版本内核,4.4...

2019-11-16 23:15:49 1416

原创 关于前后端写入Cookie时domain的一个问题

1.1. 前端先假设有如下setCookie方法:function setCookie(name, value, day, path, domain){ day = day || 30; path = path || '/'; var str = name + '=' + value + '; '; if(day) str += 'expires=' + new Date(Date....

2019-11-12 15:53:22 3028

原创 vscode调试webpack的启动和打包部署过程,nodejs调试

launch.json{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "node",...

2019-10-01 12:26:31 1007

原创 java 实现仿照微信抢红包算法,实测结果基本和微信吻合,附demo

实现拼手气红包算法,有以下几个需要注意的地方:抢红包的期望收益应与先后顺序无关保证每个用户至少能抢到一个预设的最小金额,人民币红包设置的最小金额一般是0.01元,如果需要发其他货币类型的红包,比如区块链货币或者积分,需要自定义一个最小金额。所有抢红包的人领取的子红包的金额之和加起来,等于发红包的人发出的总红包的金额。下面实现的方式是一次生成所有的子红包,让用户按顺序领取。也可以每领取一个...

2019-07-12 12:03:26 3089 2

原创 Java中的BigDecimal类和int和Integer总结

前言我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题。如下一段代码:System.out.println(0.05 + 0.01);System.out.println(1.0 - 0.42);System.out.println(4.015 * 100);System.out.println(123.3 / 100);输出:0.0600000000000000050.5...

2019-07-07 14:49:43 8560

原创 @RequestParam和@RequestBody和@PathVariable用法小结

@RequestParam使用@RequestParam接收前段参数比较方便,前端传参的URL:url = “${ctx}/main/mm/am/edit?Id=${Id}&name=${name}”后端使用集合来接受参数,灵活性较好,如果url中没有对参数赋key值,后端在接收时,会根据参数值的类型附,赋一个初始key(String、long ……)@RequestMappin...

2019-07-03 17:13:42 1635

原创 spring-boot+spring-cloud+maven-module 一个 maven多模块的微服务架构模版

spring-boot-cloud-modulespring-boot+spring-cloud+maven-module 一个 maven多模块的微服务架构模版。新手上路的绝佳模版,只有必要的配置文件和核心jar包,没有多余的其他增量配置,所有的配置和注解都有做解释的注解描述,方便新手一眼就懂,下载后基本上可以直接基于demo开发自己的项目1,按照业务划分多maven模块:2,spri...

2019-06-29 16:22:01 1460

原创 SpringBoot + SpringCloud的爬坑之旅

1,application.yaml中配置没有生效问题解决如果配置文件确认没有错误但是没有生效首先是要到编译目录去查看是否被编译过去了,如果没有,请先将项目clean在重启但是idea启动项目时也会先build,又有可能配置文件没有被编译过去,真实坑爹!另外,yaml文件中的那些坑:(1)冒号:后面必须有空格,下级属性缩进一格(只支持空格不支持制表符tab)(2)保证不能有重复的一级节点...

2019-06-27 14:37:18 258

原创 springMVC的自定义annotation(@Retention@Target)详解

自定义注解:使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口,由编译程序自动完成其他细节。在定义注解时,不能继承其他的注解或接口。@interface用来声明一个注解,其中的每一个方法实际上是声明了一个配置参数。方法的名称就是参数的名称,返回值类型就是参数的类型(返回值类型只能是基本类型、Class、String、enum)。可以...

2019-06-24 17:10:47 415

原创 spring的@Transactional注解详细用法

概述事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。Spring Framework对事务管理提供了一致的抽象,其特点如下:为不同的事务API提供一致的编程模型,比如JTA(Java Transaction API), JDBC,Hibernate, JPA(Java Persistence API和JDO(Java Data Objects)支持...

2019-06-23 16:26:50 164

转载 解决:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure(真实有效)

数据库连接失败一、例如我在SpringBoot项目中使用了阿里的数据库连接池Driud。有次在启动的时候,会报这样的错:Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failureThe last packet successfully received from the...

2019-06-21 21:33:09 14808

转载 数据库连接池Druid的介绍,配置分析对比总结

Druid的简介Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。Druid是阿里巴巴开发的号称为监控而生的数据库连接池!Druid的功能1、替换D...

2019-06-20 11:47:33 1456

转载 浅谈mybatis如何半自动化解耦和ORM实现

       在JAVA发展过程中,涌现出一系列的ORM框架,JPA,Hibernate,Mybatis和Spring jdbc,本系列,将来研究Mybatis。            通过研究mybatis源码,可将mybatis的大致架构总结为下图:    &...

2019-06-19 23:08:04 1600 2

原创 IntelliJ Idea14 创建Maven多模块项目,多继承,热部署配置总结(三)

pom.xml中repositories、pluginRepository的作用pom.xml中repositories标签的作用是: 用来配置maven项目的远程仓库。示例如下: <repositories> <repository> <id>nexus</id> <nam...

2019-06-03 02:21:44 350

原创 IntelliJ Idea14 创建Maven多模块项目,多继承,热部署配置总结(二)

接着上文【IntelliJ Idea14 创建Maven多模块项目,多继承,热部署配置总结(一)】,总结下项目热部署和pom文件结构的一些要点:一,依赖包的热部署上文中项目如果改了依赖包core模块中的service服务代码,重启web服务是看不到改动效果的,这是因为依赖的core已经打成jar包给web模块使用了,重启并不会重新打jar包,所以只能重新package打包才能看到效果。【解决...

2019-06-03 01:46:17 275 1

原创 IntelliJ Idea14 创建Maven多模块项目,多继承,热部署配置总结(一)

一、项目结构multi-module-parent是主工程,里面包含两个模块(Module):module-web是应用层,用于界面展示,依赖于module-core参的服务。module-core层是服务层,用于给web层提供服务。跟java的package类似,一般是按照的功能模块分module,比如:sso/cas/portal/activity/system,具体可根据需要...

2019-06-03 00:27:01 855

原创 IntelliJ IDEA 创建Spring+SpringMVC+mybatis+maven项目

第一步: 创建maven项目输入项目名和工程id(这里的GroupId和ArtifactID随意填写,但是ArtifactID最好和你的项目一名一样然后next)选择maven(下图是用idea自带的maven,你也可以用你自己下载的maven,directory地址指向你自己的maven就行,setting和repository同理)默认就可以了刚开始时间比较长,可以看到,用了有...

2019-05-30 17:37:41 420

原创 跨站点请求伪造(CSRF)总结和防御

什么是CRSF构建一个地址,比如说是删除某个博客网站博客的链接,然后诱使已经登录过该网站的用户点击恶意链接,可能会导致用户通过自己的手将曾经发布在该网站的博客在不知情的情况下删除了。这种构建恶意链接,假借受害者的手造成损失的攻击方式就叫CSRF-跨站点请求伪造。浏览器Cookie策略cookie分类cookie根据有无设置过期时间分为两种,没有设置过期时间的为Session Cookie(...

2019-05-26 16:52:55 589

原创 移动端网站开发要点-meta设置

<!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --><html lang="zh-cmn-Hans"> <!-- 更加标准的 lang 属性写法 http://zhi.hu/XyIa --><head> <!-- 声明文档使用的字符编码 --> <meta...

2019-05-22 20:14:43 143

原创 webpack4下import()模块按需加载,打包按需切割模块,减少包体积,加快首页请求速度

一:背景因为项目功能越加越多,打包后的体积越来越大,导致首页展示的时候速度比较慢,因为要等压缩的js的包加载完毕。首页展示的时候只需要对应的js,并不需要全部的js模块,所以这里就可以用按需加载,这里webpack4官方文档提供了模块按需切割加载,配合es6的按需加载import()方法,可以做到减少首页包体积,加快首页的请求速度,只有其他模块,只有当需要的时候才会加载对应js。这里参考一些...

2019-05-16 01:12:49 2125

原创 内网穿透访问Vue项目的时候出现Invalid Host header解决办法

适用场景:在本地的Vue-cli3项目, 需要其他人浏览. 如果没有外网的服务器, 可以把自己的电脑当做服务器. 这时候需要外网的人能访问到自己的电脑.Mac内网穿透工具:natappInvalid Host header当启动了natapp以后, 就这个用natapp提供的域名, 来访问本地的127.0.0.0:8080(端口自己设置), 如果Vue项目启动, 外网就可以通过域名来访问...

2019-05-09 12:07:38 4381

转载 JS的数据类型判断函数、数组对象结构处理、日期转换函数,浏览器类型判断函数合集

工具地址:https://github.com/BothEyes1993/bes-jstoolsbes-jstools100多个基础常用JS函数和各种数据转换处理集合大全,此工具包是在 outils 的基础上,加上个人平时收集的代码片段进行的二次整合Browser Support7+ ✔Latest ✔Latest ✔Latest ✔Latest ✔6...

2019-05-01 13:04:31 453

原创 js转typescript,npm切换镜像

js转typescriptnpm i dtsmake -gnpm i tern --save-devdtsmake -s fileame.jsnpm切换镜像切换为官网:npm config set registry https://registry.npmjs.org切换为淘宝镜像npm config set registry https://registry.npm.taobao...

2019-04-30 14:35:07 656

jdk1.8 mac jdk-8u291-macosx-x64.dmg。

jdk1.8 mac

2022-05-06

TCheckListBox控件

动态显示,童叟无欺,模仿TCheckListBox控件,是一个可打勾的列表

2013-06-27

swing皮肤jar包

swing皮肤和JAR包,以及使用方法,改变传统的界面风格,收藏必备啊

2013-05-24

JGraph小列子加jar包

JGraph包含很多小列子,看源码才是王道,初学必备

2013-05-15

空空如也

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

TA关注的人

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