03 2021 档案

摘要:在我们平常创建对象的时候,都是通过关键字 new 来实现的,例:Class A = new A() 。 在一些情况下,要创建的对象需要一系列复杂的初始化操作,比如查配置文件、查数据库表、初始化成员对象等,如果把这些逻辑放在构造函数中,会极大影响代码的可读性。不妨定义一个类来专门负责对象的创建,这样的 阅读全文
posted @ 2021-03-31 10:20 将来的事 阅读(91) 评论(0) 推荐(0)
摘要:创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程。 以下参考这篇文章:https://zhuanlan.zhihu.com/p/160842212 什么是单例模式 单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使 阅读全文
posted @ 2021-03-31 09:33 将来的事 阅读(81) 评论(0) 推荐(0)
摘要:一道做过而且有印象的题目 再做竟然没搞出来,真是。。。 归根结底,是这个矩阵消除行列的方式不直观,直到我看到了一张图 我原来老是纠结在左边那条对角线上,而且感觉这种想法也挺直观的 但是这图一画出来就懂了 这确实就是二叉搜索树 于是代码就很简单了 class Solution { public boo 阅读全文
posted @ 2021-03-25 16:42 将来的事 阅读(41) 评论(0) 推荐(0)
摘要:这道题在原书上绝对不是简单级别啊!它考察的是程序员的沟通能力,先问面试官要时间/空间需求!!!只是时间优先就用字典,还有空间要求,就用指针+原地排序数组,如果面试官要求空间O(1)并且不能修改原数组,还得写成二分法!!! 这个最明显的做法当然就是用一个HashSet,排除重复就行 原地排序这种想法到 阅读全文
posted @ 2021-03-16 10:29 将来的事 阅读(87) 评论(0) 推荐(0)
摘要:这题挺好,一次性做出 重点是定义一个dummy节点,这样就不用特判head节点了 注意看一下链表这种指针的感觉 dummy.next=head 是把head指向的对象也指向了dummy 之后即使head=head.next这样改动head dummy还是指的原来的位置 class Solution 阅读全文
posted @ 2021-03-16 10:18 将来的事 阅读(60) 评论(0) 推荐(0)
摘要:突然发现这个题也没什么好说的,就存到其他集合框架里再取出来 用stack也差不多 class Solution { public int[] reversePrint(ListNode head) { List<Integer> list=new ArrayList<>(); while(head! 阅读全文
posted @ 2021-03-16 10:13 将来的事 阅读(100) 评论(0) 推荐(0)
摘要:锁有不同的分类标准,可以分为以下: 从粒度上来看,innodb只有表锁和行锁 myisam不支持行锁 共享锁和排他锁(s锁和x锁,读锁和写锁,都是一个意思) 用来读数据,其他事务也可也读到,但不允许修改,多个共享锁可以共存 什么是意向锁 数据引擎维护,是为了避免用于判断没有其他事务锁住行时,还要使用 阅读全文
posted @ 2021-03-15 10:14 将来的事 阅读(60) 评论(0) 推荐(0)
摘要:什么时候用事务 除了查询,只要修改(增删改)就加事务 事务的定义:数据库事务( transaction)是一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。 innodb支持事务,myisam不支持事务 事务的四大特性: ACID 原子性:操作最小单位,永远不会出现 阅读全文
posted @ 2021-03-15 08:58 将来的事 阅读(100) 评论(0) 推荐(0)
摘要:在这里我们能看到,每张 InnoDB 的表有两个文件(.frm 和.ibd),MyISAM 的表有三个文件(.frm、.MYD、.MYI)。 阅读全文
posted @ 2021-03-14 11:42 将来的事 阅读(48) 评论(0) 推荐(0)
摘要:磁盘预读:通过经验,临近数据被读到的概率更大。因此这样按索引组织数据库也是更有效。 为什么要选择B+树作为索引的数据结构 哈希作为索引的数据结构(memory存储引擎使用这种) 只能处理等值查询,对于范围查询无能为力 要把数据丢到内存,占内存空间(哈希这种结构不适合磁盘存储) 二叉树或者红黑树存储 阅读全文
posted @ 2021-03-14 11:16 将来的事 阅读(94) 评论(0) 推荐(0)
摘要:又一个回溯法的题目,做完了排列,这个是子集 区别就是: 一边track要一边把路径加入结果 二是要定一个序号,这个序号后面的才是可选的值,这个自己画一个树应该就能感觉出来 例如第一个选2,后面可选的就只有3 还有一个问题就是这个题不存在结束条件,写出来也是白写,因为已经在for循环中已经附带了什么时 阅读全文
posted @ 2021-03-10 16:47 将来的事 阅读(67) 评论(0) 推荐(0)
摘要:三大特性为:封装 继承 多态 先谈谈理解: 封装:该露的露,该藏的藏 隐藏对象的属性和实现细节,仅对外暴露公共的访问方式 为了保证安全性,实现高内聚,低耦合(高内聚就是类的內部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用) 实现:public private等关键字,私有 阅读全文
posted @ 2021-03-10 11:02 将来的事 阅读(71) 评论(0) 推荐(0)
摘要:又是一个回溯法的题目,但难度更大了,很多地方容易出错 主要是多了可能的重复 二是字符数组和字符串的转换问题 这题的核心在于交换,我们可以想象为 确认第一位的值,就是将第1位和其他所有位做交换,做完交换后的后面的元素就是剩下的可选列表 去重时则需要使用到HashSet “这个技巧应该之前的数字排列的回 阅读全文
posted @ 2021-03-09 17:14 将来的事 阅读(73) 评论(0) 推荐(0)
摘要:为什么需要有这个包装类 1.万物皆对象,把基本类型也弄成对象。这样就能有自己的属性和方法。 2.说过JAVA是面相对象的语言, 其很多设计都是针对对象来的。比如HashMap的设计, 在插入时, 需要先调用插入key的Object::equals, 但是基本数据类型是没有行为的, 意味着基本数据类型 阅读全文
posted @ 2021-03-09 10:04 将来的事 阅读(75) 评论(0) 推荐(0)
摘要:这题第一反应就是递归,然后虽然磕磕绊绊做出来了,但是时间复杂度惨得要死 思路如下: 总的思路就是递归,另外注意如果没有结果返回是空数组,这样也符合递归函数最终的返回值意义 class Solution { public List<List<Integer>> pathSum(TreeNode roo 阅读全文
posted @ 2021-03-08 17:21 将来的事 阅读(79) 评论(0) 推荐(0)
摘要:这道题一看就觉得似曾相识,感觉好像在看浙大的数据结构的课中讲到过,但又记不起来了。。。 所以复习一下吧,知道了二叉树的 中序+前序/后序 都能还原二叉树 之所以必须要中序是因为在单 阅读全文
posted @ 2021-03-08 17:19 将来的事 阅读(60) 评论(0) 推荐(0)
摘要:基本类型和引用类型 分为基本类型和引用类型 基本类型就是四类八种 引用类型就是变量,存储在堆内 Person对象有一个为int类型的属性,这个属性也是放在堆中的 当==两边是基本数据类型时,==于比较的是两边的两个值是否相等,当==两边是引用类型时比较的是两个内存地址。.equals()是比较值 基 阅读全文
posted @ 2021-03-08 16:51 将来的事 阅读(78) 评论(0) 推荐(0)
摘要:概念 值传递:指的是在方法调用时,传递的是参数是按值的拷贝传递。 特点:传递的是值的拷贝,也就是传递后就互不相关了。 引用传递:指的是在方法调用时,传递的参数是按引用进行传递,其实传递的是引用的地址,也就是变量所对应的内存空间的地址。 特点:传递的是值的引用,也就是说传递前和传递后都指向同一个引用( 阅读全文
posted @ 2021-03-08 15:51 将来的事 阅读(236) 评论(0) 推荐(0)
摘要:由于图在面试里相对问的少,所以我先花了一点时间大致了解了一下基本知识 图常用于表示多对多的关系 包含:一组顶点(V)和一组边(W) 抽象数据类型定义: 两种常用在程序里表示图的方式: 邻接矩阵,邻接表 邻接矩阵: 如果有连接就是1 特点:对角线为0,对称 于是发现有一半空间是重复的 可以变二维矩阵为 阅读全文
posted @ 2021-03-08 10:58 将来的事 阅读(93) 评论(0) 推荐(0)
摘要:最为典型的回溯法题目 回溯法其实都可以画树形图(决策树),用于解决排列组合问题,n皇后问题等等 注意这里的路径和选择列表 关注几点: 结束递归的条件 递归前的操作:加入路径 递归后的操作:撤销选择,等于是回到父节点 核心框架: 至于这道题的代码: class Solution { List<List 阅读全文
posted @ 2021-03-03 18:14 将来的事 阅读(72) 评论(0) 推荐(0)