自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HashMap底层原理源码

HashMap是基于哈希表的Map接口的实现,是以key-value存储形式存在,即主要用来存放键值对,HashMap的实现不是同步的,这也就意味着它不是线程安全的。它的key、value值都可以为null。此外,HashMap中的映射不是有序的JDK1.8之前的HashMap是由数组+链表组成的,数组是HashMap的主体,链表则主要是为了解决哈希冲突()而存在的(解决冲突)。JDK1.8之后在解决哈希冲突有很大的变化,

2022-11-13 21:09:36 1157 1

原创 力扣209题:长度最小的子数组

在暴力解法中,是一个for循环滑动窗口的起始位置,一个for循环为滑动窗口的终止位置,用两个for循环 完成了一个不断搜索区间的过程。此时subLength为3,j指针再右移,sum刚好为s,此时subLength为2,所以最终返回长度为2。窗口的起始位置如何移动:如果当前窗口的值大于s了,窗口就要向前移动了(也就是该缩小了)。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。所以 只用一个for循环,那么这个循环的索引,一定是表示 滑动窗口的终止位置。

2022-10-31 15:31:56 435

原创 八大排序之归并排序

java中的Collections.sort()方法使用的是归并排序而不是效率最高的快速排序。原因是因为归并排序相比于快排有一个主要的优点:归并排序是稳定的,也就是说归并排序不会改变相等元素的顺序。归并排序最吸引人的性质是它能够保证将任意长度为N的数组排序所需时间和NlogN成正比;它的主要缺点则是它需要的额外空间和N成正比.归并就是将两个有序数组归并成一个更大的有序数组。

2022-10-25 15:15:22 375

原创 八大排序之选择排序

首先找到数组中最小的元素,其次,将他与数组的第一个元素交换位置(如果第一个元素就是最小元素,就自己和自己交换)。再次,就在剩下的元素中找到最小的元素,将其与第二个元素进行交换位置。选择排序的内循环只是在比较当前的元素与目前已知最小的元素,每次交换都能排定一个元素,因此交换次数总次数为N。所以算法的时间效率取决于比较的次数。2、数据移动是最少的。每次交换都会改变两个数组元素的值,因此选择排序用了N次交换——交换次数和数组大小是线性关系。对于长度为N的数组,选择排序大约需要N^2/2次比较和N次交换。

2022-10-24 22:02:36 223

原创 ArrayList的源码解读

对ArrayList的源码简单讲解

2022-10-16 22:44:36 431

原创 详细介绍LinkedList

对LinkedLIst链表的基本api简单了解

2022-10-15 23:56:17 586 2

原创 力扣的反转链表

简单记录下想法

2022-09-10 12:40:06 200

原创 力扣的有效数独

力扣的有效数独

2022-08-31 22:35:25 216

原创 力扣:移动零

力扣的移动0

2022-08-31 20:29:47 122

原创 Mysql的索引

简单的索引快速入门

2022-08-22 23:01:58 205

原创 设计数据库

设计合格数据库

2022-08-22 18:11:21 235

原创 Sql中的触发器(Triggers)

触发器简单介绍

2022-08-14 18:48:36 2124

原创 谷粒商城的常见错误

记录学习谷粒商城时遇见的错误

2022-08-11 12:00:31 715

原创 Redis的主从复制和集群

Redis主从复制集群简单讲解

2022-08-04 11:38:12 62

原创 Redis持久化操作

Redis持久化操作

2022-08-04 11:37:18 155

原创 Elasticsearch

es简单使用

2022-07-14 23:41:17 261

原创 Redis的缓存穿透、缓存击穿和缓存雪崩

Redis常见问题

2022-06-29 22:41:40 157

原创 Redis的事务和锁机制

redis的事务锁

2022-06-29 11:46:15 294

原创 Doker的容器数据卷

数据卷的概念及作用问题一:答:不会,因为宿主机依然存在,数据卷没被销毁问题二:答:不可以直接交换文件,但是可以通过宿主机的数据卷进行交换文件问题三:答:将数据卷和这些容器挂载,在进行交互配置数据卷............

2022-06-28 18:06:55 91

原创 JavaScript的BOM和DOM和表单

js的bom、dom、表单

2022-06-27 16:08:06 109

原创 统一网关Gateway

Gateway

2022-06-25 10:42:00 292

原创 http客户端Feign

feign

2022-06-23 17:29:41 192

原创 Nacos注册中心

Spring cloud的Alibaba版本的Nacos注册中心

2022-06-23 16:22:17 297

原创 Ribbon负载均衡

Ribbon负载均衡

2022-06-21 23:09:31 76

原创 Spring cloud的Eureka注册中心

Eureka的注册中心

2022-06-21 16:38:14 256

原创 SpringCloud概述

springcloud简单介绍

2022-06-21 12:03:43 66

原创 Dubbo和zookeepper

Dubbo概述官网https://dubbo.apache.org/zh/RPC:分布式架构Dubbo的快速入门1、zookeeper的安装2、spring和springmvc的整合

2022-06-20 17:27:11 162

原创 八大排序之希尔排序

希尔排序希尔排序是一种基于插入排序的排序算法。对于大规模乱序数组插入排序很慢,因为他们只会交换相邻的元素,因此元素只能一点一点的从数组一段移动到另一端。如果主键最小的元素正好再数组的尽头,要将她挪到正确的位置就需要N-1次移动,希尔排序为了加快速度简单的改进了插入排序,交换不相邻的元素以对数组的局部进行排序,并最终用插入排序将局部有序的数组排序。希尔排序的思想就是使数组中任意相隔为h的元素都是有序的,这样的数组称为h有序数组。实现希尔排序的一种方法就是对于每个h,用插入排序将h个子数组独立的排序。但

2022-05-22 19:03:31 272 1

原创 八大排序之插入排序

插入排序在计算机中,为了给要插入的元素腾出空间,我们需要将其余所有元素在插入前都向右移动一位,这种算法就是插入排序与选择排序一样,当前索引左边的所有元素是有序的,但他们最终位置不确定,为了给更小的元素腾出空间,他们可能会被移动。但当所有索引到达数组右端时,数组排序就完成了和选择排序不同的是,插入排序所需要的时间取决于输入中元素的初始顺序。例如:对一个很大且其中元素已经有序(或接近有序)的数组将会比随机顺序的数组或是逆序的数组进行排序快的多对于随机排列的长度为N且主键不重复的数组,平均情况下插入排序所

2022-05-21 11:51:23 209

原创 八大排序之选择排序

选择排序首先学习最简单的排序,即选择排序首先我们需要在数组中找到最小的元素,将其与第一个元素交换位置其次在剩下的元素中找到最小的元素,与第二个元素进行交换如此反复至所有元素都排序完毕因为每次排序都能排定一个元素,所以交换总次数是N,所以算法时间效率取决于比较的次数对于长度为N的数组,选择排序大约需要N^2/2次的比较和N次的交换因此选择排序有两个鲜明特点运行时间和输入无关为了找出下最小元素而去扫描一遍数组并不能为下一次扫描提供信息,其他算法可能会善于利用输入的初始状态数据移动是最少的

2022-05-20 17:36:03 265

原创 MongoDB快速入门

应用场景下载与安装https://www.mongodb.com/try/download/community?jmp=docs再解压目录下创建一个data文件夹,在data文件夹在创建db目录然后进入bin目录并cmd输入命令mongod --dbpath=..\data\db初始化mongodb数据库,查找端口(port)使用客户端还是在bin目录下cmd,输入指令即可打开客户端(不要关闭上图的命令管理,不然会报错,原因是为其为启动MongoDB)mongo用nav.

2022-05-17 10:39:26 225

原创 RabbitMQ详细讲解

Rabblit概述JMS

2022-05-12 19:57:05 551

原创 中间件之分布式系统MQ简单介绍

MQ的基本概念小结:MQ:消息队列,存放消息的中间件分布式系统通信有两种方式:直接远程调用和借助第三方完成简介通信发送方称为生产者,接收方称为消费者MQ的优势应用解耦没有MQ的状态有MQ的状态异步提速无MQ的状态有MQ的状态削峰填谷无MQ的状态有MQ的状态应用解耦:提高系统容错性和可维护性异步提速:提升用户体验和系统吞吐量削峰填谷:提高系统稳定性MQ的劣势PS:面试常考点:如何保持数据的一致性常见MQ的产品.

2022-05-09 21:32:41 452

原创 Java多线程

进程线程多线程实现方式public class MyThread extends Thread{ @Override public void run() { for (int i = 0; i<100; i++){ System.out.println(i); } }}public class ThreadDemo1 { public static void main(String[] arg

2022-04-28 21:09:54 703

原创 Java8的Lambda表达式

java8的官网,可以查看多了什么东西https://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.htmlLambda表达式

2022-04-27 14:46:30 1163

原创 Java的反射

类加载类加载器public class ClassLoaderDemo1 { public static void main(String[] args) { //static ClassLoader getSystemClassLoader():返回用于委派的系统类加载器 ClassLoader c=ClassLoader.getSystemClassLoader(); System.out.println(c);//AppClassLo

2022-04-26 20:24:26 403

原创 Java的IO流

File类PS:注意:单反斜杠是转义字符!两个反斜杠表示一个反斜杠public class FileDemo { public static void main(String[] args) { //File:File(String pathname):通过指定的路径名字字符串转换为抽象路径名来创建新的File实例 File file=new File("D:\\test\\java.txt"); System.out.println(file)

2022-04-25 20:56:35 524

原创 项目的部署

人工部署我在idea编辑器下创建了一个简单的SpringBoot工程,就是在浏览器上显示HelloWorld的简单工程,我把它打包后传递给Linux,最后在Linu运行java -jar SpringBoot_Hello-0.0.1-SNAPSHOT.jar我们在Windows浏览器输入网址localhos:8080/hello却没有页面,这是为什么了?原因是我们没有关闭防火墙,没有保证8080端口对外开放...

2022-04-25 12:04:20 840

原创 Ubuntu安装文件

安装Java首先在官网下载linux版本的jdk然后传给linux,在解压到/usr/local目录下,在进入/url/local目录,并完成环境配置tar -zxvf jdk-8u331-linux-x64.tar.gz -C /url/localcd /url/localsudo vim /etc/profile在文件末尾处添加下面的代码JAVA_HOME=/usr/local/jdk1.8.0_331PATH=$JAVA_HOME/bin:$PATH检测是否配置成功java

2022-04-24 17:32:32 1666 1

原创 Java的Map集合和Collections

Map集合概述public class MapDemo { public static void main(String[] args) { Map<String,String> map=new HashMap<>(); //V put(K key, V value) 将指定的值与映射中的指定键值关联 map.put("name","zhangsan"); map.put("age","18");

2022-04-24 10:58:20 259

空空如也

空空如也

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

TA关注的人

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