自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程池自义定参数设置及预估

a.核心线程会一直存活,及时没有任务需要执行b.当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理c.设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关。

2023-10-16 22:31:00 187

原创 线程池的Worker线程的生命周期

3、若继续提交任务,有空闲线程就调拨空闲线程来处理任务?4、若继续提交任务,有空闲线程就调拨空闲线程来处理任务,如果没有空闲线程(10个)则将任务缓存到queue中排队等待。5、若继续提交任务,而已有线程不空闲,且queue也满了,则新建线程,并将最新的任务优先提交给新线程处理。6、若继续提交任务,且所有线程(20个)仍不空闲,queue也是满的,此时就会触发池的拒绝机制。8、一旦有任何线程空闲下来就会从queue中消费任务,直到queue中任务被消费完。2、当有一个任务提交到池就创建第一个线程。

2023-09-19 16:06:31 196

原创 缓存穿透、缓存击穿和缓存雪崩现象及措施

缓存穿透是指查询一个缓存中和数据库中都不存在的数据,导致每次查询这条数据都会透过缓存,直接查库,最后返回空。当大量的请求访问这种缓存,是直接作用在关系型数据库上,数据库压力会暴增,甚至宕机。1.缓存空对象或空值2.使用布隆过滤器。

2023-07-24 14:15:46 126

原创 Spring动态代理

JDK代理是不需要第三方库支持,只需要JDK环境就可以进行代理,使用条件:实现InvocationHandler + 使用Proxy.newProxyInstance产生代理对象 + 被代理的对象必须要实现接口。动态代理,代理类是在程序运行时动态生成的,可以很方便的对被代理类的所有方法做统一的处理,其中又分JDK动态代理和CGLIB动态代理。,代理类持有一个被代理类对象,在代理类中对被代理类的方法进行调用,代理类中就可以加入一些其他的逻辑。就已经确定下来了接口代理类被代理类,

2023-07-24 10:07:48 435

原创 java面试整理

二、Spring部分。

2023-07-21 10:07:35 97

原创 JVM内存溢出(五)之新生代老年代

也叫新生代,顾名思义,主要是用来存放新生的对象。新生代又细分为 Eden区、SurvivorFrom区、SurvivorTo区。新创建的对象都会被分配到Eden区(如果该对象占用内存非常大,则直接分配到老年代区), 当Eden区内存不够的时候就会触发MinorGC(Survivor满不会引发MinorGC,而是将对象移动到老年代中),在Minor GC开始的时候,对象只会存在于Eden区和Survivor from区,Survivor to区是空的。

2023-07-20 14:39:53 369

原创 JVM内存溢出(四)之垃圾回收器

jvm拥有自己的垃圾回收机制,可以自动进行垃圾回收,释放内存。

2023-07-20 10:54:30 123

原创 JVM内存溢出(二)之双亲委派机制

站在java虚拟机的角度看,JVM支持两种加载器,分别为引导类加载器(BootstrapClassLoader)和自定义类加载器。从概念上来说自定义加载器一般是程序中由开发人员定义的一类加载器,然而java虚拟机规范中并没有这样定义,而是将所有派生于抽象类ClassLoader的类加载器都划分为自定义加载器。一般来说在java8以及以前的版本都会用到如下三种加载器:启动类加载器(Bootstrap Class Loader)扩展类加载器(Extension Class Loader)

2023-07-18 09:42:28 205

原创 JVM内存溢出(三)之JVM8内存模型

堆是一个所有线程共享的,存放对象的区域,也是GC的主要区域。Eden中存放的是通过new 或者newInstance方法创建出来的对象,绝大多数都是很短命的,正常情况下经历一次gc之后,存活的对象会转入到其中一个Survivor区,然后再经历默认15次的gc,就转入到老年代,这是常规状态下。其中堆和元空间是线程共享的,而Java虚拟机栈、本地方法栈、程序计数器是线程隔离的。本地方法栈与Java虚拟机栈的区别是,虚拟机栈执行的是Java方法,本地方法栈执行的是本地方法(Native Method)

2023-07-17 14:58:52 277

原创 JVM内存溢出(一)之排查初体验

本人推荐jvisualvm.exe 和 jprofiler 两款分析工具,其中jvisualvm在jdk中bin目录中可以找到。可知是数组扩容是出现的出现堆溢出Arrays.copyOf(Arrays.java:3332)发生的业务方法 Test类20行处: at Test.main(Test.java:20)业务行Test类20行:Test.main(Test.java:20)日志分析为三部分:控制台日志、dump文件和GC日志。2.1控制台日志(如1.3中出现的日志)dump文件内容如下。

2023-07-17 09:59:23 176

原创 短链访问服务之openresty

http:127.0.0.1:8080/1ydcqy8L2uG 被重定向到目标地址。D:/openresty/conf/short_chain.lua 文件如下。ngx.log(ngx.ERR, "命中redis缓存")D:/openresty/conf/default.conf 文件如下。ngx.log(ngx.ERR, "命中mysql")ngx.log(ngx.ERR, "命中代理缓存")二、短链服务lua脚本编写如下。

2023-07-06 17:46:17 828

原创 linux环境安装docker+confluence

前言本次安装的环境 centos 7.6一、安装docker1、yum安装docker更新yumyum updateyum安装dockeryum install docker 2、开启镜像加速mkdir /etc/dockervi/etc/docker/daemon.json 3、启动docker查看docker版本docker --version启动dockerservice docker start查看doc...

2023-07-06 16:42:36 303

原创 搭建短链服务

一、背景短链在互联网中盛行,搭建自己短链平台,可以有效提供短链服务支持。也可以使用第三方短链服务平台,但由被插播广告,泄露长链统计等相关数据。本文会介绍短链实现原理,搭建的代码。1.1短链接的优势1.1.1优点一缩短长链接的地址长度,减少空间。1.1.2优点二避免原链接被屏蔽1.1.3优点三短链简洁、美观、不暴露参数1.1.4优点四保证短链不变时,修改原地址。1.1.4优点五短链还可以进行业务统计二、原理2.1利用http重定向http重定向可以分为临时重定向和永久重定向。

2023-05-19 16:48:28 1084 2

转载 我调用第三方接口遇到的13大坑

在实际工作中,我们经常需要在项目中调用第三方API接口,获取数据,或者上报数据,进行数据交换和通信。那么,调用第三方API接口会遇到哪些问题?如何解决这些问题呢?这篇文章就跟大家一起聊聊第三方API接口的话题,希望对你会有所帮助。

2023-04-17 09:30:15 198

原创 linux上jira安装

JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。一、前提环境linux:centos7+jdk:jdk8+mysql:5.7及以上二、安装详细步骤默认已安装 java环境、和mysql数据库,此处不再冗余介绍。1.java环境验证:java -version2.mysql创建用户并授权可以参考之前我的文章,mysql的安全管理:https://blog.csdn.ne

2021-08-01 17:27:51 3201 7

原创 团队管理总结

一、概要二、详情以下是自动整理的笔记 ...

2021-05-10 23:05:06 130

转载 Maven Helper解决Maven插件冲突

1、何为依赖冲突Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的。Maven的依赖机制会导致Jar包的冲突。举个例子,现在你的项目中,使用了两个Jar包,分别是A和B。现在A需要依赖另一个Jar包C,B也需要依赖C。但是A依赖的C的版本是1.0,B依赖的C的版本是2.0。这时候,Maven会将这1.0的C和2.0的C都下载到你的项目中,这样你的项目中就存在了不同版本的C,这时Maven会依据依赖路径最短优先原则,来决定使用哪个版本的Jar包,而另一个无用的Jar包则未被使用,这就是所谓的依

2020-06-24 12:32:59 267

原创 接口测试工具JMeter

一、JMeter简介JMeter的™应用程序是开源软件,100%纯Java应用而设计的负载测试功能行为和测量性能。它最初是为测试Web应用程序而设计的,但此后已扩展到其他测试功能。我用来看接口量的指标二准备环境1.java1.82.下载JMeter 下载链接:http://jmeter.apache.org/download_jmeter.cgi2.1解压后:双...

2020-05-06 19:10:49 379

原创 linux或windows环境下通过命令调用dubbo接口

工作中很方便测试的:1.连接服务:telnet 127.0.01 208802.查看命令2.1查看服务:ls2.2查看服务详情: ls -l2.3所有资源的状态:status -l3.方法调用3.1非对象调用: invokeinvoke com.xxx.ClassName.MethodName('args')3.2对象类型调用方式:invoke com....

2020-03-25 11:11:08 840

转载 MySQL高级 之 explain执行计划详解

explain执行计划包含的信息其中最重要的字段为:id、type、key、rows、Extra各字段详解idselect查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 三种情况: 1、id相同:执行顺序由上至下 2、id不同:如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行 3、id相同又不同(两种情况同时存在):id如果相同,可以...

2019-10-30 19:35:53 133

翻译 Spring中BeanFactory跟FactoryBean的区别和联系

BeanFactory BeanFactory是接口,用于管理Bean的一个工厂。BeanFactory是IOC容器的核心接口,它主要作用就是实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。 BeanFactory只是一个接口,并不是IOC容器的具体实现,Springp容器提供了很多种实现,如:XmlBeanFactory、ApplicationContext等。现在...

2019-09-22 16:05:46 261

转载 Redis面试题(含答案):哨兵+复制+事务+集群+持久化等

Redis主要有哪些功能?哨兵(Sentinel)和复制(Replication)Redis服务器毫无征兆的罢工是个麻烦事,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制。Sentinel可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能,Replication则是负责让一个Redis服务器可以配备多个备份的服务器。Redis也是利用这两个...

2019-09-22 14:15:12 209

转载 mysql分库分表

一、何谓分库分表?把原本存储于一个库的数据分块存储到多个库(主机)上,把原本存储于一个表的数据分块存储到多个表上。二、为什么要分库分表?数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大。另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO等...

2019-09-22 10:02:45 129

转载 Java_框架面试题

1.Spring框架分为哪七大模块,各模块的主要功能作用是什么?七大模块,如下: 1. Spring Core: Core封装包是框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。 Spring Context: 构建于Core封装包基础...

2019-09-22 09:56:43 309

转载 并发编程面试宝典(内含69道常问面试题及答案解析)

一、开篇:众所周知,在Java的知识体系中,并发编程是非常重要的一环,也是面试的必问题,一个好的Java程序员是必须对并发编程这块有所了解的。因此,大家不难发现 Java 并发问题一直是各个大厂面试的重点之一。我在平时的面试中,也发现很多候选人对一些基本的并发概念表示没听过,或原理不理解,可能知道一些却又讲不清楚,最终导致面试失败。适逢金九银十跳槽季,作为 Java 开发者你开始忙着刷...

2019-09-21 18:05:16 168

转载 mysql数据库的锁有多少种,怎么编写加锁的sql语句

一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计,所以各...

2019-09-21 14:52:42 340

转载 8583报文详解

声明:本文转载,尊重版权最开始时,金融系统只有IBM这些大的公司来提供设备,象各种主机与终端等。在各个计算机设备之间,需要交换数据。我们知道数据是通过网络来传送的,而在网络上传送的数据都是基于0或1这样的二进制数据,如果没有对数据进行编码,则这些数据没有人能够理解,属于没有用的数据。起初的X.25、SDLC以及现在流行的TCP/IP网络协议都提供底层的通讯编码协议,它们解决了最底层的通讯问题,...

2019-09-20 09:26:22 440

原创 mysql的安全管理(创建、修改,授权用户)

一、前端环境 mysql8.0,(mysql8.0安装前面已经介绍过了) navicat客户端工具中,(前端介绍了Linux的sqlplus中)二、sql语句1.创建用户create user ben identified by 'Guest@1234';查询创建用户结果:select * from mysql.user;2.用户重命名 rena...

2019-09-08 10:55:59 657 1

转载 理解js 闭包

让你分分钟理解 JavaScript 闭包闭包,是 Javascript 比较重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是 ECMAScript 规范给的定义,如果没有实战经验,很难从定义去理解它。因此,本文不会对闭包的概念进行大篇幅描述,直接上干货,让你分分钟理解闭包!闭包,一睹为快在接触一个新技术的时候,我首先会做的一件事就是找它的 demo。对于我们来说,看代...

2019-08-18 15:55:54 93

原创 linux环境下redis的安装

一、redis安装步骤1.前往redis官网下载redis的tar包 使用 wget http://download.redis.io/releases/redis-5.0.5.tar.gz命令 或下载本地上传linux服务器上2.tar xzf redis-5.0.5.tar.gz命令解压tar包3.进入解压后的目录cd redis-5.0.54.使用make 命令进行...

2019-08-10 13:41:36 99

原创 微信--vue项目本地开发调试使用

前言:吐槽微信授权给开发带来的不便!一、前提环境vuejs作为前端项目,借助微信平台开发vue --cli2.93版本w10系统二、准备1.使用natapp作为内网穿透工具,注册使用免费版本https://natapp.cn/article2.微信测试公众号三、调试1.natapp配置:下载并开开natapp的config.ini文件、配置注册的授权...

2019-08-02 10:20:44 5576 2

原创 myslq安装及卸载

前言: 以前安装的是mysql老版本具体是4.*还是5.*已经忘了,以前yum命令一键安装的,但是现在使用yum缺少包,很蛋疼。吐槽已完!一、环境准备 1. 查看Linux版本: uname -a 或cat /etc/redhat-release 2.下载mysql安装包Linux版本 mysql官网下载https://www.mysql.com...

2019-08-01 20:48:32 606 1

转载 初识eclipse—git和github

eclipse的git插件安装与配置 1 git插件安装 2 git插件卸载 3 配置git插件 从git云端下载项目到本地 修改并提交自己的代码到云端 1 把修改好的文件上传到本地仓库 2 pull一下 3 提交代码到云端 31 简易方法直接上传到master分支 32 或者上传分支 小技巧 1 如何恢复未提交的修改文件 2 查看提交记录...

2018-09-04 17:09:44 158

转载 MyBatis代码自动生成(利用eclipse插件)--快速开发

MyBatis代码自动生成(利用eclipse插件)上一篇文章已经介绍了利用命令的方式自动生成mybatis代码,但是每次都去运行cmd命令感觉还是有点麻烦,所以找了些资料发现eclipse里面也可以安装插件自动生成代码,下面简单介绍一下,也是给自己以后使用时留一个存档。首先还是下载工具:http://download.csdn.net/detail/u010608551/9490134...

2018-08-24 10:22:35 549

转载 Java面试汇总

其实一直处于工作状态 的程序员,对于理论知识很慢慢变得生疏。这是我看到面试资料,感觉还是蛮全面的,同时也方便下他人。链接:https://blog.csdn.net/qq_18298439/article/details/80939968...

2018-07-30 10:38:38 136

转载 linux-solr7.20-tomcat8.052安装

系统环境solr-7.2.0.tgzapache-tomcat-8.0.52.tar.gzjdk-1.8.0_171_linux-x64_bin.tar.gzCentOS-7-x86_64-DVD-1708配置步骤1、解压 tar.gz 源码包,得到 solr-7.2.0/ 文件夹;2、创建目录 /usr/local/solr/,将 solr-7.2.0/server/ 下的文件夹 solr/ 复...

2018-06-15 11:11:53 417

转载 CentOS 7 下安装 Nginx

安装所需环境Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用CentOS7 作为安装环境。一. gcc 安装安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:yum install gcc-c++二. PCRE pcre-devel 安装PCRE(Perl Compatibl...

2018-06-13 10:52:51 159

转载 linux-svn卸载与安装

一、卸载yum remove subversion二、安装2.1云命令安装svn服务器yum install subversion2.1查看安装svn服务的版本svnserve --version2.3创建版本库1 cd /var/svn //先进入svn目录2 3 svnadmin create /var/svn/proname //用svn管理员创建proname库4 5 ...

2018-06-11 10:00:17 18308 2

转载 使用Spring3.1后的的Profile配置使不同环境加载不同配置文件

需求:项目运行在不同的环境中,每次运行项目的时候,都要重新手动配置配置文件,这样很容易出错,还好Spring3.1以后又出良心之作–profile,看了其他大佬一些做法,感触颇深,但仍然有疑惑,在这里提出来跟大家探讨一下。配置文件结构:|---config |---common |---common.properties |---dev |---co...

2018-06-11 09:47:47 600

转载 CentOS7配置防火墙

使用命令的方式配置CentOS7防火墙##Addfirewall-cmd --permanent --zone=public --add-port=80/tcp##Removefirewall-cmd --permanent --zone=public --remove-port=80/tcp##Reloadfirewall-cmd --reload复制代码检查是否生效firewall-cmd -...

2018-05-27 19:13:14 250

《架构设计思维导图整理》

架构设计思维导图整理,有架构风格

2023-04-25

高效能人士的七个习惯-思维导图

该资源是高效能人士七个习惯的思维导图,如需该书可以查看本人其他免费共享资料;该书的七个习惯是一个系统。要求人们以完善自我开始,进而寻求团队,最终要以终为始,使每个人走向自己的巅峰。对于渴望成功的人而言,做事的恒心和毅力,决定了成功的可能性;性格决定命运,气度影响格局。首先要改变自己的个人修为。该书没“性格”的字眼,但用了"习惯"二字。作者认为,习惯是知识、技能和意愿的交汇。知道自己要做什么,也清楚应该怎么做,更有这个意愿去做,三者的交汇构成个人行事做人的习惯。通过改变个人的习惯,实现个人性格的改变,能够改变自己的命运。 高效能的生活是有基本原则的,当人们学会并遵循这些原则,把它们融入到自己的品格中,才能享受成功与幸福。人们对自己所遇到的事情都有自己的解决思路,另一种说法就是“思维定式”。积极主动地去面对,所有的事情都有转变,人们的固定模式对于每一件事情不是好的一种解决办法,就需要思维定式的转换,从另一个角度出发去考虑问题,往往得到的结果是不错的。每个企业都讲究创新,打破传统,打破旧思维、旧模式,创新成为时代法宝

2023-04-24

空空如也

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

TA关注的人

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