![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java后端面试准备
文章平均质量分 78
本专栏为准备2021年实习面试,以及2021年秋招做准备的复习专栏,力求将一门一门科目,进行梳理、深入思考、拓展相关知识。
尚墨1111
这个作者很懒,什么都没留下…
展开
-
牛客网刷编程题-美团-1
美团:[编程题]正则序列import java.util.*;public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] dp = new int[n]; for(int i =0;i<n;i++){ dp[i] = sc.nextInt(); }原创 2021-05-07 18:24:48 · 220 阅读 · 0 评论 -
8.2号 shopee提前批 Java工程师 笔试题
文章目录2.1 shopee提前批笔试-8.22.1.1 编程一:动态规划2.1.2 编程二:二分法编程三:栈+状态机2.1 shopee提前批笔试-8.22.1.1 编程一:动态规划数的划分,将整数n分成k份,且每份不能为空,任意两种划分方案不能相同思考:方案数,最大值,不能穷举,极大可能是动态规划。1、涉及到两个变量 n和k 所以应该是需要二维数组,dp [i] [j]2、dp [i] [j] 代表 i 个数分成 j 份3、怎么分解 dp [i] [j]?拿到一个整数 i ,因为题目原创 2021-09-15 15:08:55 · 326 阅读 · 0 评论 -
2.2 华为-软件工程师-7.21笔试题
文章目录2.2 华为-软件工程师-7.21笔试题2.2.1 编程一:资源占用2.2.2 编程二:贪心+小根堆2.2.3 编程三:图2.2 华为-软件工程师-7.21笔试题2.2.1 编程一:资源占用1、同时运行的出租车数量方法一:【活动安排问题】253. 会议室 II1、假定你知道活动安排问题。2、活动安排问题是指,一个共享会议室,安排了k个活动,每个活动都有起始时间startTime和结束时间endTime。当然这k个活动有重叠,没有重叠就能安排k个活动,求最大安排的活动数量?3、把这个原创 2021-09-15 15:12:52 · 842 阅读 · 0 评论 -
一文通数据结构与算法之——贪心算法+常见题型与解题策略+Leetcode经典题
文章目录贪心算法1 概念1.1 心得1.2 题目列表2 Leetcode经典题2.1 分发物品135.分发糖果(非常经典)455.分发饼干[860. 柠檬水找零](https://leetcode-cn.com/problems/lemonade-change/)2.2 数组序列相关[1005. K 次取反后最大化的数组和](https://leetcode-cn.com/problems/maximize-sum-of-array-after-k-negations/)[376. 摆动序列](https:原创 2021-10-08 10:44:09 · 401 阅读 · 0 评论 -
学习算法过程中学到的技巧_持续更新
1. 套路1:一般这种数对,还涉及排序的,根据第一个元素正向排序,根据第二个元素反向排序,或者根据第一个元素反向排序,根据第二个元素正向排序,往往能够简化解题过程。比如这些题目:406. 根据身高重建队列452. 用最少数量的箭引爆气球:435. 无重叠区间56. 合并区间2. 技巧2: 成环的题目对于索引的控制:i%len比如:134. 加油站圆环回原点问题题目描述:圆环上有10个点,编号为0~9。从0点出发,**每次可以逆时针和顺时针走一步,问走n步回到0点共有多少种走法。原创 2021-10-07 21:32:21 · 123 阅读 · 0 评论 -
一文通数据结构与算法之——回溯算法+常见题型与解题策略+Leetcode经典题
文章目录回溯算法1 基本内容1.1 回溯算法的框架1.2 回溯核心思想1.3 回溯法解决的问题1.4 题目列表1.4 常见问题分析2 经典力扣题2.1 全排列问题2.1.1 没有重复元素的全排列2.1.2 含重复元素的递归全排列2.2 子集问题2.2.1 不含重复元素的子集2.2.2 含重复元素的子集个数2.2.3 递增子序列2.3 组合问题[77. 组合](https://leetcode-cn.com/problems/combinations/)[39. 组合总和](https://leetcode原创 2021-10-04 09:46:28 · 581 阅读 · 0 评论 -
一文通数据结构与算法之——图+常见题型与解题策略+Leetcode经典题
文章目录数据结构——图1 基本概念1.1 图的存储方式1.2 有向加权图1.3 实现1.4 图的遍历1.4.1 深度优先遍历图 BFS1.4.2 广度优先遍历图 BFS1.5 拓扑排序1.5.1 判断有向图是否存在环1.5.2 输出拓扑顺序:深度遍历法1.5.3 拓扑排序:广度优先遍历法2 真题2.1 路径问题(动态规划)2.1.1 **[64. 最小路径和](https://leetcode-cn.com/problems/minimum-path-sum/)**2.2.2 **[62. 不同路径]原创 2021-10-03 15:24:17 · 1134 阅读 · 0 评论 -
一文通数据结构与算法之——二叉树+常见题型与解题策略+Leetcode经典题
文章目录二叉树1 二叉树基本操作1.1 二叉树定义1.2 前、中、后序遍历1.2.1 递归形式1.2.2 非递归,迭代形式1.3 遍历方式2 剑指 Offer 算法题2.1 题目列表递归遍历序列化和反序列化二叉搜索树2.2 实战[剑指 Offer 27. 二叉树的镜像](https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/)[剑指 Offer 28. 对称的二叉树](https://leetcode-cn.com/problems/原创 2021-10-03 15:22:10 · 707 阅读 · 0 评论 -
一文通数据结构与算法之——链表+常见题型与解题策略+Leetcode经典题
文章目录1 链表1.1 常见题型及解题策略1.1.1 LeetCode中关于链表的题目有以下五种类型题:1.1.2 解题策略1.2 链表的基本内容1.2.1 链表的基本结构:1.2.2 插入新元素1.2.3 删除某个元素1.2.4 遍历单链表1.3 删除链表结点类题目1.3.1 题解方法1.3.2 可能出现的问题1.3.3 题库列表:237、删除链表中的节点203、移除链表元素剑指 Offer 18. 删除链表的节点面试题 02.01. 移除重复节点82. 删除排序链表中的重复元素 II19、删除链表的倒原创 2021-10-03 15:20:29 · 379 阅读 · 0 评论 -
一文通数据结构与算法之——数组+常见题型与解题策略+Leetcode经典题
文章目录2 数组2.1 常见题型及解题策略2.2 字符串操作基础2.3 删除数组元素2.3.1 题库列表2.4 双指针技巧2.4.1 题库列表2.5 数组类操作2.6 剑指offer 数组题:剑指 Offer 04. 二维数组中的查找剑指 Offer 11. 旋转数组的最小数字剑指 Offer 17. 打印从1到最大的n位数【剑指Offer】21、调整数组顺序使奇数位于偶数前面剑指Offer】29、顺时针打印矩阵【剑指Offer】39、数组中出现次数超过一半的数字【剑指Offer】51、数组中的逆序对【剑指原创 2021-10-03 15:17:42 · 868 阅读 · 0 评论 -
字符串匹配算法
字符串匹配算法此算法通常输入为原字符串(string)和子串(pattern),要求返回子串在原字符串中首次出现的位置。比如原字符串为“ABCDEFG”,子串为“DEF”,则算法返回3。BF(Brute Force,暴力检索)KMP(教科书上最常见算法)BM(Boyer Moore)RK(Robin-Karp,哈希检索)Sunday算法暴力检索首先将匹配串和模式串左对齐,然后从左向右一个一个进行比较,如果不成功则模式串向右移动一个单位。速度最慢。时间复杂度:O(m*n)/** *原创 2021-08-12 08:26:33 · 1421 阅读 · 0 评论 -
设计模式大集合
1 概述1.1 意义:设计模式是前人工作的总结和提炼。通常,被人们广泛流传的设计模式都是对某一特定问题的成熟的解决方案。如果能合理地使用设计模式,不仅能使系统更容易地被他人理解,同时也能使系统拥有更加合理的结构。项目做的非常大,非常复杂的时候,仍然能让你能掌控这些代码,不会让他们乱成一团。设计模式可以让你知道在某些场景下如何来设计出适合场景的架子,因为经验不丰富,大部分程序员写的代码的可维护性是非常差的,基本上只是实现了功能,没有做其他的考虑,比如以后要加新功能,目前写的程序改怎么改,或者类之间的关系原创 2021-08-10 15:32:18 · 485 阅读 · 0 评论 -
图文最详细的堆解析:从二叉树到堆到解析大根堆小根堆,分析堆排序,最后实现topK经典面试问题
堆1 数据结构——堆 Heap1.0 树1.1堆1.1.1 什么是堆1.1.2 堆的常用方法:1.2 数组构造大根堆1.2.1 节点与数组索引的对应关系1.2.2 实际样例1.3 Java实现1.3.1 自下往上法1.3.2 堆的相关操作1.4 堆排序1.4 优先队列`PriorityQueue`1.4.1 什么是优先级队列1.4.2 自定义排序和Lambda回顾1.4.3 源码分析2 面试经典TopK问题2.1 题目列表:2.2 TopK小2.2.1 基于快排找topk小2.2.2 大根堆法找topk小原创 2021-07-10 18:18:50 · 1927 阅读 · 0 评论 -
JVM总结复习
JVM面试总结JVM笔记0. 面试常见:1. JVM:1.1 JVM的位置1.2 JVM 体系结构1.3 三种JVM2. 虚拟机类加载机制2.1 类加载器2.2 双亲委派模型2.3 为什么要设计这种机制3. Java 内存区域与内存溢出异常3.1 运行时数据区域3.1.1 native——>本地方法栈3.1.2 程序计数器3.1.3 方法区3.1.4 虚拟机栈3.1.5 堆3.2 JVM各区会出现的问题4. 垃圾回收算法4.1 引用计数法:4.2 复制算法:4.3 标记–清除算法4.4 标记-原创 2021-05-26 21:40:28 · 210 阅读 · 3 评论 -
数据库MySQL基本知识及面试总结——全新回归
数据库1.基本知识1.1 数据库三大范式是什么1.2 mysql的基本数据类型1.3 为什么要用存储过程,存储过程的优缺点存储过程概念为什么要用存储过程?存储过程的缺点1.4 说一说drop、delete与truncate的区别1.5 一条sql语句在mysql中如何执行1.7 数据库存储时间2. 存储引擎2.1 Mysql有哪些存储引擎,默认的存储引擎是什么?2.2 MyISAM 和 InnoDB 的区别2.3 InnoDB与MyISAM各自的优势是什么,能用在什么场合3. 事务3.1 何为 ACID 特原创 2021-05-19 22:50:18 · 317 阅读 · 1 评论 -
面试相关-七大排序算法:图解+动图+最直观的代码分析_性能比较
1 排序算法:1.1 面试面试中最常考的是快速排序和归并排序,经常有面试官要求现场写出这两种排序的代码。其他排序可能会要求比较各自的优劣、各种算法的思想及其使用场景。分析算法的时间和空间复杂度。1.2 区分简单的排序:冒泡排序、选择排序、插入排序简单排序的变种:快速排序、堆排序、希尔排序,比较高效的排序。基于分治递归思想:归并排序线性排序:计数排序、桶排序、基数排序三种排序算法大体可分为两种:比较排序:时间复杂度最少可达到O(nlogn),主要有:冒泡排序,选择排序,插入排序,原创 2021-05-17 19:03:38 · 1116 阅读 · 0 评论 -
Spring的IOC实现原理:反射+工厂模式具体分析
感谢文章:IOC的实现原理—反射与工厂模式的结合1. 反射.java文件在编译后会变成.class文件,这就像是个镜面,本身是.java,在镜中是.class,他们其实是一样的;那么同理,我们看到镜子的反射是.class,就能通过反编译,了解到.java文件的本来面目——这就是反射2. 工厂模式2.1 普通工厂模式:将接口的实现类直接写死在内部,根据传入的String不同,判断之后生成对应的实现类。缺点:实现类增加了,工厂类也要修改有多少实现类,工厂里面也要写多少实现类inter原创 2021-05-13 11:42:39 · 589 阅读 · 1 评论 -
笔记:String与new String(),Integer、new Integer()、int的区别
一、String 与 new String()的区别1.直接赋值,如果值相同,就直接引用这个对象,不用新建–> true2.用new新建对象,新建对象是直接在堆内存中新建一个对象,再赋值,用new新建对象的对象****都不是同一个对象public void test() {// 搞清楚new与常量池的关系// 现在java的常量池中寻找 abc 对象// 如果没有,在堆内存中new一个值为”abc” 的对象,放到常量池中.//原创 2021-05-11 20:27:25 · 303 阅读 · 0 评论 -
操作系统-面试相关
操作系统面试总结操作系统1. 概念1.1 计算机系统的层次结构1.2 什么是操作系统1.3 什么叫系统调用1.4 局部性原理1.5 同步和互斥1.6 并发、并行、同步、异步1.7 中断2. 进程和线程2.1 区别2.2 进程的状态2.3 进程的通信方式2.4 线程同步的方式2.5 进程调度算法3. 内存管理:核心是内存分配3.1 内存分段管理3.2 内存分页管理3.3 段页式内存管理3.4 虚拟内存:仓库+店面的模式3.4.1 换入换出实现大内存3.4.2 页面置换算法4. reference:操作系原创 2021-05-11 16:21:35 · 496 阅读 · 0 评论 -
多线程高并发基础知识及面试总结——源码分析
java多线程面试相关1. 概念1.1 区分程序、进程、线程1.2 线程和进程有什么区别?1.3. 说说并发与并行的区别?1.4 多线程1.4.1 为啥使用多线程1.4.2 啥叫上下文切换1.4.3 Java中如何实现多线程以及比较优缺1.5 线程池1.6 线程分类:1.7 说说乐观锁与悲观锁2. Thread类2.1 Thread类的方法2.2 线程启动2.3 线程的生命周期2.4 线程通信:wait()、sleep()、yield()、notify()、notifyAll() 辨析2.5 线程死锁原创 2021-05-10 16:09:56 · 835 阅读 · 1 评论 -
Java基础知识及面试总结——面试中问的最多的内容!!!
1、八种基本数据类型byte叫位或字节,bit叫比特。1字节=8bit,1bit就是1位0/1二进制码原创 2021-03-19 11:32:05 · 409 阅读 · 0 评论 -
计算机网络基础知识及面试总结-这应该是最全的了
1. 计算机网络TCP/IP协议栈,OSI参考模型1.1 计算机网络的性能指标整段通路中的数据量;可以理解为比如1000米公路中的汽车数量2.传输层:传输层提供 应用进程之间,发送端端口到接收端端口之间的服务,要进行差错检验、流量控制、面向连接或无连接的服务2.1 用户数据报协议UDP:不建立连接,尽最大努力交付,不保证接收2.2 数据传输协议TCP每个数据包含目的地址,数据路由相互独立(路径可能变化);网络尽最大努力交付数据,但不保证不丢失、不保证先后顺序、不保证在时原创 2021-05-05 20:27:02 · 4105 阅读 · 25 评论 -
javaIO笔记
java反射一、基本知识二、测试一、基本知识* Java中的文件 File 和 IO流 * * File类: * 1. 创建: * File file1 = new File("hello.txt");//相对于当前module,相对路径 * File file2 = new File("D:\\hello.txt");绝对路径 * 2.方法,所有需求就有相应的方法 * * IO类 * 一、流的分类: * 1.操作数据单位:字节流(InputStream,图片视频)原创 2021-04-30 20:38:30 · 137 阅读 · 1 评论 -
这应该是你能找到的最深刻的集合面试总结——Java集合知识点集合及面试总结
/** * 复习集合: * 1. 集合的意义: * |--数组,内容类型固定,格式不可改变,大小不可改变。提供的方法少。 * |--集合:可以加入多种类型的内容,可以改变大小提供的方法很多,功能强大。 * * 2. 集合的框架结构 + 基本方法的使用 * 单个元素的集合: * |--List:有序可重复 * |--ArrayList---LinkedList * ① 两者区别,几乎相同 * linkedList底层是由链表实现,所以在插入删除原创 2021-04-30 16:17:28 · 1100 阅读 · 1 评论 -
Spring和Mybatis的面试总结
Spring面试题整理主要内容分块(1)Spring 是什么,有什么特点,有点(2)IOC(3)AOP(4)注解(5)IOC容器(6)bean 作用域、生命周期(7)事务 jdbc Template0. 参考:1. Spring是什么3. Spring由哪些模块组成?4.谈谈自己对于 Spring IoC 和 AOP 的理解IOC容器BeanFactory和ApplicationContext有什么区别?Spring的IOC注入方式5. Spring AOP 和 AspectJ AOP 有什么区别?6.S原创 2021-04-12 15:21:57 · 410 阅读 · 0 评论 -
Jackson框架使用教程
参考:写的非常好的一篇文章记录Jackson的用法原创 2021-03-18 16:17:30 · 265 阅读 · 0 评论