![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
文章平均质量分 87
fucccck_ly
这个作者很懒,什么都没留下…
展开
-
力扣CV工程师刚学的拓扑排序!包教包会!
力扣CV工程师刚学的拓扑排序!包教包会!何为拓扑排序?拓扑排序例题Leetcode 207 课程表Leetcode 1203 项目管理其他例子何为拓扑排序?所谓拓扑排序,是有向无环图才有的一种排序。对于一个给定的包含n个节点的有向图G,我们给出它的节点编号的一种排列,如果满足:对于图G中的任意一条有向边(u,v),u在排列中都出现在v的前面。那么就称该排列是图G的拓扑排序。第一次读拓扑排序的概念可能会感觉难以理解,从这个概念上出发,我们需要捋清楚的问题是为什么只有有向无环图才有拓扑排序?原因很简单原创 2021-01-12 22:47:27 · 226 阅读 · 0 评论 -
每日一点JVM---Java内存模型
每日一点JVM---Java内存模型Java内存模型主内存与工作内存栈中和堆中分别存放什么数据大对象放在哪个内存区域堆区如何分类Java内存模型《Java虚拟机规范》中定义了一种“Java内存模型”(Java Memory Model,JMM)来屏蔽各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。主内存与工作内存Java内存模型的主要目的是定义程序中各种变量的访问规则,即关注在虚拟机中把变量存储到内存和从内存中取出变量值这样的底层细节。此处的变量与Ja原创 2020-08-27 22:03:37 · 177 阅读 · 0 评论 -
每日一点JVM---类加载相关
每日一点JVM---类加载相关写在前面什么是类加载?何时类加载?Java的类加载过程加载验证准备解析初始化常见类加载器及其之间的关系类加载器的双亲委派机制为什么需要双亲委派机制?Tomcat这种Web容器的类加载器如何设计?写在前面今日份复习的是类加载相关的知识,会分为什么是类加载,何时类加载,Java的类加载过程,常见类加载器及其之间的关系,类加载器的双亲委派机制和为什么需要双亲委派机制来看。什么是类加载?Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,原创 2020-08-20 09:48:30 · 144 阅读 · 0 评论 -
答应我 你一定要学会字典树!!字典树+Java实现+Leetcode题目--回文对
答应我 你一定要学会字典树写在前面字典树详解字典树概念字典树特点字典树应用字典树具体实现(Java)Leetcode原题结合理解写在最后写在前面大概是一周前的每日一题吧,当初初遇字典树,惊讶于其精妙,昨晚睡前的时候又看到字典树用于解决最长公共子前缀问题,想想具体实现,发现又给忘了,故今日抓紧时间整理,方便日后查看。本文章包括字典树概念的说明、使用场景以及leetcode题解的具体分析。字典树详解字典树概念先上个图,此图来自维基百科,先看看较为官方的定义:在计算机科学中,trie,又称前缀树或字原创 2020-08-18 11:52:05 · 195 阅读 · 0 评论 -
每日一点JVM---JVM内存结构及调优参数
这里写目录标题JVM内存结构***(手画图1.0 待补充)***JVM调优参数JVM内存结构首先我们来看一张图,这张图可能是很多人第一次学JVM看到的图片。通过这个图我们可以看到,JVM内存结构可以大概分为两块,一块是线程共享的(分别是方法区和堆),另一部分是线程私有的(虚拟机栈、本地方法栈和程序计数器)。(手画图1.0 待补充)在类加载的时候,jvm首先会帮助我们把类中的方法存入方法区中,在接下来执行字节码指令的时候,就需要程序计数器来帮助我们记住运行到哪一行字节码,紧接着就是在对应的线程内,原创 2020-08-17 22:41:39 · 260 阅读 · 0 评论 -
整理了一道并查集的问题
并查集 看起来可以解决一些关于无向图的问题看看这一篇博客 并查集的理解和Java实现我在博主的基础上实现了输出package Aut;import java.util.*;/** * 并查集的思路解决 */public class meituan3 { //parent[1]=0表示1的父节点是0 若出现parent[2]=2,表示2是根节点 public static int[] parent=new int[1000]; public static void原创 2020-08-16 00:01:36 · 121 阅读 · 0 评论 -
常用排序算法(二)---优雅地用Java实现堆排序吧!!
关于堆排序 相信有很多博客都讲得很细很细了堆排序的思路还是比较好理解的 也是面试经常考查的点 因此我觉得把堆排序给啃下来然而 图解堆排序的博客很多 但是堆排序的代码实在是写得太复杂了 我一个菜鸡实在是很难理解花费了一整个下午的时间 把堆排序的代码给整理出来了 附上详尽的注释 相信看着这份代码 对照着图解 很多就能把堆排序掌握下来啦!以下附上代码:(可能不是想象的那么优雅 但力求简单易懂好吧!)package Aug;import java.util.Arrays;/** * 堆排序 *原创 2020-08-14 18:05:51 · 115 阅读 · 0 评论 -
ThreadLocal真那么复杂吗?网抑云年代记
生而为人 我很抱歉网抑云年代平淡的一天 我准备啃下ThreadLocal这块硬骨头 建议打开网抑云 伴随着歌声阅读。ThreadLocal真那么复杂吗?什么是ThreadLocal?ThreadLocal的应用场景ThreadLocal的实现原理ThreadLocalMap内存泄露问题共享线程的ThreadLocal数据什么是ThreadLocal?ThreadLocal对象可以提供当前线程的局部变量,每个线程Thread拥有一份自己的副本变量,多个线程间互不干扰,实现了数据隔离。具体使用如下:原创 2020-08-02 23:39:33 · 110 阅读 · 0 评论 -
Java面试准备之多线程基础
最近在准备实习面试的事情,因此每天都在复习一些基础知识,昨天面试的时候关于多线程的问题回答得不是很好,因此今天决定把多线程基础的知识给复习一下,顺便整理整理。线程与进程进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序就是一个进程从创建、运行和消亡的过程。在Java中,当我们启动了main函数时其实就是启动了一个JVM的进程,而main函数所在的线程就是这...原创 2020-04-13 19:26:08 · 144 阅读 · 0 评论 -
面经(6) 2020/4/9 Java研发实习生 蚂蚁金服
写在前面这次面试突如其来,电话一来就问我方不方便面试,于是乎就糊里糊涂开始了1.笔试问题上来就问问笔试后来有没有去解决,事实上我只去解决了第一道题,第二道我题目给忘了。2.面向对象三大特性,具体说说继承3.设计模式了解哪些4.单例模式的实现我只记得饿汉、懒汉和双重检验加锁了。。。5.try-catch中finally块一定会执行吗?6.进程和线程?线程安全?7.hashMap和...原创 2020-04-10 18:02:57 · 180 阅读 · 0 评论 -
面经(5) 2020/4/5 Java研发实习生 蚂蚁金服
继上一次电话面之后,又来了一次电话面,强烈怀疑这次还只是一面,记录一下。1. 课程成绩,综测排名2. 什么是线程安全?如何解决?3.什么是幂等性?4.死锁是什么?如何解决?期间说到解除占有,但面试官好像想问具体实现。5.什么是并发?JVM控制并发?6.关于ThreadLocal7.什么是事务?用过缓存吗?答了mybatis的一级和二级缓存,还有redis的缓存…8.情景题:如果...原创 2020-04-06 17:27:50 · 508 阅读 · 0 评论 -
面经(4) 2020/3/27 Java研发实习生 蚂蚁金服 一面
这次面试准备得还算可以,问的也都能答出来一些,但是了解得还是太浅了,对于互联网中间件还是没什么了解,项目也是过于简单了,不得不说阿里的面试官是真的好,对于自身发展的一些疑惑,他也很乐意给一些解答和指导,但估计我也是一面体验卡了。1、JVM内存模型2、内存收集机制3、Spring IOC4、事务隔离级别5、MySQL索引是什么?悲观锁&乐观锁,在项目中用过吗?MySQL索引是一种...原创 2020-04-01 11:24:37 · 174 阅读 · 0 评论 -
LeetCode——三维形体的表面积
题目描述题目分析刚开始很不理解题意,通过题解里面大神画的图片,终于理解题意,二维数组表示的是一个位置,该位置所存数据就是小正方体的个数,可以想象是你面对着一张纸,而小正方体往你的方向堆叠,求的是所形成的三维形体的表面积。我们通过分类每一个位置所提供的表面积数然后加起来获得结果。当目标位置不为0的时候,那么必定会有上下两个面,而它的4个侧面,取决于目标位置上下左右的情况,如果某一面相邻位...原创 2020-03-25 21:30:54 · 141 阅读 · 0 评论 -
Leetcode——按摩师
题目描述题目分析本题使用动态规划的方法,关于动态规划的思想入门,可参考这篇文章:动态规划入门,这一篇就够了将动态规划的思想应用在本题中,其实就是找出每个子数组中服务时间取最大的值。通过建立一个二维数组dp[i][j]来保存选择的情况,i代表的是第i+1天的情况,j的取值只有0或者1,代表是否选择接受预约请求。i=0时,表示第一天的情况,应该和后面的分类讨论。1<=i<=le...原创 2020-03-24 21:09:19 · 141 阅读 · 0 评论 -
Leetcode-数组中重复的数
题目描述题目分析题目思路比较简单,只需要找其中一个有重复的数字输出就好,可以先把数组进行排序,然后比较相邻两个数是否相同就好。时间:O(nlogn) 空间:O(1)题目解答class Solution { public int findRepeatNumber(int[] nums) { if(nums==null||nums.length<=0) ...原创 2020-03-24 11:20:26 · 143 阅读 · 1 评论 -
面经(2) 2020/3/19 软件开发实习生
这次面试问的比较基础,但是我还是有很多答不上来的,时刻提醒自己要多复习基础知识!!如有错漏请指出,多谢!1、为什么要用StringBuffer和StringBuilder?他们和String有什么区别?2、String类的常用方法3、for循环的种类4、List和Map的常见实现类5、HashMap和TreeMap的区别6、数据库左外连接和右外连接的区别7、事务是什么?8、JDBC...原创 2020-03-23 16:48:30 · 194 阅读 · 0 评论 -
面经(3) 2020/3/19 后端开发实习生复试
这次面试上来就给我甩了3道算法题给我整懵了,果然平时还是要多刷几道算法题。。。1、判断一个int是否为回文数,回文数定义为首位置和末尾一样,如1234321,123321,要求10分钟内完成。回文数2、判断二叉树是否为平衡二叉树,要求10分钟内完成。平衡二叉树3、请实现LRU缓存类,要求10分钟内完成。4、有64匹马,一个赛场 8个跑道, 要比赛决出前4名,问充分必要条件最少需要多少场...原创 2020-03-23 15:45:17 · 267 阅读 · 0 评论 -
Leetcode——LRU缓存
题目描述题目分析首先是LRU缓存思想,LRU(Least Recently Used,最近最少使用),顾名思义,是淘汰最近最少使用的项目,其思想是如果数据最近被访问过,那么将来被访问的几率更高此时第一个想的是使用一个链表,最近使用的放在最后面,最近没用的放在最前面,来了一个新的数,就判断内存是否满了,把最旧的数淘汰再加入新数。为了方便移动数据,应该使用链表。对于这个问题,一共有两个需求...原创 2020-03-23 15:44:06 · 112 阅读 · 0 评论 -
Leetcode——平衡二叉树
题目描述题目分析首先是平衡二叉树的定义,它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。先浮现在脑海中的是分别获取左右子树的深度,再对他们的差值进行比较。并且,每一个子树也必须是平衡的,因此也需要递归去判断他们。当然最先是特殊情况的处理,当树为空树时,它就是平衡的。而在每一个递归中,也需要判断是否为空。这个算法分成了两个方法,一个是判断树是否平...原创 2020-03-21 14:02:13 · 132 阅读 · 0 评论 -
Leetcode-回文数
题目描述判断一个int是否为回文数,回文数定义为首位置和末尾一样,如1234321,123321。题目分析刚开始想的是把数字翻转过来,然后跟原来的数字进行比较,但是要防止翻转后的数字会出现整型溢出的问题。所以不可以翻转全部,如果一个数是回文数,那么可以翻转他的后半部分跟前半部分进行比较。当然首先要考虑临界状态,负数带有符号,所以肯定不会是回文数。0肯定是个回文数,并且,当x最后一位是...原创 2020-03-21 01:00:57 · 122 阅读 · 0 评论 -
面经(1) 2020/3/17 后端开发
个人整理,如果有错误或漏掉的东西,烦请各位大佬指出,万分感谢1、简单讲一讲线程和进程的区别进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序就是一个进程从创建、运行和消亡的过程。在Java中,当我们启动了main函数时其实就是启动了一个JVM的进程,而main函数所在的线程就是这个进程中的一个线程,也称为主线程。线程与进程相似,但线程是一个比进程更小的执...原创 2020-03-18 21:50:02 · 112 阅读 · 0 评论 -
常用排序算法(一)---算法汇总
前言:在阅读了《算法第四版》排序部分后,由于很久没有看导致啥都忘记了,故在此对其中的算法原理以及Java实现整理一下,方便以后自己复习。选择排序对于选择排序,用比较官方的定义,是通过n-i次关键字间的比较,从n-i+1个记录里选出关键字最小的记录,并和第i(1<=i<=n)个记录进行交换。笼统一点呢,就是首先找到数组中最小的那个元素,其次,将他和数组的第一个元素交换位置(如果第...原创 2020-03-16 16:48:52 · 202 阅读 · 0 评论 -
面试准备之HashMap
最近因为疫情,延缓了开学的时间,在家里一晃就过去了一个多月,不知不觉间,春招就开始了。看看别人的简历,实在慌得不行,所以硬着头皮跟着别人投了一堆大厂实习。要面试总不能一问三不知,所以从今天开始做一些基础知识的总结回顾,希望面试能够顺利,要加油!本文章主要是关于HashMap的知识,会整理一些网上提过的面试高频知识点,当然本文只是简单提及知识点,对于深入了解,也有很多博主有很多很深入的文章可供借鉴...原创 2020-03-12 18:01:27 · 136 阅读 · 0 评论