qq_54658577
码龄4年
求更新 关注
提问 私信
  • 博客:9,124
    9,124
    总访问量
  • 33
    原创
  • 8
    粉丝
  • 60
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
加入CSDN时间: 2021-01-16
博客简介:

qq_54658577的博客

查看详细资料
个人成就
  • 获得10次点赞
  • 内容获得9次评论
  • 获得11次收藏
  • 博客总排名1,322,758名
创作历程
  • 33篇
    2021年
成就勋章
TA的专栏
  • 后端
    11篇
  • 多线程
    3篇
  • 安全
    4篇
  • jwt
    1篇
  • 负载均衡
    1篇
  • 反向代理
    1篇
  • 数据结构与算法
    17篇
  • 二叉树
    2篇
  • 排序
    7篇
  • 查找
    2篇
  • 递归
    4篇
  • 栈
    1篇
  • 链表
    2篇
  • 队列
    1篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 3

TA参与的活动 0

兴趣领域 设置
  • 后端
    spring
创作活动更多

王者杯·14天创作挑战营·第2期

这是一个以写作博客为目的的创作活动,旨在鼓励码龄大于4年的博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。 注: 1、参赛者可以进入活动群进行交流、分享创作心得,互相鼓励与支持(开卷),答疑及活动群请见https://bbs.csdn.net/topics/619735097 2、文章质量分查询:https://www.csdn.net/qc 我们诚挚邀请你们参加为期14天的创作挑战赛!

66人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

SpringBoot自动装配原理简述

1、问题的引出? 当我们使用spring boot时,已不需要像spring MVC那样配置很多文件,只需要配置部分文件,而大部分的配置文件都由spring boot给我们做了!2、以一个简单的demo为例 (1)spring boot主启动类@SpringBootApplication是一个很重要的注解,可以近似的把它看作是三个注解之和; (2)SpringBootApplication @...
原创
发布博客 2021.12.01 ·
766 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

线程间的定制化通信Demo

1、实验目的: 定制化: 1)定制线程执行的顺序 2)定制线程操作的次数创建三个线程:AA,BB,CC 以AA,BB,CC的固定顺序调用资源类中的方法,分别进行打印3,5,7次的操作。2、步骤 (1)创建资源类 condition中的方法: /...
原创
发布博客 2021.11.06 ·
203 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

线程间通信Demo

1、实验要求 使用四个线程AA,BB,CC,DD,AA,CC一个对象进行加1操作,BB,DD对一个对象进行减1操作。2、实验步骤 (1)创建资源类 以number为依据做加减操作判断,分别在资源类中添加加减方法使用ReentrantLock对象进行上锁和解锁。 其中: lock.lock(); // 代表上锁 lock.unlock(); // 代表解锁...
原创
发布博客 2021.11.06 ·
215 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

分别使用synchronized和Lock实现卖票案例

1、synchronized (1)创建资源类public int number代表门票的数量。 public synchronized void sale();卖票的方法,注意要使用sysnchronized修饰,才是使得这个方法能够自动上锁、自动解锁。// 创建资源类,定义属性和操作方法class Ticket{ // 定义票数 public int number = 30; // 方法卖票 public sync...
原创
发布博客 2021.11.03 ·
246 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Token前后端分离验证demo

1、Token介绍(摘取自官方网站) 官方网站:JSON Web Token Introduction - jwt.io1)token可以做权限的验证和信息的交换 2)token主要有三部分组成 分别是Header、Payload、Signature。 编码之后token呈xxxxx.yyyyy.zzzzz结构分别对应Header、Payload、Signature三部分。...
原创
发布博客 2021.10.23 ·
983 阅读 ·
0 点赞 ·
1 评论 ·
6 收藏

Nginx负载均衡

1、负载均衡概念负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。 简单来说:负载均衡就是多个服务器分摊多个请求,而不再是一台服务器处理所有的请求了。2...
原创
发布博客 2021.10.16 ·
818 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Nginx反向代理

1、实现目的 输入www.123.com可以访问tomcat页面。2、准备 1)windows下在hosts文件中配置映射 2)配置nginx 3)启动nginx和tomcat3、测试 访问url:www.123.com可以看到测试成功。...
原创
发布博客 2021.10.16 ·
91 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构与算法之霍夫曼树

1、霍夫曼树简介给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。2、霍夫曼树创建思想 (1)创建节点并实现Comparable接口(便于使用Collections.sort(.....);进行排序)class Node implements Comparable<Node>{ int v...
原创
发布博客 2021.09.21 ·
505 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

数据结构与算法之堆排序

1、堆排序简介堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。2、堆排序思想 假设一个堆的结构如下:(1)调整:从最后个非叶子节点[arr.length / 2 -1]开始也就是索引为1的这个节点开始调整以它为根节点的树。且以一个临时变量保存这个节点的数据,即:int temp = ar...
原创
发布博客 2021.09.19 ·
118 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构与算法之普通二叉树

1、二叉树简介二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点。2、二叉树图解 1)普通二叉树结构 2)满二叉树(只有最后一层为叶子节点) 3)完全二叉树3、二叉树的生成代码 1)节点// 创建节点class Hero...
原创
发布博客 2021.09.15 ·
246 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

数据结构与算法之插值查找

1、插值查找简介插值查找,有序表的一种查找方式。插值查找是根据查找关键字与查找表中最大最小记录关键字比较后的查找方法。插值查找基于二分查找,将查找点的选择改进为自适应选择,提高查找效率。2、插值查找思路 插值查找类似于二分查找,此处定义: int mid = left + (right - left) * (finalValue - arr[left]) / (arr[right - 1] - arr[left]);...
原创
发布博客 2021.09.08 ·
326 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

数据结构与算法之二分查找

1、二分查找简介二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。2、二分查找分析3、核心代码public static int erFen1(int finalValue, int[] arr, int left, int right) { System.out.println("调用方法"); int mid = (left + right...
原创
发布博客 2021.09.08 ·
146 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构与算法之归并排序

1、归并排序简介归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。2、归并排序思路解析...
原创
发布博客 2021.08.29 ·
91 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构与算法之快速排序

1、快速排序简介快速排序(Quicksort)是对冒泡排序算法的一种改进。2、快速排序的思路 从一个数组中找出一个数作为中间值,从中间值的左边找出一个大于中间值的数,移动到右边,从右边找出一个小于中间值的数移动到左边,然后分别将这个中间值的左边和右边作为一个数组,再继续从左边右边数组中找一个中间值,继续之前的操作直到左下标的索引大于等于右下标的索引。 举例: 以数组:int[] arr = { -9, 78,...
原创
发布博客 2021.08.28 ·
115 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构与算法之希尔排序

1、希尔排序简介希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。2、希尔排序思路: 假设数组为array,设循环条件for(int gap = array.lengh / 2; gap > 0; gap /= 2);1)第一次循环将...
原创
发布博客 2021.08.27 ·
147 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构与算法之插入排序

1、插入排序简介 有一组数据,假设第一个数据是一个有序表,后面其余的数据都是无序表,第一次拿出无序表中的第一个数据与有序表中的数据作比较,插入到合适的位置,有序表中插入处后面的元素也要响应下标加1。以此类推。2、插入排序核心实现代码insertIndex >= 0 && insertVal < array[insertIndex]insertIndex >= 0是为了约束,让循环跳出时...
原创
发布博客 2021.08.26 ·
278 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

数据结构与算法之选择排序

1、选择排序简介 遍历数组中的数据,找到数据中最小(最大)的一个,找到之后将其与最前面的数交换,随后不再考虑第一个数,从第二个数开始再次遍历找到最小的数,找到之后与第二个数进行交换,随后不再考虑第二个数,以此类推。package com.feng.sort;import java.util.Arrays;public class chooseSort { public static void main(String[] args) { int[] a = { 10...
原创
发布博客 2021.08.25 ·
88 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构与算法之冒泡排序

1、冒泡排序思路 假设定义一个数组array并将它初始化,int[] array = {1,5,3,2,4,6}; 那么第一次循环使array[0]与array[1]相比较,大的数向后移动小的数向前移动,这里我们需要借助中间变量。temp = array[j]; array[j] = array[j + 1]; ...
原创
发布博客 2021.08.24 ·
144 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构与算法之八皇后问题(递归)

1、八皇后问题分析 问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。此处我们用一维数组代替二维数组。 例:array[8] = [0,4,7,5,2,6,1,3]; 数组的下标加一代表棋盘的行,数组对应位置的值代表棋盘的列。public class Queue8 { // 皇后的最大数量 int max = 8; // 定义一个一维数...
原创
发布博客 2021.08.24 ·
333 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构与算法之迷宫回溯问题(递归)

1、创建一个迷宫 代码约定: 0:表示未走过的区域 1:表示墙壁 2:表示走过且为通路的区域 3:表示走过且路不通的区域public static void main(String[] args) { // 先创建二维数组模拟迷宫 int[][] map = new int...
原创
发布博客 2021.08.23 ·
185 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多