自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据库连接池

概述数据库连接池是负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。那么其中的运行机制又是怎样的呢?今天主要介绍一下数据库连接池原理和常用的连接池。01 为什么要使用连接池数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。 一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一

2021-04-15 19:08:15 74

原创 图的基本使用

1、图的表现形式1.1、邻接矩阵1.2、邻接表1.3、图的作用1.4、代码实现package com.qingchengxiaoye.graph;import java.util.ArrayList;import java.util.Arrays;public class Graph { private ArrayList<String> vertexList;//存储顶点集合 private int[][] edges;//存储图对应的临界矩阵

2021-03-29 21:44:19 224

原创 树-从入学到入坟

1、树的概念1.1、树的常用术语1.2、二叉树2、树的遍历2.1、前中后序遍历代码实现public class BinnaryTree { public static void main(String[] args) { BinaryTree binaryTree = new BinaryTree(); HeroNode root = new HeroNode(1, "宋江"); HeroNode node2 = new Her

2021-03-27 13:15:30 86

原创 数组链表存储形式分析

1、数组2、链表3、树

2021-03-21 11:12:05 158

原创 哈希表

1.1、哈希表基本介绍1.2、思路分析1.3、代码实现package com.qingchengxiaoye.hashtab;import java.util.Scanner;public class HashTabDemo { public static void main(String[] args) { HashTab hashTab = new HashTab(7); String key = ""; Scanner sc

2021-03-21 10:37:00 43

原创 七种基本的排序算法

排序时间复杂度1、冒泡排序1.1、实现思路1.2、实现代码public class Demo1 { public static void main(String[] args) { int [] a=new int[80000]; for (int i = 0; i < 80000; i++) { a[i]= (int)(Math.random()*80000); } Date date = n

2021-03-20 21:41:45 87

原创 四种基本的查找算法

1、顺序(线性)查找1.1、实现思路1.2、实现代码public class Demo1 { public static void main(String[] args) { int [] arr={1,9,5,2,8,4,3}; int i = seqSearch(arr, 3); if (i==-1){ System.out.println("没有查找到要查找的值"); }else {

2021-03-20 21:39:56 225

原创 面试整理

1、static1.1、作用为特定类型或者对象分配单一的存储空间,而与创建对象的个数无关。实现某个方法与类而不是与对象关联。1.2、原理静态资源是在类初始化的时候加载出来的,而非静态方法是在类new的 时候加载出来的。静态资源,是实例间共享的,换言之,只要一处改变,那就全部都改变。调用可以直接类名.方法名,或者就是类名.属性名非静态可以调用静态,但是反过来就不行,因为静态是在类初始化的时候就初始化了1.3、静态块静态代码块里面的代码执行一次,且只在初始化

2021-03-18 21:01:44 105 1

原创 SpringCache

简介基本概念整合引入依赖​````````<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <dependency> <g

2021-03-17 13:42:03 84

原创 分布式锁

锁-时序问题要保证原子操作必须在同一把锁里面,不然会出现不一致的问题本地锁模拟分布式锁分布式锁基本原理实现阶段一阶段二阶段三加锁要做成原子性,也就是加锁和设置过期时间要是原子性阶段四最终redisson现在的企业开发一般采用redisson实现分布式锁,分布式对象等功能功能框架引入依赖 <dependency> <groupId>org.redisson</groupId> ..

2021-03-16 21:24:43 70

原创 JVM入门笔记整理

Java体系结构类加载器作用加载Class文件流程双亲委派机制当某个类加载器需要加载某个.class文件时,它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类。类的加载是现在根加载器BOOT中寻找是否有,如果没有就从拓展类加载器里面找,再没有才从自己的应用程序加载器里面找。rt.jar就是java核心的加载器在介绍双亲委派机制的时候,不得不提ClassLoader(类加载器)。说ClassLoader之前,我们得先了解下Java的基本

2021-03-16 16:08:32 64

原创 Docker使用笔记

基本设置开机自启动systemctl enable docker.service关闭开机自启动systemctl disable docker.service设置镜像加速器底层原理docker常用命令帮助命令镜像命令容器命令设置容器自启动docker update mysql --restart=always常用其他命令小结作业nginx端口暴露tomcatcp -r webapps.dist

2021-03-16 13:24:42 85

原创 2021-02-20工作日志

SpringSecurity这个安全框架的本质就是采用一条很长的过滤链,然后通过配置过滤链进行一系列的操作Web核心配置类继承WebSecurityConfigurerAdapter密码校验由于框架有密码校验,默认是没有校验工具的,所有有必要自定义一个校验工具,这个时候可以采用在配置类中使用@Bean加入到容器中,从而就有了密码校验当然如果不想采用密码校验可以直接return new nopasswordEncoder;账号设置内存配置直接采用inMemoryAuthenticat

2021-02-20 14:09:34 282

原创 2021-02-09工作日志

异常处理学会了使用redis,也知道了穿透 雪崩 击穿 这一些面试比较火热的问题,雪崩雪崩就是在一定时间内,大量的缓存失效,解决办法主要有三种数据预热就是先让需要的缓存先存起来,还有就是设置不同的过期时间限流降级限制流量,通过加锁或者队列限制数据库写缓存的数量 降级就是降低其他低流量 业务的级别 例如在双十一的时候 先关闭评论 退款这些服务,以保证重要的进行redis高可用多设置几台redis服务器,以保证redis的高可用,也即是异地多活击穿击穿就是非常热频的点一直被访问,例如

2021-02-10 11:51:56 117

空空如也

空空如也

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

TA关注的人

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