java面经之查缺补漏
IDEA_TEYU_1112
其实吧压力也没那么大
展开
-
java面经查缺补漏之第五十天(基本类型和引用类型,秒杀大概思路,nginx限流,限流算法,unsafe类,多线程的通信方式,juc阻塞队列,死锁的解决方式)
1.java基本类型和引用类型的区别?参考:https://www.cnblogs.com/maskwolf/p/9972982.html8大基本数据类型,byte,boolean,char,int,short,long,float,double引用类型,类,字符串等,除了基本,大概都是引用类型。区别一 存储位置基本数据类型作为非全局变量存储在栈当中。引用类型具体内容...原创 2020-05-07 21:18:22 · 484 阅读 · 0 评论 -
java面经查缺补漏之四十九天(继续聊spring的一些问题,以及Juc包的简单梳理)
1.bean的作用域?(1)singleton:默认,每个容器中只有一个bean的实例,单例的模式由BeanFactory自身来维护。(2)prototype:为每一个bean请求提供一个实例。(3)request:为每一个网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收。(4)session:与request范围类似,确保每个session中有一个bean的...原创 2020-05-01 20:51:51 · 460 阅读 · 2 评论 -
牛客网刷题之滑动窗口的最大值(一天一道编程题之五十六天)
题目:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5...原创 2020-04-27 11:49:28 · 274 阅读 · 0 评论 -
java面经查缺补漏之四十八天(进程的并行与并发,最左前缀,explain,拒绝策略)
1.进程的并行与并发?并发就是在单核处理中同时处理多个任务并行就是在多核处理器中同时处理多个任务2.最左前缀匹配原则?建立了联合索引(a,b,c)select * from test where a<10 ;select * from test where a<10 and b <10;explain select * from te...原创 2020-04-26 12:00:50 · 295 阅读 · 0 评论 -
java查缺补漏之四十七天(懒汉式饿汉式单例模式,装饰者模式,观察者模式,工厂模式,适配器模式)
1.你知道几种单例模式?(1)懒汉原始式:在反射面前没什么用,线程不安全需要注意的式构造方法也是privatepublic class Singleton { private Singleton() {} private static Singleton singleton = null; public static Singleton getInstance...原创 2020-04-25 21:12:08 · 322 阅读 · 0 评论 -
java面经查缺补漏之四十六天(分布式ID,@Autowired和@Resource,线程池有哪些,GC Roots,ArrayList和LinkedList区别,string的底层,面向对象的理解)
1.分布式ID生成策略知道哪些?参考:https://www.cnblogs.com/chengxy-nds/p/12315917.html什么是分布式ID?在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分库分表后需要有一个唯一ID来标识一条数...原创 2020-04-24 21:15:29 · 327 阅读 · 0 评论 -
java面经查缺补漏之四十五天(hashmap强化以及concurrenthashmap强化)
1.hashmap,hashtable,concurrenthashmap三者的区别?2.hashmap的put方法的逻辑3.concurrenthashmap的put方法的逻辑原创 2020-04-22 15:52:51 · 222 阅读 · 0 评论 -
java面经查缺补漏之四十四天(今天学习java异常体系)
Java异常体系主要有下面几个原创 2020-04-22 10:18:03 · 238 阅读 · 0 评论 -
java面经查缺补漏之四十三天(今天来学习消息队列的理论知识)
参考:https://www.cnblogs.com/williamjie/p/12053005.html1.为什么使用消息队列?解耦,异步,削峰。2.使用消息队列有什么缺点?(1)系统可用性降低:你想呀,本来其他系统只要运行好好的,那你的系统就是正常的。现在你非要加入个消息队列进去,那消息队列挂了,你的系统不是呵呵了。因此,系统可用性会降低(2)系统复杂性增加:加入了消息队列...原创 2020-04-12 15:24:09 · 215 阅读 · 0 评论 -
java面经查缺补漏之四十二天(今天来学习nginx的理论知识)
参考:1.https://blog.csdn.net/hustspy1990/article/details/102989305?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5&utm_source=distribute.pc_relevant.none...原创 2020-04-12 14:22:17 · 283 阅读 · 0 评论 -
Leetcode刷题java之547. 朋友圈(一天一道编程题之五十五天)
执行结果:通过显示详情执行用时 :1 ms, 在所有 Java 提交中击败了99.92% 的用户内存消耗 :40.7 MB, 在所有 Java 提交中击败了94.03%的用户题目:班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合...原创 2020-04-12 09:37:01 · 792 阅读 · 0 评论 -
java面经查缺补漏之四十一天(今天学redis实现分布式锁)
1.如何实现redis分布式锁?参考:https://www.cnblogs.com/williamjie/p/9395659.html参考:https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653194065&idx=1&sn=1baa162e40d48ce9b44ea5c4b2c71ad7&ch...原创 2020-04-11 20:48:10 · 367 阅读 · 1 评论 -
Leetcode刷题java之376. 摆动序列(一天一道编程题之五十四天)
执行结果:通过显示详情执行用时 :0 ms, 在所有 Java 提交中击败了100.00% 的用户内存消耗 :37 MB, 在所有 Java 提交中击败了8.33%的用户题目:如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列...原创 2020-04-11 10:14:50 · 316 阅读 · 0 评论 -
java面经查缺补漏之三十八天(今天来学习redis)
本文参考:https://blog.csdn.net/qq939419061/article/details/105102777/挑出其中一些我目前还未掌握的知识点,进行研究,详情更加具体的复习,可参考上面的链接,我认为这篇redis总结的还是很全很清楚的。1.什么是缓存雪崩?另外对于 “Redis 挂掉了,请求全部走数据库” 这样的情况,我们还可以有如下的思路:事发前:实现 ...原创 2020-04-10 20:32:30 · 268 阅读 · 0 评论 -
java面经查缺补漏之三十七天(加油)
1.CAS机制进阶,它的底层是怎么实现的,如何解决ABA问题?参考:https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653192736&idx=1&sn=24d4054b062e28db9e54c735aafe2407&chksm=8c99f0fabbee79ecfd9198aa89bc78084e9...原创 2020-04-10 19:34:48 · 173 阅读 · 0 评论 -
java面经查缺补漏之三十六天(前天面试完美团,不知道是否凉凉,今天主要学生产者消费者模型)
1.手写一个生产者消费者模型?参考:https://blog.csdn.net/u010983881/article/details/78554671?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4&utm_source=distribute.pc_re...原创 2020-04-10 18:05:25 · 274 阅读 · 0 评论 -
Leetcode刷题java之659. 分割数组为连续子序列(一天一道编程题之五十三天)
执行结果:通过显示详情执行用时 :36 ms, 在所有 Java 提交中击败了58.08% 的用户内存消耗 :41.8 MB, 在所有 Java 提交中击败了50.00%题目:输入一个按升序排序的整数数组(可能包含重复数字),你需要将它们分割成几个子序列,其中每个子序列至少包含三个连续整数。返回你是否能做出这样的分割?示例 1:输入: [1,2,3,3,4,5...原创 2020-04-10 09:56:24 · 570 阅读 · 0 评论 -
java面经查缺补漏之三十五天(最近学习有些浮躁,要沉下心来)
最近学习有些浮躁,要沉下心来1.总是提到CAS,那么它是怎么用的呢?原子操作类的底层就使用了CAS,所谓原子操作类,指的是java.util.concurrent.atomic包下,一系列以Atomic开头的包装类。例如AtomicBoolean,AtomicInteger,AtomicLong。它们分别用于Boolean,Integer,Long类型的原子性操作。2.什么是sprin...原创 2020-04-09 21:01:39 · 236 阅读 · 0 评论 -
Leetcode刷题java之124. 二叉树中的最大路径和(一天一道编程题之五十二天)
执行结果:通过显示详情执行用时 :1 ms, 在所有 Java 提交中击败了99.80% 的用户内存消耗 :41.5 MB, 在所有 Java 提交中击败了15.00%的用户题目:给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3]...原创 2020-04-06 15:54:21 · 267 阅读 · 0 评论 -
Leetcode刷题java之454. 四数相加 II(一天一道编程题之五十一天)
执行结果:通过显示详情执行用时 :76 ms, 在所有 Java 提交中击败了93.35% 的用户内存消耗 :58.8 MB, 在所有 Java 提交中击败了26.13%的用户题目:给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所...原创 2020-04-06 13:50:54 · 222 阅读 · 0 评论 -
Leetcode刷题java之329. 矩阵中的最长递增路径(一天一道编程题之五十天)
执行结果:通过显示详情执行用时 :11 ms, 在所有 Java 提交中击败了73.70% 的用户内存消耗 :39.7 MB, 在所有 Java 提交中击败了53.41%的用户题目:给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums =...原创 2020-04-05 16:09:15 · 245 阅读 · 0 评论 -
Leetcode刷题java之295. 数据流的中位数(一天一道编程题之四十九天)
执行结果:通过显示详情执行用时 :959 ms, 在所有 Java 提交中击败了7.11% 的用户内存消耗 :49.6 MB, 在所有 Java 提交中击败了100.00%的用户题目:中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一...原创 2020-04-05 15:26:42 · 244 阅读 · 0 评论 -
Leetcode刷题java之200. 岛屿数量(一天一道编程题之四十九天)
执行结果:通过显示详情执行用时 :2 ms, 在所有 Java 提交中击败了95.44% 的用户内存消耗 :42.4 MB, 在所有 Java 提交中击败了5.55%的用户题目:给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:...原创 2020-04-05 12:40:25 · 290 阅读 · 0 评论 -
Leetcode刷题java之130. 被围绕的区域(一天一道编程题之四十八天)
执行结果:通过显示详情执行用时 :2 ms, 在所有 Java 提交中击败了98.04% 的用户内存消耗 :41.9 MB, 在所有 Java 提交中击败了42.13%的用户题目:给定一个二维的矩阵,包含 'X' 和 'O'(字母 O)。找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。示例:X X X XX O O XX X ...原创 2020-04-05 12:18:26 · 282 阅读 · 0 评论 -
Leetcode刷题java之128. 最长连续序列(一天一道编程题之四十七天)
执行结果:通过显示详情执行用时 :5 ms, 在所有 Java 提交中击败了83.59% 的用户内存消耗 :39.5 MB, 在所有 Java 提交中击败了5.25%的用户题目:给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1,...原创 2020-04-04 10:02:55 · 323 阅读 · 0 评论 -
Leetcode刷题java之208. 实现 Trie (前缀树)(一天一道编程题之四十六天)
执行结果:通过显示详情执行用时 :56 ms, 在所有 Java 提交中击败了47.39% 的用户内存消耗 :49.1 MB, 在所有 Java 提交中击败了100.00%的用户题目:实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.inser...原创 2020-04-03 18:09:18 · 222 阅读 · 0 评论 -
java面经查缺补漏之三十四天(聊聊二叉查找树,AVL树和红黑树)
1.既然有了二叉查找树和AVL树,为什么还要红黑树?二叉查找树,左边的节点小于当前节点,右边的节点大于当前节点,以此来提高查找的效率。但是当它不平衡的时候,节点都在一端的时候,就退化成了链表。为了解决这个问题,就出现了AVL树,平衡树,它具有二叉查找树的特点,又加入了一个约束,左右的高度差小于等于1,破坏平衡的话,就进行左旋或者右旋操作,但是由于这个限制比较严格,使得每次都需要维持平衡,代价太...原创 2020-04-03 15:46:18 · 228 阅读 · 0 评论 -
java面经查缺补漏之三十三天(继续数据库方面的)
1.一条sql语句执行很慢的原因?(1)平常还好但是偶尔很慢第一种,在进行更新等操作的时候,并不是立刻进行持久化,而是先写到日志当中,等数据库空闲的时候,再进行持久化。如果数据库一直忙的话,更新操作又很频繁,日志就满了,数据库不得不去全身心的完成持久化操作。这个时候你再执行sql语句就会很慢了。第二种,拿不到锁,等待别人释放锁。可以通过show processlist来查看当前的状态,...原创 2020-04-02 20:35:59 · 243 阅读 · 0 评论 -
Leetcode刷题java之84. 柱状图中最大的矩形(一天一道编程题之四十五天)
执行结果:通过显示详情执行用时 :2 ms, 在所有 Java 提交中击败了99.31% 的用户内存消耗 :41.2 MB, 在所有 Java 提交中击败了54.29%的用户题目:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 ...原创 2020-04-02 18:11:24 · 208 阅读 · 0 评论 -
Leetcode刷题java之41. 缺失的第一个正数(一天一道编程题之四十四天)
执行结果:通过显示详情执行用时 :1 ms, 在所有 Java 提交中击败了93.17% 的用户内存消耗 :38.1 MB, 在所有 Java 提交中击败了5.34%的用户题目:给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:...原创 2020-04-02 15:56:09 · 211 阅读 · 0 评论 -
Leetcode刷题java之42. 接雨水(一天一道编程题之四十三天)
执行结果:通过显示详情执行用时 :1 ms, 在所有 Java 提交中击败了99.96% 的用户内存消耗 :39.6 MB, 在所有 Java 提交中击败了11.87%的用户题目:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情...原创 2020-04-02 15:02:00 · 411 阅读 · 0 评论 -
Leetcode刷题java之91. 解码方法(一天一道编程题之四十二天)(动态规划)
执行结果:通过显示详情执行用时 :1 ms, 在所有 Java 提交中击败了100.00% 的用户内存消耗 :37.8 MB, 在所有 Java 提交中击败了5.07%的用户题目:一条包含字母 A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。...原创 2020-04-01 11:58:06 · 261 阅读 · 0 评论 -
Leetcode刷题java之36. 有效的数独(一天一道编程题之四十一天)
执行结果:通过显示详情执行用时 :2 ms, 在所有 Java 提交中击败了95.75% 的用户内存消耗 :40 MB, 在所有 Java 提交中击败了98.25%的用户题目:判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1...原创 2020-03-31 20:21:12 · 301 阅读 · 0 评论 -
Leetcode刷题java之23. 合并K个排序链表(一天一道编程题之四十天)(优先队列)
执行结果:通过显示详情执行用时 :5 ms, 在所有 Java 提交中击败了62.48% 的用户内存消耗 :41.8 MB, 在所有 Java 提交中击败了55.30%的用户题目:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: ...原创 2020-03-31 18:51:47 · 235 阅读 · 0 评论 -
Leetcode刷题java之10. 正则表达式匹配(一天一道编程题之三十九天)(回溯法和动态规划法)
执行结果:通过显示详情执行用时 :81 ms, 在所有 Java 提交中击败了27.43% 的用户内存消耗 :40.4 MB, 在所有 Java 提交中击败了24.44%的用户题目:给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵...原创 2020-03-31 16:38:28 · 370 阅读 · 0 评论 -
Leetcode刷题java之4. 寻找两个有序数组的中位数(一天一道编程题之三十八天)
执行结果:通过显示详情执行用时 :3 ms, 在所有 Java 提交中击败了84.62% 的用户内存消耗 :41.1 MB, 在所有 Java 提交中击败了98.28%的用户题目:给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nu...原创 2020-03-31 14:13:44 · 220 阅读 · 0 评论 -
Leetcode刷题java之242. 有效的字母异位词(一天一道编程题之三十七天)
执行结果:通过显示详情执行用时 :2 ms, 在所有 Java 提交中击败了99.94% 的用户内存消耗 :39.5 MB, 在所有 Java 提交中击败了5.08%的用户题目:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:...原创 2020-03-31 11:21:55 · 227 阅读 · 0 评论 -
Leetcode刷题java之341. 扁平化嵌套列表迭代器(一天一道编程题之三十六天)
执行结果:通过显示详情执行用时 :4 ms, 在所有 Java 提交中击败了68.89% 的用户内存消耗 :42.1 MB, 在所有 Java 提交中击败了5.68%的用户题目:给你一个嵌套的整型列表。请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数。列表中的每一项或者为一个整数,或者是另一个列表。其中列表的元素也可能是整数或是其他列表。示例 1:...原创 2020-03-31 11:00:29 · 279 阅读 · 0 评论 -
Leetcode刷题java之380. 常数时间插入、删除和获取随机元素(一天一道编程题之三十五天)
执行结果:通过显示详情执行用时 :12 ms, 在所有 Java 提交中击败了97.16% 的用户内存消耗 :45.2 MB, 在所有 Java 提交中击败了69.40%的用户题目:设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构。 insert(val):当元素 val 不存在时,向集合中插入该项。 remove(val):元素 v...原创 2020-03-31 10:14:06 · 245 阅读 · 0 评论 -
Leetcode刷题java之412. Fizz Buzz(一天一道编程题之三十四天)
执行结果:通过显示详情执行用时 :1 ms, 在所有 Java 提交中击败了100.00% 的用户内存消耗 :41.8 MB, 在所有 Java 提交中击败了5.08%的用户题目:写一个程序,输出从 1 到 n 数字的字符串表示。1. 如果 n 是3的倍数,输出“Fizz”;2. 如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “...原创 2020-03-30 18:45:12 · 241 阅读 · 0 评论