自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (2)
  • 收藏
  • 关注

原创 数据结构-链表及相关算法

哈希表在使用层面上可以理解为一种集合结构如果只有key,没有伴随数据value,可以使用HashSet结构(C++中叫UnOrderedSet)如果既有key,又有伴随数据value,可以使用HashMap结构(C++中叫UnOrderedMap)有无伴随数据,是HashMap和HashSet唯一的区别,底层的实际结构是一回事使用哈希表增(put)、删(remove)、改(put)和查(get)的操作,可以认为时间复杂度为O(1),但是常数时间比较大。

2023-04-21 19:57:53 526

原创 数据结构-树及相关算法

写二叉树的算法题,都是基于递归框架的,我们先要搞清楚。

2023-04-21 19:48:24 564

原创 Redis:数据结构

Redis对象系统还是先了**基于引用计数技术的内存回收机制。**对象的引用计数属性还带有对象共享的作用。集合对象底层实现可以是intset(整数集合)或者hashtable有序集合对象底层实现可以是ziplist或者skiplist。还包含一个用字典为有序集合创建了一个从成员到分值的映射。哈希对象底层实现可以是ziplist或者hashtable列表对象底层实现可以是ziplist或者linkedlist对象的空转时长,对象结构包含一个lru属性记录对象最后一次被命令程序访问的时间。

2023-02-18 16:17:05 664

原创 消息队列 ---nsq

单个nsqd实例旨在一次处理多个数据流。流称为“主题”,一个主题有 1 个或多个“通道”。每个通道都会收到一个主题的所有消息的_副本_。主题和通道道_不是_提前配置的。主题是在首次使用时通过发布到指定主题或订阅指定主题的通道来创建的。频道是通过订阅指定频道在首次使用时创建的。主题和通道都相互独立地缓冲数据,防止缓慢的消费者导致其他通道的积压(同样适用于主题级别)。一个通道可以并且通常确实连接了多个客户端。假设所有连接的客户端都处于准备接收消息的状态,则每条消息将被传递给随机客户端。消息是。

2023-01-19 11:43:01 2461

原创 Volatile介绍

Java语言规范第三版中对volatile的定义如下: java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某些情况下比锁更加方便。如果一个字段被声明成volatile,java线程内存模型确保所有线程看到这个变量的值是一致的。...

2022-08-15 23:32:31 326

原创 线程和线程池

继承Thread类创建线程的步骤为:(1)创建一个类继承Thread类,重写run()方法,将所要完成的任务代码写进run()方法中;(2)创建Thread类的子类的对象;(3)调用该对象的start()方法,该start()方法表示先开启线程,然后调用run()方法;2 实现Runnable接口实现Runnable接口创建线程的步骤为:(1)创建一个类并实现Runnable接口(2)重写run()方法,将所要完成的任务代码写进run()方法中(3)创建实现Runnable接口的类的对象,将该对象当做T

2022-08-15 23:31:24 304

原创 ThreadLocal详解

如果一个对象只具有弱引用,那就类似于可有可无的生活用品。弱引用与软引用的区别在于:只具有弱引用的对象拥有更短暂的生命周期。在垃圾回收器线程扫描它 所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。不过,由于垃圾回收器是一个优先级很低的线程, 因此不一定会很快发现那些只具有弱引用的对象。弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用所引用的对象被垃圾回收,Java 虚拟机就会把这个弱引用加入到与之关联的引用队列中。...

2022-08-15 23:29:42 190

原创 二叉树相关算法

二叉树

2022-08-15 23:25:05 170

原创 synchronized详解

对synchronized的了解synchronized 关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。在 Java 早期版本中,synchronized 属于 重量级锁,效率低下。为什么呢?因为监视器锁(monitor)是依赖于底层的操作系统的 Mutex Lock 来实现的,Java 的线程是映射到操作系统的原生线程之上的。如果要挂起或者唤醒一个线程,都需要操作系统帮忙完成,而操作系统实现线程之间的切换时.

2022-03-12 21:34:39 1132 1

原创 并发编程---基础

并发编程笔记基础知识1)程序、进程、线程、协程(纤程);2)线程有哪些状态;3)进程间的通信方法、线程间的通信方法。程序,进程,线程,协程程序:编译好的二进制文件,不占用资源。是含有指令和数据的文件 比如qq.exe进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。进程是**操作系统进行资源分配的最小单位,**其中资源包括:CPU、内存空间、磁盘IO等, 同一进程中的多条线程共享该进程中的全部系统资源.

2022-03-01 16:35:16 320

原创 Redis:集群(cluster)

redis:持久化redis:主从复制redis:哨兵redis:集群1 概述集群,即Redis Cluster,是Redis 3.0开始引入的分布式存储方案。集群由多个节点(Node)组成,Redis的数据分布在这些节点中。集群中的节点分为主节点和从节点:只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。集群的作用,可以归纳为两点:数据分区:数据分区(或称数据分片)是集群最核心的功能。集群将数据分散到多个节点,一方面突破了Redis单机内存大小的限制,

2022-01-23 15:47:25 4011

原创 Redis:哨兵(sentinel)

redis:持久化redis:主从复制redis:哨兵redis:集群1 概述1.1 作用从宏观角度回顾一下Redis实现高可用相关的技术。它们包括:持久化、复制、哨兵和集群,其主要作用和解决的问题是:持久化:持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。复制:复制是高可用Redis的基础,哨兵和集群都是在复制基础上实现高可用的。复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。缺陷

2022-01-23 15:44:51 1653

原创 Redis:持久化

redis:持久化redis:主从复制redis:哨兵redis:集群1 概述持久化的功能:Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;当下次Redis重启时,利用持久化文件实现数据恢复。除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置。Redis持久化分为RDB持久化和AOF持久化:前者将当前数据保存到硬盘,后者则是将每次执行的写命令保存到硬盘(类似于MySQL的binlo

2022-01-23 15:43:33 1054

原创 Redis:主从复制

redis:持久化redis:主从复制redis:哨兵redis:集群1 使用主从复制1.1 搭建环境为了便于示例操作,我们可以开启不同的端口实现不同的redis示例。在这里开启三个节点6379作为主机,6380,6381作为从机。实现一主二从。进入redis安装目录:配置文件在gconfig(根据自己的目录来操作)中,复制两个redis.conf文件,分别为redis6380.conf,redis6381.conf。然后修改对应的信息。端口pid 名字log文件名字dum.

2022-01-23 15:41:21 810

原创 java:容器(Collection)

本篇文章是关于Collection下的List,Set,Queue等的讲解,Map接口的实现类HashMap,LinkedHashMap,ConcurrentHashMap,HashTable的讲解看下面的这篇文章:Map接口下的实现类讲解容器相关问题1 QueueQueue 与 Deque 的区别Queue 是单端队列,只能从一端插入元素,另一端删除元素,实现上一般遵循 先进先出(FIFO) 规则。Queue 扩展了 Collection 的接口,根据 因为容量问题而导致操作失败后处理方式的.

2022-01-11 21:02:10 206

原创 Java 容器(Map)

本篇文章主要讲解Map下的实现类,重点讲解HashMap,ConcurrentHashMap。容器中其它文章看下面连接:Collection下List,Set,Queue讲解红黑树详解容器相关问题1 Map1.1 hashMap源码javaguide-hashMap讲述红黑树详解数组+链表+红黑树1.1.1 类的常量// 序列号private static final long serialVersionUID = 362498820763181265L;/** 缺省的初始数组长度.

2022-01-11 20:59:37 793

原创 Spring IOC(四):相关特性

5 容器其他相关特性的设计与实现下面对容器的一些其他相关特性的设计原理也进行简要的分析。这些特性都是在使用loC容器的时候会经常遇到的。5.1 ApplicationContext和Bean的初始化及销毁对于BeanFactory, 特别是ApplicationContext, 容器自身也有一个初始化和销毁关闭的过程。下面详细看看在这两个过程中,应用上下文完成了什么,可以让我们更多地理解应用上下文的工作,容器初始化和关闭过程可以简要地通过下图来表现。从图中可以看到,对ApplicationCon

2021-12-24 20:22:39 576

原创 Spring IOC(三):依赖注入

4 IOC容器的依赖注入上而对IoC容器的初始化过程进行了详细的分析,这个初始化过程完成的主要工作是在IoC容器中建立BeanDefinition数据映射。在此过程中并没有看到IoC容器对Bean依赖关系进行注人,接下来分析一下IoC容器是怎样对Bean的依赖关系进行注人的。假设当前IoC容器已经载入了用户定义的Bean信息,开始分析依赖注入的原理,首先,注意到依赖注入的过程是用户第一次向IoC容器索要Bean时触发的,当然也有例外,也就是我们可以在BeanDefinition信息中通过控制lazy-i

2021-12-24 20:11:48 296

原创 Spring IOC(二):初始化

3 Spring IOC容器的初始化过程简单来说,IoC容器的初始化是由前面介绍的refresh()方法来启动的,这个方法标志着IoC容器的正式启动。具体来说,这个启动包括BeanDefinition的Resource定位、载入和注册三个基本过程。第一个过程是Resource定位过程。这个Resource定位指的是BeanDefinition的资源定位,它由ResourceLoader通过统一的Resource接口来完成:这个Resource对各种形式的BeanDefinition的使用都提供了统一接口

2021-12-24 20:04:36 570

原创 Spring IOC(一):概述

2 IOC 容器系列的设计与实现:BeanFactory和ApplicationContext在Spring IoC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本功能;另一个是ApplicationContext应用上下文,它作为容器的高级形态而存在。应用上下文在简单容器的基础上,增加了许多面向框架的特性,同时对应用环境作了许多适配。有了这两种基本的容器系列,基本上可以满足用户对IoC容器使用的大部分需求了。2.1 Spr

2021-12-24 19:48:39 688

原创 22周总结

学习上:这一周主要再看JVM,复习之前学过的内容,学习新的内容,就要对这一部分的内容进行考核了。JVM这一部分的内容太多了,老是记住之后就又忘了,反反复复。还有就是在练算法,今天上午的蓝桥杯,结束之后真的是太难受了,题的难度确实不是很难,相比上一届的国赛,感觉要简单,但是简单的题答错了,有一道题还是我昨天刚看过的题,可以说完全一样,但是我还是写错了,最近算法练得有点少了,对于算法我感觉我就是好多题记住了大致的思路,没有自己的理解,忘记一点之后就敲不出来了,根本不算自己掌握了,这次国赛也给了我一个教训。以后要

2021-06-05 18:50:56 81

原创 21周总结

学习上:这一周在学JVM和做项目,做了好多天的小程序,终于可以使用了。在空闲的时间也再练习算法,感觉之前学的那些又忘了,还是要坚持刷题,下一周还有蓝桥杯,算法还是要好好的练一下,不然感觉这次就白送了,下周还要考核JVM的学习情况,我的进度太慢了,上篇才快看完,看视频学习确实有点慢,下周有一门课还要考试,这样一看下周的事好多,还好的是,现在每天的课都比较少了,有很多空闲时间在小组了。生活上:昨天突然感觉这一学期又要快结束了,过的可真快。期末考试也没剩下太多时间了,接下来需要慢慢的复习一下。避免到最后时间

2021-05-30 08:41:50 86

原创 20周总结

学习上:这一周还是在看JVM,上篇还在看,看视频学习的进度比较慢,主要概念性的东西比较多,看视频的时候老是打瞌睡。下一周应该可以开启下一个篇章了,进度要更快一点了,这一周开始做一个新的项目,小组信息管理项目,开始一边学习一边做项目了,项目现在登录功能已经做好了,下面该做授权的功能了。继续学习吧。...

2021-05-23 08:13:12 119

原创 19周总结

学习上:这一周做了一个商品的小程序,对于后端来说和以前的开发没什么区别,功能比较少,这一周基本已经写的差不多了,没有遇到太多的问题,遇到了一个跨域的问题,本来已经配置类CORS,但是因为我在授权成功之后直接用Response输出了,缺少了一个Access-Control-Origin 响应头,缺少这个响应头,浏览器就认为服务器端不允许跨域请求。JVM这一周基本没看,后端的他们几个JVM的进度都在我之前了,下一周主要学习JVM,再抽出一些时间练习算法。...

2021-05-16 08:46:59 81

原创 第18周总结

这一周,安排了学习计划,学习JVM,面试必问的知识。知识点比较多又比较碎,概念性的东西比较多。刚学习了一点。在这一周把之前没学习完的security学习完了,下一周准备学习JVM和看之前看了一点的eladmin,学习一下开源项目,也算实践使用security做项目。还有好多的知识没有学习,继续学习吧。继续。...

2021-04-24 19:14:59 74

原创 第17周总结

学习上:这一周一直在看算法,学习了labuladong算法小抄中的数组类型的和dfs算法,感觉太难了,还学习了一部分数据结构用栈实现队列等,还有一个星期蓝桥杯就要到来了,算法还有一些没有学,下一周继续学习算法,希望在蓝桥杯中有个好的成绩。继续。...

2021-04-10 22:48:52 103

原创 第16周总结

学习上:这一周主要再看算法,看了labuladuo的算法小抄,看到了一些算法框架,算法真的是太难了,在这一周主要看了链表和二叉树,太多的东西没有学了,看了他的算法小抄后就去LeetCode刷题。效果还可以吧,一些二叉树和链表的题能够做出来了,之前遗留下的问题也解答出来了。下面准备接着看他上面的数组和动态规划,还有好多没看,距离蓝桥杯没剩下多少时间了,剩下的时间就主要看算法了。上周说准备这一周吧security学习完,但是这一周的实验课好多,这一学期的课感觉好多。昨天开会,学长们说了好多没有学习的知识,还有

2021-04-04 09:33:01 75

原创 第15周总结

学习上:在这一周看了一个讲解如何学习开源项目的视频,然后去看了这个开源项目是eladmin,是一个前后端分离的项目,用的Vue和Springboot写的。以前我还学过一点入门的Vue,但是都忘得差不多了,然后就看了一些之前的笔记大致了解了一下。就通过路由找到了后端的登录代码,相比以前自己写的登录太菜了。太多的代码都看不懂,然后就想着去把springSecurity学习一下,security还没有学完,感觉太厉害了。在空余的时间学习算法,在看labiladuo的算法小抄,还没看多少,算法接下来要多补补了,下面

2021-03-29 19:33:48 71

原创 第14周总结

学习上:这一周,把上一周没有学完的redis学完了,感觉收获挺多的,这周轮到我讲课了,本来打算是讲解redis的,但是大一的还要听课,所以我就选择讲解mysql了,mysql是非常重要的,开始选择mysql讲解的时候是希望去讲mysql中的锁和索引这两个大的问题,复杂的查询是随带着讲一下的,但是当我去学习mysql的时候,发现锁和索引太不好理解了,我感觉不能够讲明白,并且在我翻看以前的笔记的时候,看到复杂查询那里,我在实际项目中很少用到,利用复合查询可以用一条语句就可以实现需要用好几条普通语句才能实现的功

2021-03-21 08:58:33 67

转载 docker核心概念(镜像、容器、仓库)及基本操作

docker核心概念(镜像、容器、仓库)及基本操作概要docker是一种linux容器技术。容器有效的将由单个操作系统挂管理的资源划分到孤立的组中,以便更好的在组之间平衡有冲突的资源使用需求。可简单理解为一种沙盒 。每个容器内运行一个应用,不同的容器之间相互隔离,容器之间也可以建立通信机制。容器的创建和停止都十分快速,资源需求远远低于虚拟机。好处能高效地构建应用。对于运维开发来说,能快速的交付和部署高效的资源利用轻松的迁移扩展简单的更新管理与虚拟机的比较docker与虚拟化

2021-03-14 22:24:50 211

原创 第13周总结

学习上:来到学校已经一个星期了,在学校的学习效率确实比在家里强太多了。目前的学习就是,一边学习redis,一边做算法,学redis的时候本来装了个虚拟机,配置好长时间,太麻烦了,最后还不能联网,就直接买了个服务器做练习,redis之前就学过了,已经忘得几乎没了,就记得之前学过,重新学一遍吧,记好笔记。前几天做了算法的dfs,刚开始看不懂逻辑,慢慢的读懂了一道题,然后就接连做了几道类似的,都做出来了,还以为学会了dfs,就去LeetCode找题,结果直接被打击了。还是套路没有摸清,只能慢慢来吧。...

2021-03-14 16:57:57 62

原创 DFS(深度优先搜索算法)——Java实现(含例题)

基本概念深度优先搜索算法(Depth First Search,简称DFS):一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。整个进程反复进行直到所有节点都被访问为止。属于盲目搜索,最糟糕的情况算法时间复杂度为O(!n)。回溯法回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,

2021-03-13 10:48:30 3390

原创 第12周总结

这一周本来是假期的最后一周,学校通知返校延迟了一周,在家的学习状态实在是不好,希望早点开学。蓝桥杯还有一个多月的时间,等开学了其他的事也会多了,学习时间肯定没有在家的时间多了,算法还在学习中,感觉算法太难了,只能抓紧学了。学习的状态不是太好,和之前相比差太多了,也快开学了,换个环境会好很多。继续。...

2021-02-28 14:35:58 97

原创 第11周总结

学习上:目前学习主要学习和练习算法,到目前为止对于算法,我一般的解法还是用数组,for循环,感觉并没有提升太多,算法的学习要抓紧一些了,马上就要开学了到时候的学习时间就更少了。在家里面学习效率太低了,只能尽量的去多做一些,前几天见表哥,他就是做开发的,他说应该尽快的去实习,多做项目,多练习,我也应该自己多做一些项目了,接下来找找自己可以做的项目,学习算法,学一些新东西。...

2021-02-20 22:28:03 79

原创 第10周总结

放假已经三周了,学习效率相比在学校中差很多。每天的空闲时间有很多,但是花在学习上的时间却没有想象中的多。每天目标定的很好,却不能去实现。干,坚持。学习上:目前我们写的项目,后端方面基本的部分已经完成了,刚刚遇到一个bug还没有解决,还有很多细节需要完善。算法的学习每天还在进行,只能慢慢来。生活上:主要的问题还是起床,懒惰太难克服了,起床也太难了。坚持吧,早睡早起。...

2021-01-30 23:20:24 74

原创 第9周总结

学习上:这一周没有学习太多的新知识,学习了几种排序算法,还有一些其他的知识。主要在做项目,项目的一些东西,在考虑时有些地方想错了,一直在改。在下一周算法的学习也要加快速度了,还有jpa的学习,项目使用的是jpa,一直在用,才发现jpa非常好的地方,还没学会。下周对这个jpa深入了解一些,项目的进度也要抓紧时间做,因为第一次前后端分离做项目,很害怕拖了后腿。改变这一周的坏习惯。生活上:这一周也是和起床作斗争的一周,有时成功,有时败给了懒。在家里面比学校里冷多了,起床更难了。不过还是可以的,能够按时打卡

2021-01-23 21:20:19 146 2

原创 第8周总结

学习上:放假已经一个星期了,在家学习状态比不上在学校,也一直在学习当中,假期里老师分配了任务,我和小组的几个人一块做一个项目–考试系统。应该算第一次做前后端分离的项目。第一次用springboot做项目,遇到了很多新的内容如:jpa,jwp等等。一边学习一边做项目。算法也是平常必不可少的练习 ,算法是真难啊,一定要吃透它。慢慢来吧!生活上:在家里面和学校很不同,琐事也比较多了。每天还是会按时打卡学习,尽量投入到学习中的状态。...

2021-01-17 15:17:55 147 4

原创 第7周总结

学习:前几周一直在做项目,这一周对项目修改一部分内容,更多的时间去学习了spring-boot,谈一下spring-boot。刚学spring-boot的时候,先是写了一个Hello Word的案例,使用idea一键就搭建好了一个spring-boot项目,然后直接去写控制器就好了。相对于spring简直是太简单了。但是下面的一节课直接懵了(菜),讲的是自动配置原理,讲的是源码。一些底层的知识,直接不会了。然后就先去看了spring注解版的讲解对一些注解了解的更多了,再回头看spring-boot就好理解

2020-12-20 14:54:48 87

原创 第6周总结

学习上:这一周基本上没有学习新的东西,好像是在星期一的时候,学长通知在周六进行考核也就是今天。所以在这一周中都在抓紧时间做项目,在周四基本上就完成了项目,周五改bug,不测试不知道好多的bug花了一天的时间总算是可以“拿出手了”。考核在下午开始,首先我讲解了我们的项目功能,刚开始还有点紧张(需要锻炼锻炼)在讲的过程中,学长学姐提出了好多存在的问题,我们的项目确实存在这些问题。比如说对用户权限管理这一块做的不好,还有后台对用户信息的修改完全不符合逻辑,还有对安全的管理不够(密码验证,找回密码等等)这些bu

2020-12-12 21:58:40 90

原创 第5周总结

上一周说过要复习一下之前学过的知识,在这一周利用做项目的空闲时间对多线程和反射复习了一部分,多线程复习了线程,进程的概念,创建线程的三种方式线程,线程状态等等。反射是框架的灵魂,反射复习了三种拿到class类的方式,获取私有,构造方法...

2020-12-06 13:33:48 75

wampserver-apache--64b.zip

wampserver-apache--64b.zip

2020-05-03

VisualSVN-5.5.0.msi

SVN管理代码的很好的一个方式

2020-05-01

空空如也

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

TA关注的人

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