- 博客(156)
- 资源 (3)
- 收藏
- 关注
原创 设计模式整理
门面模式子系统的外部与其内部的通信必须通过统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。利用门面模式解决对多种日志框架的兼容下图的包工头就类比门面接口facede具体代码..................
2022-06-28 21:33:24
212
原创 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
177
原创 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
126
转载 spring注入方式
转载:https://blog.csdn.net/a745233700/article/details/89307518平常的Java开发中,程序员在某个类中需要依赖其它类的方法。 通常是new一个依赖类的实例再调用该实例的方法,这种开发存在的问题是new的类实例不好统一管理。Spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过Spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是”控制反转”。通俗的理解是:平常我们new一个实例,这个实例的控.
2022-05-29 14:46:58
477
原创 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
384
原创 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
151
原创 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
129
原创 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
88
原创 操作系统面经整理
进程和线程的区别进程是程序的⼀次执⾏过程,是系统运⾏程序的基本单位,因此进程是动态的。线程与进程相似,但线程是⼀个⽐进程更⼩的执⾏单位进程是资源分配的最小单位,线程是CPU调度的最小单位所有与进程有关的资源,都被记录在PCB中进程是抢占处理机的调度单位, 进程拥有完整的虚拟内存地址空间,各个进程之间是独立的;线程属于某个进程,共享其资源, 线程只有堆栈寄存器,程序计数器和TCB组成。不同的线程共享进程的地址空间,同一进程中的不同线程可能是相互影响的。进程切换的开销要闭线程切换的开销大,所以线程
2022-05-18 14:11:17
3275
原创 面经题
抽象类和接口的区别相同点(1)都不能被实例化 (2)接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能实例化。不同点(1)接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。(2)实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。(3)接口强调特定功能的实现,而抽象类强调所属关系。(4).
2022-04-26 11:14:50
77
原创 美团到店测试岗暑期实习
能实习多久?说了两个项目经历(机器视觉算法和本科竞赛嵌入式的)抽象类和接口的区别?了解反射么?有写过反射么?说了一下通过反射创建对象和调用方法的过程框架有了解么?我说不熟,面试官换了一个问题说一下垃圾回收垃圾回收条件?为什么FullGC回收的时候,不一定能带动MinorGC的回收深拷贝和浅拷贝?equals和==的区别?try catch 里面的返回后,finally中的return会执行么?java并发编程的问题?如何解决?常用的状态码?HTTP无状态的场景?如何解决?HT.
2022-04-21 21:41:08
993
原创 字节教育后端开发暑期实习一面
介绍一下项目(自己实验室课题,机器视觉方面的,这个面试官并不在意)浏览器中输入一个URL,网页加载的过程和使用到的协议http和https的区别,以及加密过程追问:在https握手过程中,服务器给客户端发送证书,如何确定发送哪一个证书?答:客户端在发送的时候会发送自己的SSL的版本吗第二个追问没听明白。。。。上一个问题用到了IP协议,那么IP常用的路由协议有哪些?答:没答上来追问:那你觉得应该如何设计路由协议?答:由于路由器之间形成的结构是图,将路由器自己的状态广播出去,最后形成一.
2022-04-21 20:45:38
513
转载 scanner输入问题
https://www.cxyzjd.com/article/qq_32367263/81329653扫描器 ScannerScanner实现字符串的输入有俩种方法:一种是next(),另一种是nextLine().他们的 区别:next()一定要读取到有效字符之后才可以结束输入,对输入有效字符之前遇到的空格键,Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键,Tab键或Enter键等视为分隔符或结束符。next()查找并
2022-04-09 21:59:09
616
原创 二分查找做题心得
二分查找二分查找是一种思想,双指针是实现的“工具”。二分法有以下几种情况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
274
原创 快排题总结
快排模板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
160
原创 SQL调优/写SQL
根据慢日志定位慢查询sql开启慢日志设置查询时间使用explain等工具分析在sql语句前面添加exelpain关键字id字段表示sql的执行顺序typeExtra修改sql或者尽量让sql走索引
2022-03-28 08:33:44
208
原创 数据库常见的索引模型
1. 索引模型数据库的常见索引模型有hash表,有序数组和搜索树hash表:哈希表是一种以键-值(key-value) 存储数据的结构优点:新增记录时速度很快缺点:不是有序的,hash索引做区间查询很慢有序数组:按照索引递增的顺寻存在数组中优点:有序数组在等值查询和范围查询场景中的性能都非常优秀缺点:新增记录的成本较高搜索树:二叉搜索树:每个节点的左儿子小于父节点, 父节点又小于右儿子。优点:查找的复杂度为log(n)缺点:新增记录的时候,需要维护平衡二叉树,增加
2022-03-27 15:56:52
1636
原创 栈和队列题型
模拟栈和队列232.用栈实现队列class MyQueue { Deque<Integer> stack1; Deque<Integer> stack2; public MyQueue() { stack1 = new LinkedList<>(); stack2 = new LinkedList<>(); } /* 压栈没有空栈的情况 */ pub
2022-03-26 19:48:51
396
原创 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
223
原创 哈希表类型记录
仅含有小写字母的哈希题仅含有小写字母的哈希题时,可以采用数组的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
366
原创 双指针类题型记录
快慢指针两个指针从一个方向出发。数组移除【符合某个特点的元素】利用快慢指针,通常用于在原地修改数组的情况移除指定元素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
862
原创 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
1174
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人