- 博客(20)
- 收藏
- 关注
原创 ThreadLocal原理剖析
一、概述ThreadLocal提供了线程的局部变量,每个线程都可以通过set()和get()来对这个局部变量进行操作,但不会和其他线程的局部变量进行冲突,实现了线程的数据隔离~。简要言之:往ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的。二、应用场景1.管理Connection最典型的是管理数据库的Connection:当时在学JDBC的时候,为了方便操作写了一个简单数据库连接池,需要数据库连接池的理由也很简单,频繁创建和关闭Connection是一件非常耗费资源的
2020-05-22 17:52:26
292
原创 RedisTemplate 缓存对象乱码的解决
RedisTemplatepublic class RedisTemplate<K, V> extends RedisAccessor implements RedisOperations<K, V>, BeanClassLoaderAware {1.RedisTemplate是Spring提供的操作redis的类2.Redis存取数据类型序列化为json字符串时使...
2020-04-29 13:02:12
1058
原创 Java枚举原理
枚举的基本创建public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); //定义枚举实例 // 自定义成员变量 private String name; private int index; // 定义构造方法 pri...
2020-04-01 15:01:14
362
原创 Java创建对象的5种方式
Java创建对象的4种方式1.使用new关键字创建对象常用,通过new 类名()可以调用此类的构造函数(无参和有参)。这种方式,类的生命周期中的加载、初始化、实例化三个操作都会执行Person person = new Person();2.使用反射创建对象三种newInstance方法就是大家所说的反射,可以归为一类。事实上Class的newInstance方法内部调用Constr...
2020-03-18 18:08:34
261
原创 VsCode 安装Golang第三方插件详解
VSCode的Golang插件安装一、配置GO环境变量二、创建工作空间三、手动安装插件一、配置GO环境变量Windows:GOROOT:go的bin目录上一级Path:%GOROOT%/binGOPATH:项目的目录(安装插件时需要用到)Mac:vi ~/.bash_profile添加如下文本:export GOPATH=$HOME/goproject//$HOME指的是系统...
2020-03-18 14:38:14
1392
原创 多线程处理任务并合并数据
一、线程池创建方式顶层接口:Executor executor.(Runnable r)子接口:ExecutorService submit(Runnable task)抽象类:AbstractExecutorService实现类:ThreadPoolExecutor1.使用构造方法创建public ...
2020-02-29 18:30:42
1712
原创 HashMap数据结构及源码分析
数据结构1、HashMap由数组、链表、红黑树组成2、当两个或以上的key相同且key值不同时(发生冲突),就会挂在数组初始化后的链表后3、当某个节点后出现过多链表节点(8),就会转换成红黑树。源码分析通过新增(put)、查询(get)、删除(remove)深度剖析hashMap源码1、创建Map实例 HashMap<String, String> map = new ...
2020-02-23 11:22:17
163
原创 fastjson使用大坑:JSON.parseObject()时报错asm deserialize error
fastjson使用大坑:JSON.parseObject()时报错asm deserialize error需要注意的是fastjson在序列化和反序列化的时候,默认是开启ASM的。(关闭即可解决报错)何为asm?FastJson对于json格式字符串的解析主要用到了一下三个类:Json字符串转java对象Json字符串转json对象
2020-02-21 13:37:50
9123
原创 Node和npm的关系 +操作指令+npm install报错undefined ls-remote -h -t ssh://git@github.com/sohee-lee7/Squired.git
一、Node和Npm关系node.js是javascript的一种运行环境node.js中含有npmnpm是node.js的包管理器(packNode常用操作指令1.npm run 时报错‘vue-cli-service’不是内部或外部命令,也不是可运行的程序解决:删除node_modules包重新执行npm install。2.npm install时报错undefined ls-remote -h -t ssh://git@github.com/sohee-lee7/Squired.git
2020-01-04 14:36:53
16185
3
原创 Nginx:静态html+反向代理详细配置
Nginx:静态html+反向代理详细配置Nginx配置文件详解Nginx常用操作指令1.安装nginx后启动start nginx //在命令行输入指令(nginx安装目录执行cmd)2.将前端项目复制到html文件夹下3.将nginx下的配置文件(/conf/nginx.conf)里的server节点配置改为要配置的域名Nginx配置域名及本地域名解析详解高级部分nginx常见报错解决方案
2020-01-04 00:25:08
8292
1
原创 Rancher2.0+Kubernetes(k8s)+Docker+SpringCloud 部署分布式服务
Rancher2.0+Kubernetes(k8s)+Docker+SpringCloud 部署分布式服SpringCloud:一般使用SpringCloud写好每个Service后,使用jar包的形式部署,一般架构为Eureka+Config+Feign+Sleuth+Zipkin的形式,常用的还有Zuul实现路由网关的功能,Eureka(client+server)提供了服务注册和服务发现的功能Docker中的几个概念KubernetesRancher是一个开源的企业级容器管理平台
2020-01-02 12:22:32
620
原创 Nacos详解:作为注册中心/配置中心与Eureka、Apollo、Spring Config的优劣比较
Nacos详解:作为注册中心/配置中心与Eureka、Apollo、Spring Config的优劣比较一、什么是Nacos?Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。Nacos vs Spring CloudNacos = Spr...
2020-01-02 10:56:09
6213
3
原创 JVM的垃圾回收算法及GC详解
JVM的垃圾回收算法及GC详解一、JVM的垃圾回收算法 GC(Garbage Collector)垃圾回收器1.复制算法(新生代垃圾回收算法)二、JVM的痛点:Stop the World三、内存溢出四、垃圾回收器 新生代垃圾回收器 老年代垃圾回收器.CMS并发回收机制的缺点内存碎片问题G1的新生代垃圾回收*新生代+老年代 垃圾混合回收(Mixed GC) jdk自带命令行工具对线上系统进行JVM监控.JVM参数模板微服务架构RPC调用引发的OOM
2019-12-31 17:15:03
451
原创 Git报错 git pull时报错:fatal: refusing to merge unrelated histories
Git报错 git pull时报错:fatal: refusing to merge unrelated historie问题描述:原因分析:fatal: refusing to merge unrelated histories(拒绝合并不相关的历史)出现这个问题的最主要原因还是在于本地仓库和远程仓库实际上是独立的两个仓库。假如我之前是直接clone的方式在本地建立起远程github仓库的克隆本地仓库就不会有这问题了。可以在pull命令后紧接着使用–allow-unrelated-his...
2019-12-31 16:05:19
591
原创 Java中常用的4种查找算法详解
Java中常用的4种查找算法详解4种常用的查找算法顺序(线性)查找二分查找/折半查找插值查找斐波那契查找1.顺序(线性)查找逐一比对,发现相同值时返回下标 2.二分查找/折半查找-要求待查找的数组必须有序 3.插值查找 1.与二分查找类似,mid的计算方式不一样 2.对于分布不均匀的数据,插值查找不一定比二分查找快
2019-12-31 15:37:52
876
1
原创 十大排序算法详解
十大排序算法详解10种排序算法的比较冒泡选择插入排序希尔归并快速堆排序基数计数桶排序算法的时间复杂度1.计算时间复杂度的方法:①用常数1代替运行时间中的所有加法常数②修改后的运行次数函数中,只保留最高阶项③去除最高阶项的系数2.常见的时间复杂度(由小到大)①常数阶O(1)无论代码执行多少行,只要是没有循环等复杂结构,那这个代码的时间复杂度就是O(1)②对数阶O(logn)③线性阶O(n)单层for循环④线性对数阶O(nlogN)时间复杂度为O(logn)...
2019-12-31 12:20:54
1012
2
原创 Git 常用指令
Git 常用指令一、常用指令(Git操作步骤)1.把目录变成Git可以管理的仓库git init2.将文件添加到暂存区git add [文件名]3.将文件提交到本地仓库git commit -m " 备注 "4.将本地库和远程库进行关联git remote add origin http://.../health.git5.拉取远程库内容git pull origin master ...TortoiseGit(git工具)详细使用说明Idea中配置Git一步一图
2019-12-30 15:38:24
174
原创 Git报错:git pull时报There is no tracking information for the current branch.
Git报错:git pull时报There is no tracking information for the current branch.问题描述:提示branch没有跟踪信息解决方案1.直接指定远程分支git pull origin master2.先指定本地master到远程的master,然后再去pullgit branch --set-upstream-to=origin/master mastergit pull...
2019-12-30 15:26:21
243
原创 Springboot配置详解
Springboot配置详解0.学习目标Springboot配置详解了解SpringBoot的作用掌握springboot属性注入了解SpringBoot自动配置原理掌握yml文件的写法掌握SpringBoot的基本使用1. 了解SpringBoot1.1.什么是SpringBootSpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品:[外链图片转存失败,源...
2019-12-24 11:11:49
989
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人