- 博客(156)
- 资源 (3)
- 收藏
- 关注
原创 设计模式整理
门面模式 子系统的外部与其内部的通信必须通过统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。利用门面模式解决对多种日志框架的兼容 下图的包工头就类比门面接口facede 具体代码 ..................
2022-06-28 21:33:24
233
原创 leecode学习笔记-括号问题
多个括号的判定 这种需要所有括号都入栈。先判断栈是否是空,后是非空情况。 class Solution { public boolean isValid(String s) { Deque<Character> stack = new LinkedList<>(); for (int i = 0; i < s.length(); i++) { if (stack.isEmpty()) { .
2022-06-05 11:21:04
201
原创 leecode学习笔记模拟
反转字符串2 这道题用到了双指针(反转字符串的双指针),但是主要难点在模拟 class Solution { public String reverseStr(String s, int k) { char[] chars = s.toCharArray(); for (int i = 0; i < s.length(); i += 2 * k) { if (i + k > s.length()) { .
2022-06-05 11:20:30
153
转载 spring注入方式
转载:https://blog.csdn.net/a745233700/article/details/89307518 平常的Java开发中,程序员在某个类中需要依赖其它类的方法。 通常是new一个依赖类的实例再调用该实例的方法,这种开发存在的问题是new的类实例不好统一管理。 Spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过Spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。 依赖注入的另一种说法是”控制反转”。通俗的理解是:平常我们new一个实例,这个实例的控.
2022-05-29 14:46:58
511
原创 leecode学习笔记-回溯的去重(组合排列问题)
回溯可以看成是一个树的结构,for循环是树层(即树的宽度遍历),递归函数是进行树枝(即树的深度遍历)。如果给的数组有重复的数据,那么就会涉及到去重。 树层去重代码:为了防止结果上同一个位置的值相同,这样可能会造成相同的结果[[1,1],[1,1]] if (i > 0 && candidates[i] == candidates[i - 1] && used[i - 1] == false) {//事先需要对数组进行排序 continue;
2022-05-24 19:57:37
424
原创 leecode学习笔记-建树/序列化树
创建二叉树的代码 https://www.programmercarl.com/%E5%89%8D%E5%BA%8F/ACM%E6%A8%A1%E5%BC%8F%E5%A6%82%E4%BD%95%E6%9E%84%E5%BB%BA%E4%BA%8C%E5%8F%89%E6%A0%91.html // 根据数组构造二叉树 TreeNode* construct_binary_tree(const vector<int>& vec) { vector<TreeNode*>
2022-05-24 19:00:24
175
原创 leecode做题笔记-两个字符串相互比较动态题的写法
这种题为了方便,dp[i][j] 往往表示 s1[0: i - 1] 和 s2[0 : j - 1]的比较情况。 编辑距离 class Solution { public int minDistance(String word1, String word2) { int[][] dp = new int[word1.length() + 1][word2.length() + 1]; for (int i = 0; i < word1.leng
2022-05-20 22:56:28
152
原创 leecode做题笔记-旋转数组问题
岛屿数量 class Solution { public int numIslands(char[][] grid) { int count = 0; for (int i = 0; i < grid.length; i++) { for (int j = 0; j < grid[0].length; j++) { if (grid[i][j] == '1') {
2022-05-19 18:41:43
117
原创 操作系统面经整理
进程和线程的区别 进程是程序的⼀次执⾏过程,是系统运⾏程序的基本单位,因此进程是动态的。线程与进程相似,但线程是⼀个⽐进程更⼩的执⾏单位 进程是资源分配的最小单位,线程是CPU调度的最小单位 所有与进程有关的资源,都被记录在PCB中进程是抢占处理机的调度单位, 进程拥有完整的虚拟内存地址空间,各个进程之间是独立的; 线程属于某个进程,共享其资源, 线程只有堆栈寄存器,程序计数器和TCB组成。不同的线程共享进程的地址空间,同一进程中的不同线程可能是相互影响的。 进程切换的开销要闭线程切换的开销大,所以线程
2022-05-18 14:11:17
3327
原创 面经题
抽象类和接口的区别 相同点 (1)都不能被实例化 (2)接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能实例化。 不同点 (1)接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。 (2)实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。 (3)接口强调特定功能的实现,而抽象类强调所属关系。 (4).
2022-04-26 11:14:50
95
原创 美团到店测试岗暑期实习
能实习多久? 说了两个项目经历(机器视觉算法和本科竞赛嵌入式的) 抽象类和接口的区别? 了解反射么? 有写过反射么?说了一下通过反射创建对象和调用方法的过程 框架有了解么?我说不熟,面试官换了一个问题 说一下垃圾回收 垃圾回收条件? 为什么FullGC回收的时候,不一定能带动MinorGC的回收 深拷贝和浅拷贝? equals和==的区别? try catch 里面的返回后,finally中的return会执行么? java并发编程的问题?如何解决? 常用的状态码? HTTP无状态的场景?如何解决? HT.
2022-04-21 21:41:08
1015
原创 字节教育后端开发暑期实习一面
介绍一下项目(自己实验室课题,机器视觉方面的,这个面试官并不在意) 浏览器中输入一个URL,网页加载的过程和使用到的协议 http和https的区别,以及加密过程 追问:在https握手过程中,服务器给客户端发送证书,如何确定发送哪一个证书? 答:客户端在发送的时候会发送自己的SSL的版本吗 第二个追问没听明白。。。。 上一个问题用到了IP协议,那么IP常用的路由协议有哪些? 答:没答上来 追问:那你觉得应该如何设计路由协议? 答:由于路由器之间形成的结构是图,将路由器自己的状态广播出去,最后形成一.
2022-04-21 20:45:38
534
转载 scanner输入问题
https://www.cxyzjd.com/article/qq_32367263/81329653 扫描器 Scanner Scanner实现字符串的输入有俩种方法:一种是next(),另一种是nextLine(). 他们的 区别: next()一定要读取到有效字符之后才可以结束输入,对输入有效字符之前遇到的空格键,Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键,Tab键或Enter键等视为分隔符或结束符。 next()查找并
2022-04-09 21:59:09
645
原创 二分查找做题心得
二分查找 二分查找是一种思想,双指针是实现的“工具”。二分法有以下几种情况 1. 有序无重复模板 用于有序,无重复数组 class Solution { public int search(int[] nums, int target) { if (target < nums[0] || target > nums[nums.length - 1]) { return -1; } int left = 0;
2022-04-07 00:30:31
298
原创 快排题总结
快排模板 class Solution { public int[] sortArray(int[] nums) { recurCompare(nums, 0, nums.length - 1); return nums; } void recurCompare(int[] nums, int left, int right) { if (left >= right) { retu.
2022-04-05 10:53:35
180
原创 SQL调优/写SQL
根据慢日志定位慢查询sql 开启慢日志 设置查询时间 使用explain等工具分析 在sql语句前面添加exelpain关键字 id字段表示sql的执行顺序 type Extra 修改sql或者尽量让sql走索引
2022-03-28 08:33:44
288
原创 数据库常见的索引模型
1. 索引模型 数据库的常见索引模型有hash表,有序数组和搜索树 hash表:哈希表是一种以键-值(key-value) 存储数据的结构 优点:新增记录时速度很快 缺点:不是有序的,hash索引做区间查询很慢 有序数组:按照索引递增的顺寻存在数组中 优点:有序数组在等值查询和范围查询场景中的性能都非常优秀 缺点:新增记录的成本较高 搜索树: 二叉搜索树:每个节点的左儿子小于父节点, 父节点又小于右儿子。 优点:查找的复杂度为log(n) 缺点: 新增记录的时候,需要维护平衡二叉树,增加
2022-03-27 15:56:52
1701
原创 栈和队列题型
模拟栈和队列 232.用栈实现队列 class MyQueue { Deque<Integer> stack1; Deque<Integer> stack2; public MyQueue() { stack1 = new LinkedList<>(); stack2 = new LinkedList<>(); } /* 压栈没有空栈的情况 */ pub
2022-03-26 19:48:51
420
原创 KMP题记录
重复的子字符串 class Solution { public boolean repeatedSubstringPattern(String s) { if (s.length() == 0) { return false; } int[] next = new int[s.length()]; getNext(next, s); int len = s.length(); ...
2022-03-26 19:48:03
246
原创 哈希表类型记录
仅含有小写字母的哈希题 仅含有小写字母的哈希题时,可以采用数组的hash表结构 有效字母的异位词 class Solution { public boolean isAnagram(String s, String t) { int[] hash = new int[26]; for (int i = 0; i < t.length(); i++) { hash[t.charAt(i) - 'a']++; }
2022-03-16 22:21:16
395
原创 双指针类题型记录
快慢指针 两个指针从一个方向出发。数组移除【符合某个特点的元素】利用快慢指针,通常用于在原地修改数组的情况 移除指定元素 class Solution { public int removeElement(int[] nums, int val) { int slowIndex = 0; for (int fastIndex = 0; fastIndex < nums.length; fastIndex++) { if (val !=
2022-03-13 20:17:15
883
原创 MVC开发模式和三层架构
MVC开发模式 为什么会有MVC开发模式? 这和jsp演变历史有关 早期只有servlet,只能使用response输出标签数据,非常麻烦 后来有了jsp,简化了servlet的开发,如果过度使用jsp,在jsp中写了大量的java代码,并且还有html表,这样难于维护,难于分工协作 再后来,java的web开发,借鉴了mvc模式,使得程序的设计更加合理 什么是MVC开发模式? 将之前写在jsp中的代码提取出来分成三部分: M:Model,模型 完成具体的业务操作,如:查询数据库,封装对象 V:
2022-03-11 15:43:31
1194
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅