自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 了解 Service Worker

Service Worker(后面简称SW) 是 Web Worker 的一种增强版,在后台独立于网页运行,和普通脚本拥有不同的运行容器,其中运行的代码不会被普通的JS阻塞,同时也不会阻塞其它页面的JS文件中的代码。常见于 PWA 中,用于拦截全局的 fetch 事件,实现离线缓存、后台同步等操作

2023-03-04 23:44:54 912

原创 git pull 报 Authentication failed

节前公司系统提示账号密码到期,便直接改了,而且同步修改了各个域密码,节后 git pull 同步代码的时候报下面的错,这主要是因为git的windows的默认凭据没有同步被改掉,那如何修改呢?一:凭据管理器进入到控制面板中的凭据管理器(路径:控制面板\用户帐户\凭据管理器),选择 Windows凭据二:删除或修改密码然后在下方的凭据中选择对应的git,删除或者修改即可如果是删除了,再拉代码的时候会提示重新输入用户名和密码;如果是更新的话,直接就可以pull下载。...

2021-01-05 12:44:13 1885

原创 IDEA 隐藏 .idea 目录

setting,Editor-->File Types,在 Ignore files and folders 中添加 .idea; 即可更新:2020.3 之后的版本

2020-12-27 22:51:54 766

原创 计数排序

计数排序是一种稳定的线性时间排序算法。需要使用一个额外的数组空间。特征计数排序要求待排序数组在一个可收敛的整数范围内,因为需要使用额外的数组空间进行存储,并且需要对数据进行遍历计数,所以计数排序不适合范围特别大的数组。举个例子通俗理解,例如有10个年龄不同的人需要找到小明排在第几位,我们只需要统计出有几个人比小明小或者同龄就行了,比如有8个人,那小明就排在第9位。这里如果有两个小朋友同龄,需要进行特殊的处理,即一个小朋友这里占据了一位之后,统计的比另外一个小朋友小的值应该减一(排序的稳定性),同理可以

2020-10-08 16:18:50 255

转载 二叉树的前序、中序、后序的递归和迭代实现

前言二叉树遍历常用的一般分为前序、中序、后序三种,下面使用递归和迭代两种方法来实现这三种遍历,这三种遍历的顺序分别为:前序:中左右中序:左中右后序:左右中记得时候就是左右不变,中跟着遍历的方式走递归每次写递归,都按照这三要素来写,可以保证大家写出正确的递归算法!确定递归函数的参数和返回值:确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。确定终止条件:写完了递归算法, 运行的时候,经常会遇到

2020-09-30 01:51:07 359

原创 理解NIO核心概念——Buffer

缓冲区本质上是一块可读写的内存。这块内存被包装成Buffer对象,并从Buffer派生一系列具体类型的子类(除boolean外),这些类提供了一组方法,用于操作该块内存。派生关系如下图:使用缓冲区一般遵循以下四个步骤:写数据到Buffer调用flip()方法:主动将Buffer从写模式切换成读模式从Buffer中读数据调用clear()方法或者compact()方法clear():清空缓冲区compact():清除已经读过的数据为了更容易理解Buffer,需要先理解下面4个核心技

2020-09-26 13:02:40 240

原创 跟着学linux安装jdk1.8

到服务器上创建目录 /usr/local/java (目录可按自己需要来)从国内镜像源下载linux jdk安装包:http://apache.apooloo.cn/#/down/f1b54d77df533af9d9de55cf3f4e2cea可以进到目录通过wget直接下载点击下载后通过ftp客户端上传到服务器解压 JDK:tar -zxvf jdk-8u202-linux-x64.tar.gz设置环境变量vi /etc/profile,在profile中添加如下内容..

2020-09-22 22:37:21 147

原创 Semaphore 使用和面试注意点

正常的锁(比如lock)一般都是用来只允许一个任务访问一项资源,而*计数信号量(Semaphore)*允许最多n个任务同时访问这个资源,常常被用来做流控。信号量在使用的过程中总结有如下几点需要注意的:想要执行必须要能通过 acquire() 相关方法获取许可证,否则就会被阻塞,见示例1acquire 和 release 没有绝对的先后顺序,release 可以先于 acquire 执行,且许可证的数量和初始化时么关系,见示例2acquireUninterruptibly 方法相对于 acqui.

2020-09-09 00:29:00 318

原创 Chrome扩展实战——实现书签快速搜索功能

需求背景在平时使用Chrome的过程中,很喜欢用添加书签收藏的能力,而且可以利用浏览器的同步功能,非常方便,所以对于一个Chrome的重度用户来说,书签越来越多,自然而然发现找收藏的文章就特别的麻烦,浏览器自带的搜索书签也感觉不太好用,不能将所有的书签一次性的展现在眼前,所以就考虑使用来实现个搜索扩展这个插件写在很久以前,当时正好在了解vue,正好想写demo练手,所以就有了这个vue+element实现的chrome的插件扩展开发入门Chrome 插件开发有一整套的指导,详见 Chrome Ext

2020-08-19 23:39:43 1792

原创 Java注解的值能支持从文件动态读取吗?

问题背景最近遇到一个场景:有一些场景想在注解上使用变量,方便后续可以动态通过配置更新,而不需要重新编译java文件,如:@ExtractInterface(abilityId = "${abilityId}") // ${abilityId} 能否是一个变量?public class Multiplier {}注解注解是java很常用的一个特性,在JDK和各大框架中都可以看见注解的妙用。注解可以看成接口的语法糖,找个AbilityContext接口的字节码通过 javap 查看如下,很明显看出

2020-08-16 23:30:22 1630

原创 利用 CompletableFuture的applyToEither 优雅的实现快速失败

问题背景最近遇到一个场景,简化之后即:一个接口要实现对多个服务的聚合查询,多个服务之间不存在依赖,如何能保证在指定的时间内返回查询到的数据,其它的请求按超时丢弃处理问题分析这种聚合的查询接口,性能和稳定性要求都比较高,并且要能够支持返回特定时间内部分查询结果的功能,也就意味着不能阻塞等待所有请求都结束才返回。这个问题有个很关键的前提,即这些服务之间不存在依赖,根据这个信息可以想到这些服务请求都可以单起一个线程发送,所以可以使用线程池,而且都是网络请求,所以可以使用异步发送避免阻塞,那如何解决超时这个

2020-08-14 00:28:44 2682 3

原创 网络流中的 InputStream.available() 为什么会一直等于 0

问题背景最近在研究Socket编程的时候,发现书上有一个代码片段下:class Server { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(8088); Socket socket = serverSocket.accept(); InputStream inputStream =

2020-08-08 00:41:10 4450

原创 `Integer val = xx` 字面量是怎么赋值的?

当我们使用 Integer val = xx 赋值的时候,我们会执行哪些逻辑?对于 Integer var = 127; 可以通过javap xx.class查看对应的字节码 0: bipush 127 2: invokestatic #2 // Method java/lang/Integer.valueOf:(I)...

2020-05-04 10:09:30 260

原创 linux 非root用户清理history

在实践中经常会遇到需要清除history的场景,比如签发证书的操作记录等等。一般常用的就是 history -c,而且能够立即生效,但是在非root登录的场景下,这种方法不生效的场景下,可以像下面这样处理:找到history的记录文件:cd ~,然后可以看到 .bash_history,可以cat看一下,这里记录了之前操作的历史记录将该文件清理或者者赋空,最简单的方式:echo > ....

2020-04-06 23:37:10 1113

原创 使用Postman pre-request 实现自动刷新AT

引入问题最近在用 Postman 做服务调试的时候,遇到个场景:需要调试的接口特别多,在发请求的时候都需要带真实有效的AT,我们这边的AT有效期使用默认的十分钟,因为调试的过程中经常会遇到别的事情,导致AT经常失效,花了大量的时候去拿可用的AT,这对于一个懒人来说是不可接受的,下面就介绍一下我是如何一步一步的来解决这个问题的:阶段一服务使用的是标准的oauth2鉴权,所以初始的时候最基础能想...

2020-02-22 22:49:03 1379

原创 log4js-node 入门使用

任何语言框架都少不了日志模块,在node这种及其开发的环境中,日志模块真是又多又杂,网上也有很多比较的帖子,这里都不多说了,最近项目中用到了log4js,结合自己的实践,介绍下这个模块。log4js是从log4j衍生出来的,如果用log4j的使用经验,则上手log4js会很快。陈列文档文档介绍github简单上手安装yarn add log4js或者npm install l...

2020-02-22 21:45:03 1065

原创 Java核心技术卷一:继承

继承主要是为了实现"is-a"的概念,达到子类对超类的功能扩展super vs thisthis引用隐私参数调用该类其它的构造器super调用超类的方法调用超类的构造器:默认会调用超类的无参构造器和this不同,它不是一个对象的引用,所以不能将super赋值给另一个对象变量,它只是一个指示编译器调用超类方法的特殊关键字理解方法调用下面假设要调用x.f(arg...

2020-02-15 18:38:13 163

原创 Java核心技术卷一:对象和类

类之间的关系依赖(“uses-a”):依赖意味着耦合,应该尽量减少依赖聚合(“has-a”)继承(“is-a”)使用预定义类Date类:表示时间点的Date类LocalDate类:表示大家都熟悉的日历表示法静态域与静态方法在下面两种情况下使用静态方法:一个方法不需要访问对象状态,其所需参数都是通过显示参数提供一个方法只需要访问类的静态域方法参数**按值调用:**表...

2020-02-15 18:36:48 172

原创 Java核心技术卷一:Java的基本程序设计结构

数据类型一共有8种基本类型 = 4中整型(int + short+long+byte) + 2种浮点类型(double + float) + char + boolean整型在JAVA中,整型的范围与运行JAVA代码的机器无关,从而实现代码的可移植性浮点类型绝大部分应用程序都采用double类型char类型java使用UTF-16编码,字符集是unicode,所以一个码元是16位...

2020-02-15 18:34:11 219

原创 IDEA配置支持全局搜索jar中信息

打开IDEA全局搜索(一般是快捷键 ctrl+shift+f 或者 ctrl+h),然后操作如下图:其它的也可以安装此操作加入

2020-02-05 00:45:19 718

转载 Unicode和字符编码

字符编码你是否认为 ASCII 码就是一个字符,一个字节就是一个字符,一个字符就是 8 比特?你是否认为 UTF-8 就是用 8 比特表示一个字符?如果真的是这样认为这篇文章就很适合你。为什么要有编码?首先大家需要明确的是在计算机里所有的数据都是字节的形式存储和处理的。我们需要字节来表示计算机里的信息,但是这些字节本身又是没有任何意义的。我们需要对这些字节赋予实际的意义,制定各种编码标准。...

2020-02-02 23:59:00 256

原创 JAVA SPI(Service Provider Interface)初探

SPI机制是JAVA原生提供一套能力,在很多场景下都有使用到,本篇文章重点会通过示例和源码的方式来解释什么是SPI;为什么要使用SPI;如何使用SPI;JAVA是如何实现SPI; SPI思想说开去。什么是SPI先看下维基百科的定义:Service Provider Interface (SPI) is an API intended to be implemented or extende...

2020-02-02 01:25:41 307

jdk-8u202-linux-x64.tar.gz

linux jdk 1.8.202 x64 直接使用,解决oracle下载jdk需要账号的问题,https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

2020-09-22

空空如也

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

TA关注的人

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