摘要: 写递归代码的关键点 ①写出递推公式,找到终止条件 ②我们看到递归时,我们总想把递归平铺展开,脑子里就会循环,一层一层往下调,然后再一层一层返回,试图想搞清楚计算机每一步都是怎么执行的,这样就很容易被绕进去。对于递归代码,这种试图想清楚整个递和归过程的做法,实际上是进入了一个思维误区。很多时候,我们理 阅读全文
posted @ 2022-04-17 22:21 codemelo 阅读(42) 评论(0) 推荐(0)
摘要: 队列与栈类似,都是基于数组或者链表,都只有入和出两个操作,不过有两点不同 ①栈先进后出,队列先进先出 ②栈只需要一个栈顶指针,队列则需要一头一尾两个指针,这两个是当前队列的界限 队列的出队和入队该怎么做呢? 我们将使用循环队列,因为如果不形成循环队列,当tail指到了数组尽头,再有入队操作时,就得扩 阅读全文
posted @ 2022-04-17 16:56 codemelo 阅读(56) 评论(0) 推荐(0)
摘要: 二分查找,简单来说就是在给定的数据范围,每次取完中间数后,就二分缩小范围(范围的最小值或者最大值,其中一个变成前一次范围的中间值),直到范围区间只有一个数或者找到想要的数。 举个例子 我们假设只有 10 个订单,订单金额分别是:8,11,19,23,27,33,45,55,67,98。还是利用二分思 阅读全文
posted @ 2022-04-17 16:02 codemelo 阅读(99) 评论(0) 推荐(0)
摘要: 链表和数组不同,数组是必须要连续内存空间,链表是通过指针将零碎的内存空间串联起来 常见的链表有单链表,双向链表,循环链表 单向链表 单向链表每个数据后面都会有一个叫next的结点,头结点是记录链表的基地址,也就是链表第一个元素,尾结点指向null,代表链表结束,其他元素的结点均是指向下个元素。 所以 阅读全文
posted @ 2022-04-15 16:21 codemelo 阅读(76) 评论(0) 推荐(0)
摘要: 时间空间复杂度是衡量代码执行效率的一个重要指标。 事后统计法依赖于测试环境,会受极端数据规模的影响,所以时间空间复杂度分析就应运而生了 大O时间复杂度表示法 T(n)代表代码执行的时间,f(n)代表每行代码执行次数的总和,O是代表前面两个变量成正比,n是数据规模 大O时间复杂度实际上并不代表代码具真 阅读全文
posted @ 2022-04-11 09:26 codemelo 阅读(260) 评论(0) 推荐(0)
摘要: 在java,很多时我们需要通过外部配置文件,在不修改源码的情况下,控制程序(这符合设计模式的开闭原则(ocp原则),即不修改源码,扩容功能) 于是,为了方便这种需求,java提供了反射(reflection)机制 反射 我们知道,在加载完某个类之后,堆中会产生一个相应的并且唯一的class对象,这个 阅读全文
posted @ 2022-04-10 08:47 codemelo 阅读(35) 评论(0) 推荐(0)
摘要: 网络通信 概念:通过网络,将数据从一台设备传输到另一台设备 在java中,网络通信一般用java.net这个包的类和接口 网络 概念:两台或多台设备通过物理设备连接起来的网,叫做网络 根据网络覆盖范围不同,可做以下分类 局域网:覆盖范围最小,仅仅覆盖一个教室或者一个机房 城域网:覆盖范围较大,可以覆 阅读全文
posted @ 2022-04-08 09:33 codemelo 阅读(346) 评论(0) 推荐(0)
摘要: 并发 计算机同时存在多个运行的程序,需要os的调度和管理 共享 1.“同时”访问 2.互斥共享 虚拟 利用多道程序设计技术,让每个用户都觉得有一台计算机来为他服务 异步 程序的执行不是一贯到底的,而是走走停停,前进的速度不可预知,但只要运行环境相同,os需要保证程序在同样的输入下,输出结果要相同 阅读全文
posted @ 2022-04-05 19:26 codemelo 阅读(41) 评论(0) 推荐(0)
摘要: 文件流 文件在程序中是以流的形式来操作的。 流:数据在数据源文件(位于磁盘)和程序(位于内存)之间传输时经过的路径 流分为输入和输出流,这个输入输出是相对于内存而言的,即如下图 ①FileWriter一定要关闭流或者flush才能真正把数据写入到文件,因为看源码可以知道把数据写入到文件的关键方法是w 阅读全文
posted @ 2022-04-02 07:32 codemelo 阅读(555) 评论(0) 推荐(0)
摘要: 进程 1.进程是指一个进行中的程序或者一次程序的一次执行过程,是个动态过程,进程有自己的产生,存在和消亡的过程 2.不同的进程可以是同一个软件,比如打开了10个腾讯QQ,那就是10个进程 线程 1.一个线程是进程创建出来的一个实体,一个进程可以有多个线程 2.同一时刻,只允许执行一个线程的叫单线程, 阅读全文
posted @ 2022-03-27 11:51 codemelo 阅读(276) 评论(0) 推荐(0)