自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HashMap常见面试题

1.HashMap 的数据结构?jdk7 数组+单链表jdk8 数组+单链表+红黑树2.传统HashMap的缺点(为什么引入红黑树?)JDK 1.8 以前 HashMap 的实现是 数组+链表,即使哈希函数取得再好,也很难达到元素百分百均匀分布。当 HashMap 中有大量的元素都存放到同一个桶中时,这个桶下有一条长长的链表,这个时候 HashMap 就相当于一个单链表,假如单链表有 n 个元素,遍历的时间复杂度就是 O(n),完全失去了它的优势。针对这种情况,JDK 1.8 中引入了 红黑树(查找

2021-06-25 16:56:42 158

原创 单链表反转

递归法public class test { public static void main(String[] args) { Node head = new Node(0); Node node1 = new Node(1); Node node2 = new Node(2); Node node3 = new Node(3); head.setNext(node1); node1.setNext(node2); node2.setNext(node3); // 打印

2021-06-22 10:12:49 104

原创 细说浏览器输入URL后发生了什么

本文摘要:1.DNS域名解析;2.建立TCP连接;3.发送HTTP请求;4.服务器处理请求;5.返回响应结果;6.关闭TCP连接;7.浏览器解析HTML;8.浏览器布局渲染;总结当我们在浏览器输入网址并回车后,一切从这里开始。一、DNS域名解析我们在浏览器输入网址,其实就是要向服务器请求我们想要的页面内容,所有浏览器首先要确认的是域名所对应的服务器在哪里。将域名解析成对应的服务器IP地址这项工作,是由DNS服务器来完成的。客户端收到你输入的域名地址后,它首先去找本地的hosts文

2021-06-17 14:22:10 254

原创 斐波那契数列

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368……特别指出:第0项是0,第1项是第一个1。第一种方法:递归public static int Fibonacci(int n) { if(n == 0) { return 0; } if(n == 1) { re

2021-06-16 16:46:50 250

原创 给定一个正整数M,请构造出一个长度为M的数组arr,要求,对任意的i、j、k三个位置,如果i<j<k,都有arr[i] + arr[k] != 2*arr[j],返回构造出的arr

// 生成长度为size的达标数组 // 达标:对于任意的 i<k<j,满足 [i] + [j] != [k] * 2 public static int[] makeNo(int size) { if (size == 1) { return new int[] { 1 }; } // size // 一半长达标来 // 7 : 4 // 8 : 4 // [4个奇数] [3个偶] int halfSize = (size + .

2021-06-15 17:22:23 249

原创 给定一个N*N的矩阵matrix,只有0和1两种值,返回边框全是1的最大正方形的边长长度。 例如: 01111 01001 01001 01111 01011 其中边框全是1的最大正方形的大小为4*4

public static void setBorderMap(int[][] m, int[][] right, int[][] down) { int r = m.length; int c = m[0].length; if (m[r - 1][c - 1] == 1) { right[r - 1][c - 1] = 1; down[r - 1][c - 1] = 1; } for (int i = r - 2; i != -1; i--) { if (m[i][

2021-06-11 14:21:19 756 2

原创 有一些排成一行的正方形,每个正方形已经被染成红色或者绿色

1、枚举每个分界线,让左边都变R,右边都变G,需要涂的数量2、准备辅助数组,统计0-i有几个G,统计 i- length 有几个R这样枚举的时候,直接可以拿值// RGRGR -> RRRGG public static int minPaint(String s) { if (s == null || s.length() < 2) { return 0; } char[] chs = s.toCharArray(); int[] right = new int[

2021-06-10 16:51:23 309

原创 括号配对问题

括号有效配对是指:1)任何一个左括号都能找到和其正确配对的右括号2)任何一个右括号都能找到和其正确配对的左括号有效的: () (()) ()() (()()) 等无效的: () )(等问题一:怎么判断一个括号字符串有效?问题二:如果一个括号字符串无效,返回至少填几个字符能让其整体有效问题一:public static boolean vaild(String s){ char[] str = s.toCharArray(); int count = 0; for(int i = 0;i

2021-06-08 17:34:26 486

原创 给定一个有序数组arr,从左到右依次表示X轴上从左往右点的位置。给定一个正整数K,返回如果有一根长度为K的绳子,最多能盖住几个点?绳子的边缘点碰到X轴上的点,也算盖住

给定一个有序数组arr,从左到右依次表示X轴上从左往右点的位置。给定一个正整数K,返回如果有一根长度为K的绳子,最多能盖住几个点?绳子的边缘点碰到X轴上的点,也算盖住public static int maxPoint1(int[] arr, int L) { int res = 1; for (int i = 0; i < arr.length; i++) { int nearest = nearestIndex(arr, i, arr[i] - L); res = Math.max(

2021-06-08 14:56:21 288

原创 Eureka高可用

搭建Eureka集群创建application-peer1.yml文件spring: profiles: server1server: port: 8761eureka: instance: hostname: localhost client: #声明自己是服务端 # 表示是否注册自身到eureka服务器 registerWithEureka: ...

2020-04-07 22:19:11 90

原创 Java设计模式之观察者模式

Java设计模式之观察者模式有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。实现方式,用Java的内置的API实现观察者模式,主题对象继承Observable类,观察者对象实现Observer接口。测试我们的观察者模式:public class DogMain...

2020-03-29 21:11:04 90

转载 redis持久化的几种方式

1、前言Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”)...

2019-09-27 16:53:46 80

原创 Mybatis的一级缓存和二级缓存的理解和区别

1.一级缓存和二级缓存的区别一级缓存基于sqlSession默认开启,在操作数据库时需要构造SqlSession对象,在对象中有一个HashMap用于存储缓存数据。不同的SqlSession之间的缓存数据区域是互相不影响的。 一级缓存的作用域是同一个SqlSession,在同一个sqlSession中两次执行相同的sql语句,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次会从缓存...

2019-09-17 14:09:34 3910 1

原创 MyBatis中的$和#

这是一次代码优化过程中发现的问题,在功能优化后发现部分数据查不到出来了,问题就在于一条sql上的#和$。下图为两条sql:select * from user where id in (${uid});select * from user where id in (#{uid});从上面可以看出 in (KaTeX parse error: Expected 'EOF', got '#' ...

2019-09-12 10:17:38 190

原创 Eureka——微服务的注册与发现

1 Eureka 简介Eureka 是Netflix 开源的服务发现组件, Spring Cloud 将其集成在 Spring Cloud Netflix 中,实现服务的注册和发现。Eureka 主要包含两个组件: Eureka Server 和 Eureka Client。 两者的作用如下:Eureka Server 提供服务发现的功能, 各个微服务会将自己的信息注册到Eureka Serv...

2019-09-03 12:21:01 124

空空如也

空空如也

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

TA关注的人

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