自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (6)
  • 收藏
  • 关注

原创 详谈MySQL索引(为什么要有索引?为什么MySQL的索引采用B+树?)

为什么要有索引?(索引出现的原因)先总说:减少访问数据的总量,相应的减少磁盘IO操作。细说:磁盘上的存储空间被划分成了一页页的磁盘页,数据库中每个表的数据就一行行的存储在磁盘页中。访问数据的时候磁盘就需要每次至少将一页磁盘页的数据读取到内存中,而磁盘IO的性能非常低,从而严重的影响数据库系统的性能。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v9qOuxKt-1613888203978)(D:\Application_Steup_Local\Typora..

2021-02-21 14:17:33 382 1

原创 IDEA无法创建Spring Initializr项目,并且报错Initialization failed.. Please check URL, network and proxy setting.

错误信息如下:Initialization failed for 'https://start.spring.io'Please check URL, network and proxy settings.Error message:Error parsing JSON response解决办法:选用custom:https://start.aliyun.com/成功创建spring initialize工程...

2020-06-01 19:18:42 1164

原创 关系型数据库和非关系型数据库(MySQL和Redis)——一点自己的理解

关系型数据库的意思大致就是:user用户,他有name,age,sex等等来与用户有依赖关系的字段。借助于集合代数等数学概念和方法来处理数据库中的数据非关系型数据库的名字叫Not Only Sql,简化过来就叫NoSql,所以看着就像是非关系型数据库,然后我们再顾名思义,就是数据之间没有关系的数据库。如果从名字上来看,我觉得可以叫做不仅仅是关系型的数据库,更为恰当,当然,我们也不能否认,这类数据库确实在数据关联之间更为自由,约束条件更少,(甚至没有),但是这并不能阻挡它的发展,以“键值对”为基..

2021-08-14 23:47:20 628

原创 2022届秋招——面经(阿里健康实习二面)

阿里健康实习二面(56min)没有自我介绍,直接开始找出连续数组的最大值top k问题以及怎么优化链表排序问题以及时间复杂度和怎么优化股票交易问题:(一次交易,两次交易,不限制次数交易)智力题:毒药与老鼠的问题智力题:水杯倒水问题HashMap为什么是线程安全的?以及怎么保证是线程安全的?MySQL中B树和B+树的区别?线程池的参数你都说一下什么意思?说一下拒绝策略吧,平时开发中一般使用那种说一下阻塞队列吧,说一下他们底层怎么实现的然后LinkedBlockingQueue一定是

2021-07-13 11:49:20 483

原创 2022届秋招——面经(端点网络科技二面——提前批)

端点网络二面(视频面30min)自我介绍聊项目(大概说了6分钟)撕题(翻转二叉树ide上写的,讲解一下)spring和springboot的区别?springboot是怎么管理第三方库的?(jvm)new 一个对象的过程?(怎么进行分配内存)垃圾回收算法?设计模式:单利模式(先说一下懒汉式和饿汉式的区别,共享ide手写单利模式,你写的为什么要双重检查)和适配器模式(适配器模式在哪里用到了,为什幺要这样做)maven常见的命令知道吗?git使用过没?老家哪里的?南京和杭州工作地你怎么选择

2021-07-13 11:48:12 688

原创 2022届秋招——面经(端点网络科技——提前批)

一面(电话面)自我介绍分别介绍一下你的两个项目?追问第二个项目的细节怎么实现的——给什么人用的,不同人的权限校验怎么做的?(项目问了很多细节问题大概10分钟)说一下SpringBoot的启动原理吧或者自动装配原理?用到了MySQL是吧,说一下数据库的三范氏存储引擎选用的是什么?为什么要选这个存储引擎?主键索引和普通索引的区别主键索引为什么是连续的?说一下B+树吧数据库的可重复读你知道底层怎么实现的吗?说一下你项目中用到了的kafka吧,为什么要用kafka呢?kafka中为什么要设

2021-07-13 11:47:18 295

原创 2022届秋招——面经(山东青岛鼎信通讯——提前批)

自我介绍你是哪里人?你本科是自动化,研究生是控制工程,为什么要做Java?本科成绩:班级排名,年级排名研究生成绩:班级排名,年级排名我说我本科学过计算机网络,然后问了七层模型是啥?TCP和UDP的对比http和ftp在哪一层,dns解释一下工作原理你平时是自学Java的吗?通过什么方式自学的呢?Java常用的权限访问修饰符,说细一点重载和重写的区别对比接口和抽象类区别对比常见的异常类(Error和Exception)框架:sp..

2021-07-08 09:10:08 1574 3

原创 2022届秋招——面经(阿里健康实习一面)

阿里健康实习面试41分钟自我介绍(说一下你研究生期间做的项目吧)重载和重写为什么要使用反射,反射的使用场景?集合()List,ArrayList,LinkedList,Map,HashMap(1.7和1.8)以及ConcurrentHashMap(1.7,1.8),各种优缺点,put value的过程,为什么线程不安全?CMap怎么保证线程安全的?并发度怎么呢?怎么理解原子性,有序性,可见性,要举例子数据库存储引擎有哪些,各有什么优缺点,深入细节为什么需要索引,不用索引行不行索引的使用

2021-07-08 09:09:00 434

原创 2022届秋招——面经(武汉联易融公司)

全程大概35分钟,2个面试官。常用的集合类——List(答了ArrayList和LinkedList),Map(答了HashMap),然后继续追问线程安全的List(答了Vector,Collections.SynchronizedList,CopyOnWriteArrayList)Map中(HashTable,HashMap中jdk1.7和1.8细节,扩容,线程怎么不安全的。Collections.SynchronizedMap以及ConcurrentHashMap,又细讲了1.7和1.8中

2021-07-08 09:07:18 551

原创 在Centos上启动SpringBoot项目,出现org.eclipse.jetty.servlet.Servlet

问题描述:我在Ubuntu服务器上开启Tomact用浏览器去访问的时候报这个错:而且关闭Tomcat去访问8080端口一样报这个错逐步排查最终确定是在我们在项目中,使用kafka的时候,使用了zookeeper,在zookeeper上开启了一个./zkServer.sh zookeeper服务的影响当关闭zookeeper服务开启Tomcat的时候就能正常访问挖个坑啊,zookeeper可能内置了jetty。解决方案我们既要使用kafka,那么我们就使用kafka内部自带的zookpee

2021-05-23 16:37:19 966

原创 项目在idea中运行正常,打包jar后运行就报错Template might not exist or might not be accessible的解决方法

报错情况[http-nio-80-exec-15] ERROR o.t.TemplateEngine - [process,1136] - [THYMELEAF][http-nio-80-exec-15] Exception processing template "/kefu/chat/chat": Error resolving template [/kefu/chat/chat], template might not exist or might not be accessible by any

2021-05-22 21:04:09 2199

原创 Java中使用栈和队列的相互实现

首先使用两个栈实现队列思路:定义一个输入栈和一个输出栈。在push数据的时候,只要数据放进输入栈在pop的时候,操作就复杂一些,输出栈如果为空,就把进栈数据全部导入进来(注意是全部导入)再从出栈弹出数据,如果输出栈不为空,则直接从出栈弹出数据就可以了。判空的方法:如果进栈和出栈都为空的话,说明模拟的队列为空了。class MyQueue { Stack<Integer> s1; Stack<Integer> s2; // 用两个栈来模拟队列,

2021-05-04 22:03:32 152

原创 Java面试之环形链表三等分

题目:给一个环形链表,请你将他三等分思路:用3个指针,第一个每次next一次,第二个两次,第三个三次。当第三个到达链表尾时,第一个正好在1/3处,第二个在2/3处伪码:public List<ListNode> getThreeListNode(ListNode head){ ListNode p1=head; ListNode p2=head.next; ListNode p3=head.next.next; if(p1==p2||p1==p3) return

2021-04-25 23:52:35 527

原创 leetcode刷题——视野总和

描叙:有n个人站队,所有的人全部向右看,个子高的可以看到个子低的发型,给出每个人的身高,问所有人能看到其他人发现总和是多少。输入:4 3 7 1输出:2解释:个子为4的可以看到个子为3的发型,个子为7可以看到个子为1的身高,所以1+1=2思路:观察题之后,我们发现实际上题目转化为找当前数字向右查找的第一个大于他的数字之间有多少个数字,然后将每个结果累计就是答案,这题我才用单调栈的方式进行解答。1.设置一个单调递增的栈(栈内0~n为单调递减)2.当遇到大于栈顶的元素,开始更新之前不高于当前人所能看

2021-04-19 21:14:28 739

原创 leetcode——分发饼干(贪心算法)

题目:本题我采用贪心算法进行求解贪心算法就是求的是局部最优解为了了满足更多的小孩,就不要造成饼干尺寸的浪费。大尺寸的饼干既可以满足胃口大的孩子也可以满足胃口小的孩子,那么就应该优先满足胃口大的。「这里的局部最优就是大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个,全局最优就是喂饱尽可能多的小孩」。思路:先把两个数组进行排序,分别从数组末尾开始遍历,如果s[index]>g[i],则count++public int findContentChildren(int[] g, int[

2021-04-14 21:37:25 349

原创 leetcode——重排链表

思路:找到链表的中间节点并进行反转,然后将两个链表进行合并public void reorderList(ListNode head) { //思路:找到中间节点,将后一部分反转,再进行合并 if(head==null||head.next==null||head.next.next==null) return; ListNode slow=head; ListNode fast=head; while(fast.next!.

2021-04-12 21:48:44 82

原创 leetcode寻找重复的数

class Solution { public int findDuplicate(int[] nums) { //方法1:hashset // Set<Integer> set=new HashSet(); // for(int num:nums){ // if(set.contains(num))return num; // set.add(num); // }

2021-04-09 21:15:43 113

原创 leetcode之多数元素——给定一个数组,找出超过数组长度一半的元素

题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。我有两种解法:1.直接将数组先进行排序,然后直接返回nums[length/2]的值,就是超过数组长度一半的元素。 if(nums==null||nums.length==0) return -1; //该方法时间复杂度为O(n2) Arrays.sort(nums); return nums[nums.length/2];2.摩尔投

2021-04-08 21:00:24 275

原创 leetcode之位运算——2的幂与4的幂次

2的幂次 public boolean isPowerOfTwo(int n) { // //先用循环的方式 // if(n<1) return false; // if(n==1||n==2) return true; // while(n!=0&&n%2==0){ // n/=2; // } // return n==1; //再用位运算

2021-04-08 20:54:31 159

原创 leetcode刷题——山峰元素

题目描述:找到索引最大的那个山峰元素并返回索引值public class Solution { /** * 寻找最后的山峰 * @param a int整型一维数组 * @return int整型 */ public int solve (int[] a) { // write code here if(a == null || a.length == 0) { return -1;

2021-04-06 15:32:44 225

原创 leetcode 中奇偶链表

题目:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; }

2021-04-06 13:51:36 87

原创 leetcode刷题小结

1.动态规划问题2.回溯算法-子集集合问题3.双指针问题4.二叉树问题5.链表问题6.双指针问题

2021-04-03 13:07:35 74

原创 JVM(Java虚拟机内存模型)与JMM(Java内存模型的关系)?

JMM中的主内存、工作内存与JVM中的Java堆、栈、方法区等并不是同一个层次的内存划分,这两者基本上是没有关系的,如果两者一定要勉强对应起来,那从变量、主内存、工作内存的定义来看,主内存主要对应于Java堆中的对象实例数据部分,而工作内存则对应于虚拟机栈中的部分区域。从更低层次上说,主内存就直接对应于物理硬件的内存,而为了获取更好的运行速度,虚拟机(甚至是硬件系统本身的优化措施)可能会让工作内存优先存储于寄存器和高速缓存中,因为程序运行时主要访问读写的是工作内存。...

2021-03-25 16:53:33 189

原创 剑指offer——滑动窗口的最大值

题目:给定一个数组nums,和滑动窗口的大小k,请找出滑动窗口的最大值。public int[] maxSlidingWindow(int[] nums,int k){ if(k<0||k>num.length) return new int[]{}; int left=0,right=0,i=0; LinkedList<Integer> list=new LinkedList(); while(right<nums.length){ while(list.siz

2021-03-08 21:46:02 52

原创 String,StringBuilder,StringBuffer的区别?

StringString类是final类,String类不能被继承String类底层是由一个char的数组来保存所谓的字符串的String类的返回类型是String的方法,都不是在原来的字符串上进行的,而是new了一个新的字符串对象(之前的String类字符串并没有被改变,而是会被jvm垃圾回收器自动回收)String str1="abc";与String str2=new String("abc");的区别? String str1="abc";--->>>在定义字面常量的时

2021-03-04 20:38:06 42 1

原创 kafka与zookeeper的数据一致性

kafka 是保存副本 leader读写,follower 只备份zookeeper是 leader读写,follower负责读

2021-03-04 11:17:11 226 1

原创 基于zookeeper的实现分布式锁

获得读锁流程:1、基于资源ID创建临时序号读锁节点/lock/888.R0000000002 Read2、获取 /lock 下所有子节点,判断其最小的节点是否为读锁,如果是则获锁成功3、最小节点不是读锁,则阻塞等待。添加lock/ 子节点变更监听。4、当节点变更监听触发,执行第2步数据结构:获得写锁:1、基于资源ID创建临时序号写锁节点/lock/888.R0000000002 Write2、获取 /lock 下所有子节点,判断其最小的节点是否为自己,如果是则获锁成功3、最小节点不

2021-03-03 10:07:20 109

原创 leetcode-617合并两颗二叉树

题目要求:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。public TreeNode mergeTree(TreeNode t1,TreeNode t2){ if(t1==null) return t2; if(t2==null) return t1; t1.val+=t2.val; t1.lef

2021-03-02 18:35:14 69

原创 zookeeper的数据同步机制

zookeeper的数据同步机制zookeeper 的数据同步是为了保证各节点中数据的一至性,同步时涉及两个流程,一个是正常的客户端数据提交,另一个是集群某个节点宕机在恢复后的数据同步。客户端写入请求:写入请求的大至流程是,收leader接收客户端写请求,并同步给各个子节点。如下图:但实际情况要复杂的多,比如client 它并不知道哪个节点是leader 有可能写的请求会发给follower ,由follower在转发给leader进行同步处理,如下图所示客户端写入流程说明:client

2021-03-02 16:08:39 1740

原创 zookeeper的选举机制

3.选举机制通过 ./bin/zkServer.sh status <zoo配置文件> 命令可以查看到节点状态./bin/zkServer.sh status conf/zoo1.cfgMode: follower./bin/zkServer.sh status conf/zoo2.cfgMode: leader./bin/zkServer.sh status conf/zoo3.cfgMode: follower可以发现中间的2182 是leader状态.其选举机制如下图:

2021-03-02 13:06:21 244 1

原创 zookeeper集群配置以及特性

zookeeper集群的目的是为了保证系统的性能承载更多的客户端连接设专门提供的机制。通过集群可以实现以下功能:读写分离:提高承载,为更多的客户端提供连接,并保障性能。主从自动切换:提高服务容错性,部分节点故障不会影响整个服务集群。半数以上运行机制说明:集群至少需要三台服务器,并且强烈建议使用奇数个服务器。因为zookeeper 通过判断大多数节点的存活来判断整个服务是否可用。比如3个节点,挂掉了2个表示整个集群挂掉,而用偶数4个,挂掉了2个也表示其并不是大部分存活,因此也会挂掉。配置语法:

2021-03-02 09:49:35 193

原创 在kafka中,为什么要对Topic下数据进行分区存储?

为什么要对Topic下数据进行分区存储?1、commit log文件会受到所在机器的文件系统大小的限制,分区之后可以将不同的分区放在不同的机器上,相当于对数据做了分布式存储,理论上一个topic可以处理任意数量的数据。2、为了提高并行度。...

2021-03-01 14:43:46 256 1

原创 在kafka中,可以这么理解topic,partition,broker

一个topic,代表逻辑上的一个业务数据集,比如按数据库里不同表的数据操作消息区分放入不同topic,订单相关操作消息放入订单topic,用户相关操作消息放入用户topic,对于大型网站来说,后端数据都是海量的,订单消息很可能是非常巨量的,比如有几百个G甚至达到TB级别,如果把这么多数据都放在一台机器上可定会有容量限制问题,那么就可以在topic内部划分多个partition来分片存储数据,不同的partition可以位于不同的机器上,每台机器上都运行一个Kafka的进程Broker。...

2021-03-01 14:34:53 2886 1

原创 kafka启动一段时候后自动停止——解决方案

在kafka的安装目录下找到config/server.properties修改修改超时时间即可解决结果

2021-03-01 13:11:44 1578

转载 在jdk7中HashMap是如何形成死循环的?

问题如果是在单线程下使用HashMap,自然是没有问题的,如果后期由于代码优化,这段逻辑引入了多线程并发执行,在一个未知的时间点,会发现CPU占用100%,居高不下,通过查看堆栈,你会惊讶的发现,线程都Hang在hashMap的get()方法上,服务重启之后,问题消失,过段时间可能又复现了。这是为什么?原因分析在了解来龙去脉之前,我们先看看HashMap的数据结构。在内部,HashMap使用一个Entry数组保存key、value数据,当一对key、value被加入时,会通过一个hash算法得到数

2021-02-27 22:35:24 486 2

原创 HashMap何时会进行扩容?

当HashMap中的元素越来越多的时候,碰撞的几率也就越来越高(因为数组的长度是固定的),所以为了提高查询的效率,就要对HashMap的数组进行扩容,数组扩容这个操作也会出现在ArrayList中,所以这是一个通用的操作,很多人对它的性能表示过怀疑,不过想想我们的“均摊”原理,就释然了,而在hashmap数组扩容之后,最消耗性能的点就出现了:原数组中的数据必须重新计算其在新数组中的位置,并放进去,这就是resize。  那么HashMap什么时候进行扩容呢?当hashmap中的元素个数超过数组大小load

2021-02-26 16:38:20 2455

原创 详解Java集合中

Collection集合接口详解Map接口详解

2021-02-26 16:07:30 144 2

原创 MySQL的最左前缀的理解

当B+树的数据项是复合的数据结构,比如是数据项是(name,age,sex)的时候,B+树是按照从左到右的顺序来建立搜索树的,比如当(张三,20,F)这样的数据来检索的时候,B+树会优先比较name来确定下一步的所搜方向,如果name相同再依次比较age和sex,最后得到检索的数据;但当(20,F)这样的没有name的数据来的时候,B+树就不知道下一步该查哪个节点,因为建立搜索树的时候name就是第一个比较因子,必须要先根据name来搜索才能知道下一步去哪里查询。比如当(张三,F)这样的数据来检索时,B+.

2021-02-21 14:37:07 64

原创 闲谈MySQL中int(10)和int(11)的区别?

mysql中int类型占用4个字节,而一个字节占用8个比特位,所以一个int类型的字段会占用2的32次方,我们就能换算出int UNSIGNED(无符号)类型的能存储的最小值为0, 最大值为4294967295;有符号的时候存储是从-2147483647,到2147483647;由此可以发现,正好是10位的长度;所以int默认的长度就是10,但是最大的存储长度也是10。接下来说int10和int11的区别首先新建一个表test,表中有三个字段id,id1(10),id2(11)(id 假装是一个主键,可

2021-02-21 11:19:35 4419 1

原创 剑指offer————凑零钱问题(动态规划)

public int coinChange(int[] coins,int amount){ int[] dp=new int[amount+1]; //声明一个amount+1长度的数组dp,代表各个价值的钱包,第0个钱包可以容纳的总价值为0,其它全部初始化为无穷大dp[j]代表当钱包的总价值为j时,所需要的最少硬币的个数 Arrays.fill(dp,1,dp.length,Integer.MAX_VALUE); for(int i=0;i<=amount;i++){ //i代表可以使用

2021-02-19 10:58:45 197

JUC AQS的加解锁.pdf

本资源描述了Java并发常见的问题AQS的加锁解锁的过程

2021-02-25

MySQL索引面试.md

本资源详细解释了MySQL索引的出现原因以及一些常见的面试问题

2021-02-25

MySQL基础.md

一、为什么要学习数据库 二、数据库的相关概念 DBMS、DB、SQL 三、数据库存储数据的特点 四、初始MySQL

2020-08-06

关于画图的软件——亿图图示PJ版

流程图等示意图绘制软件,亿图图示9.2版本,目前最稳定版本。 解压包里面有说明,内附说明,请认真参阅,后使用。

2020-04-30

Bib2IEEE.exe

本资源是对插入英文参考文献有极大的帮助。可以将.bib文件转化成IEEE的参考文献。可以节省大量的时间,提高工作的效率

2020-04-14

基于TI公司传感芯片FDC2214设计制作一个手势识别装置,实现对猜拳游戏和划拳游戏的判决

学习资源——电赛手势识别 基于TI公司传感芯片FDC2214设计制作一个手势识别装置,实现对猜拳游戏和划拳游戏的判决。该装置也可以直接使用FDC2214 EVM板,要求所使用的FDC2214芯片或者EVM板不得超过2块。

2020-04-03

空空如也

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

TA关注的人

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