- 博客(27)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 欢迎大家关注我的社交主页,有很多免费资源哦,谢谢~❤❤❤
欢迎大家关注我的社交主页,并给予支持,谢谢~❤❤❤GitHub:https://github.com/CheeseCheese-IScreamGitee:https://gitee.com/cheesecheese-iscreamCSDN:https://blog.csdn.net/qq_38427787?spm=1010.2135.3001.5343最近会开始更新!!...
2021-04-14 23:11:11
122
原创 mysql的优化层面详解【学习笔记】
mysq|数据库优化层面图解优化层面商业需求:产品经理+项目经理【参与】系统架构:项目经理+系统架构师【介入】SQL及索引:【开发阶段】开发人员【关注】数据库表结构:开发人员【关注】系统配置+硬件:DBA(数据库管理员)+运维【关注】总结:越早介入越好!越往后,成本越高!商业需求背景:做需求的时候,不容易界定【需求是否合理】。技术人员怎么来证明一个需求是否合理?每次和产品经理提出新项目的时候,要求他们同时比出该项目的预期收益量化指标,为项目统计评估投入产出比例…
2021-04-19 23:07:57
405
6
原创 数据库优化的必要性【学习笔记】
为什么要进行数据库优化?避免网站页面出现访问错误【问题1】为什么产生超时:数据库连接池已经满了,查询的数据量比较大,引起数据库线程挂死,【问题2】产生的原因:数据查询慢,表庞大(上百万,上千万的数据)开发的时候忘记加索引(灾难)【问题3】超时或者阻塞,线程繁忙锁表增加数据库的稳定性什么叫低效?查询的时候全表扫描,没有使用索引。【例子】:开发人员在开发初期,忘记加索引,在开发阶段和测试阶段,或者项目上线初期,可能不会发现什么问题,因为用户量特别少,数据量特
2021-04-19 21:32:06
682
原创 接口与抽象类【学习笔记】
接口为什么要有接口的概念【EG】:与类相比接口的申明接口与抽象类的区别从实现角度看【EG】:But why?接口的多重实现总结:抽象类:只是提供了一些共有的实现。接口:描述类有什么能力接口和抽象类:纬度不同...
2021-04-19 00:02:34
135
原创 面向对象_类与对象【学习笔记】
类与对象逻辑结构物理结构this:employee类的引用类的静态变量,静态函数?代码package interview.oop.company;public interface BankEndPoint{ void payment(String name, int salary);}package interview.oop.company;import java.util.List;public class Employee{ static
2021-04-18 21:04:35
395
3
原创 算法复杂度【学习笔记】
根据复杂度从大到小:算法的组合 例:区间合并解题思路:对区间进行排序:根据左端点从小到大排,排完之后,从左到右扫描,扫描时,规定【循环不变式】【循环不变式】:(1) 记录之前看到的 所有区间 的 最大右端点,(2) 然后扫描,(3) 每扫描一个区间,拿这个区间去和当前所看到的最大右端点比较,(4) 比较后,有3种结果:当前所看到的最大右端点 比 区间小当前所看到的最大右端点 落在 区间里当前所看到的最大右端点 比 区间大(5) 更新当前最大右端点的值
2021-04-18 20:14:42
95
原创 中序遍历下一个结点_代码【学习笔记】
上一集见中序遍历下一个结点_分析+搭建框架代码细节:在运用非递归的方法调用中序遍历的时候:拿它的树根去问它的第一个结点是谁,有了first才能一路next下去。搭建逻辑框架:最后合成:【未简化,没有测试边界值】输出结果:优化:【简化后并测试了边界值还提高了覆盖率】输出结果:总结:完整代码在这里哦!CheeseCheese-IScream给个小星星鼓励一下吧~❤谢谢❤...
2021-04-18 19:31:54
156
原创 中序遍历下一个结点_分析+搭建框架【学习笔记】
例二:寻找中序遍历时的下一结点注意:双向箭头给一个结点,求中序遍历时的下一个结点。把输入的中序遍历从递归改成非递归。思考中序遍历:先中序遍历左子树,再遍历树根,再中序遍历右子树。中序遍历所看到的第一个节点D是第一个节点,没有左儿子,可能有右儿子,先遍历D的右儿子,没有右儿子,回到D的父亲B。遍历B的右子树E级所在的树,从E一直往左走G的下一个结点是E(E的左子树已经访问完毕了)。E的下一个结点是A(往上走2步)阐述关系:E是B的右子树:遍历完E的时候,找的下
2021-04-18 16:42:53
237
原创 树的遍历_构造后序【学习笔记】
例一:根据前序中序构造二叉树突破口:前序遍历第一个就是树根。把问题的规模缩小:最后:初始值(空传or单节点的树)进行递归调用【数学归纳法+递推关系】public static void main(String[] args) { TreeCreator creator = new TreeCreator(); TreeTraversal traversal = new TreeTraversal(); TreeNode sampleTree = creator.cr
2021-04-18 14:36:57
199
4
原创 树的遍历_二叉树的遍历【学习笔记】
树二叉树的遍历前序遍历:先前序遍历树根,然后前序遍历左子树,然后再前序遍历右子树。中序遍历:先中序遍历左子树,再遍历树根,再中序遍历右子树。后序遍历:先后序遍历左子树,再后序遍历右子树,再遍历树根。完整代码在这里哦!CheeseCheese-IScream给个小星星鼓励一下吧~❤谢谢❤...
2021-04-18 11:35:55
93
原创 Java集合类型【学习笔记】
思考:List:线性表Set:集合(不能有重复元素)(key)Map:字典(key, value)ArrayList:用数组数组实现的线性表LinkedList:用链表实现的线性表HashSet:用哈希表实现setTreeSet:用二叉树组的树实现set(用 平衡二叉搜索树 找元素)(平衡算法:红黑树)常见问题【思考】:他们都是list(线性表的结构)他们实现不同e:element【一句话回答】:List是一个接口,ArrayList和LinkedLis
2021-04-18 10:49:47
1650
11
原创 数据结构回顾【学习笔记】
数据结构数据结构回顾push():往结构里放入元素pop():从结构里取出元素栈:先进后出队列:先进先出有限队列:从小到大无向图:每个节点之间,没有方向a走到bb走到a双向有向图:单向,单行线a走到b,b不能往回走到a有向无环图:描述任务之间的先后关系,比如:开发一个软件系统,先决条件:要有需求文档,建立团队,签合同…怎么设计模型:需求分析,签合同是2个结点软件开发是1个结点【需求分析,签合同 是 软件开发的前提,分别往软件开发画一根线】深度优
2021-04-18 00:06:20
134
1
原创 边界控制_二分查找+设计测试用例+隐藏10年的bug【学习笔记】
边界控制例:二分查找普通查找:从第一个开始,一个一个看二分查找:从中间开始看(效率高)二分查找的必要条件:Arr是一个有序数组精确描述:/** * Searches element k in a sorted array. * * @param arr * a sorted array * @param k * the element to search * @return index in arr wher
2021-04-17 22:29:23
655
5
原创 【封神操作】循环控制_例题链表删除结点【学习笔记】
例二:链表中delete_ if要求:把所有数值为2的结点删除掉循环从什么角度入手?定义【循环不变式】假设第一个2已经被删掉了怎么处理第2个2思路:Java:把3的next指向5,垃圾回收把结点2回收掉C++:还需要delete结点2具体怎么做?有一个变量指向结点3把3指向5不用管2删完2,下一个要考虑结点5,此时previous指向3完成【循环不变式】向前推进的过程【循环不变式】:从链表开头到previous结点为止,保证所有值为2的结点都已经被正确
2021-04-17 20:29:09
553
2
原创 循环控制_例题链表反转非递归【学习笔记】
例一:链表反转前言:如果链表有100万个元素,资源开销并不大,把它反转也不是见特别复杂的事,但是用“递归”就会调100万次,系统开销非常大,所以要用循环的方法做出链表的反转。用循环的方法做“链表反转”的步骤:①定义循环不变式说一句断言,让它在整个循环中始终成立之前的“递归”做法:把第一个元素单独拿出来,把2345进行递归“循环”做法:在中间切一刀:前三个结点反转完:3和4的连接线属于结点3的部分:切之前,3的next指向4切之后,3的next指向2
2021-04-17 18:01:49
188
原创 编码技巧_循环书写方法【学习笔记】
循环控制循环和递归一样,都需要有一个断言。递归中的断言:1. 函数定义本身有返回值,参数,side-effect2. 断言函数能够正确工作:假设【N-1】的情况能够正确工作,能够推出【N】的情况也能够正确工作。循环中的断言:定义:看循环框架:1.定义了2个参数a,b2.有个while循环3.循环体怎么保证循环的正确性?要有一个循环不变式,要说一句话:【定义条件】条件在什么时候要满足呢?进入第一次循环之前:a,b必须满足这个条件每一次循环结束之前:a,b
2021-04-17 16:15:37
199
原创 上传项目到Gitee!超简单教程!!
首先你得先看看我的另一篇“上传本地文件到GitHub”,下载Git,把准备工作做好(SSH keys和Token).github用起来不方便,转战Gitee啦!然后,按照这个大佬的步骤上传文件:扣肉馅饺子最后可能会出错,别慌:GHUIJS简单搞定~❤...
2021-04-17 15:05:00
155
原创 递归控制_例题列出所有组合【学习笔记】
例三:列出所有组合设计思路:数组是1234,任取其中的2个元素作为一个组合,共有6种取法:把问题规模缩小(缩小一个规模):精确描述:/** * Generates all combinations and output them, * selecting n elements from data. */Generates all combinations and output them,生成所有组合并输出它们selecting n elements from data
2021-04-17 14:44:44
256
原创 递归控制_例题链表反转【学习笔记】
例二:链表反转【思路】先把2345链表反转假设函数能够正确反转链表【假设很重要】反转之后,元素1的next指向哪里呢?仍然指向元素2【细节】反转没有碰到元素1本身,只是把2开头的链表进行了反转接下来要做的事:1开头的链表也能正确反转怎么做?把2的next指向1把1的next指向null敲代码原则:精确描述:/** * Reverses a linked list. * * @param head * the linked l
2021-04-16 22:25:36
108
原创 递归控制_例题链表创建【学习笔记】
例一:链表创建单向链表:只能往后指,不能往前看通过考察链表 = 考察敲代码能力递归:严格定义函数的作用:给一个数组,把数组每个元素生成一个节点,把节点首尾相接链表必须以null结尾把第一个节点作为链表头这样:用户可以拿着链表头,可以一直顺着它的next,访问到链表结尾看到null之后,说明链表结束了怎么缩小问题的规模:定义一个函数CreateLinkedList它的返回值node(链表的头)输入本来是12345把1拆掉,把2345去建一个Link
2021-04-15 17:00:00
205
原创 教你如何上传本地文件到GitHub上!最全!最新!最细致!
新手们看过来啦(大佬也可以过来监督监督,指点指点~)如何安装GitHub(最新的下载教程)参考这个2020-12-04发布的版本吧小布软件分享先注册一个自己的GitHub账号,然后!!不要急着上传!上传前先进行以下步骤!①获取git的tokenToken的描述尽量简单点,方便后面登录使用!!(记住最好)然后勾选Token的权限,全部勾选,方便点但是我第一次只选择了repo,不知道后面会不会出问题,反正还可以再建。按步骤进行~②Github 生成SSH秘钥(详细教
2021-04-15 16:32:06
266
2
原创 编码技巧:递归书写方法【学习笔记】
如何证明递归函数正确执行?写递归函数的过程 = 证明递归函数正确性的过程递归书写方法Side-effect:副作用函数不光操作参数和返回值,它还操作了一些全局状态,在运行过程中对全局状态会发生一些改变,还有一种情况,函数在运行过程中对参数本身会发生一些改变Side-effect【EG】:比如说传了一个数组,但是在函数过程中改变数组中元素的值or改变它们的顺序通常来说,比较理想的做法:函数运行完,没有Side-effect在运行过程中可以产生Side-effect(改一些
2021-04-14 20:29:28
119
原创 数学归纳法是编码的依据【学习笔记】
数学归纳法数学归纳法的例子数列求和公式①n=1的情况:n=1带进去②n>1的情况:假设n-1的情况成立,③对于n的情况,利用n-1的结论最后在n-1成立的情况下,研究 对n的情况也是成立的结论:高斯的公式 对所有自然数是成立的数学归纳法 翻译成 程序设计语言package my;public class HelloWorld_new1{ public static void main(String[] args) { System.out.p
2021-04-14 18:29:00
180
原创 数据类型的常见问题【学习笔记】
(一)整数在内存中是怎么表示的?补码表示。为什么要用补码表示?有什么好处?浮点数在内存中是怎么表示的?相当于科学计数法的做法。浮点数表示数的范围特别大,但精度有限(二)是“整数在内存中是怎么表示的”更加底层的概念**假设:**一个整数有4个字节,内存中分4个字节大小的块问:高位放在高地址还是高位放在地地址?(衍生出2中不同的顺序)Big-ending/Little-ending什么是对齐?数据在内存中需要对齐比如说:C++有一个结构体,里面有个char类型(1Byt
2021-04-14 16:48:32
179
原创 Java数据类型、拆箱和装箱【学习笔记】
1.Primitive type一共十来个,都是系统内建数据类型,没办法增加或自定义。2.剩下的所有类型都叫object。3.Primitive type 有 object 和它相对应。4.String没有相对应的Primitive type。简单了解装箱和拆箱值类型:数值是多少就是多少EG:5==5a.equals(b)还要判断a是不是nulla是null会抛出java.lang.NullPointerException异常但是Objects.equals(a,b):a,b就没.
2021-04-08 17:22:13
174
6
原创 Error: missing `server‘ JVM at `*:\Program Files\bin\server\jvm.dll‘.
最先起先出现问题的就是在exlipse中不能Debug了,卸载eclipse再重新下载就可以运行了,但是放在D盘的eclipse-workspace不删,以便重启eclipse时Workspace还可以指定之前的位置(D:\Program Files\eclipse-workspace\JavaProjects)。然后再来解决环境变量配置的问题:cmd输入【java】不成功,输入【javac】成功之前的eclipse我是下载到D盘的(有中文路径),觉得不妥改在C盘目录下(C:\Program File
2021-03-13 16:41:56
3751
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人