数据结构-二叉树

  • 二叉树的第 i 层最多有$2^{i-1}$个节点

  • 深度为 h 的二叉树最多有$2^h - 1$个节点。定义根节点深度为1。

  • $n_0$(度为 0 的节点,叶子节点),$n_1$(度为 1 的节点),$n_2$(度为 2 的节点),有 $n_0 = n_2 + 1$

1
2
3
n0+n1+n2-1 = 0*n0+1*n1+2*n2

n0 = n2+1

Read More

单线程和多线程下的ConcurrentModificationException

这个寒假看的《Java并发编程实战》终于派上了用场,今天搬砖过程中遇到了ConcurrentModificationException,结果还是不会。之后晚上回去恶补一波,写此文章。

JCP -> 《Java并发编程实战》

Read More

JPA、Hibernate、Spring Data JPA 傻傻分不清?

JPA、Hibernate、Spring Data JPA 三者的联系和不同:
Hibernate is a JPA implementation, while Spring Data JPA is a JPA Data Access Abstraction.
With Spring Data, you may use Hibernate, Eclipse Link or any other JPA provider.

Read More

Grain重构记-UI

距离上一篇文章,已有一段时间,最近事情比较多,好想静下心学习 😿 这篇就贴一贴海大助手的 UI,不多说了。

Read More

Grain重构记-API

Grain 是我大一自学 Android 时写的一个App,最终学校关闭服务器接口,卒。
最近发现了一个新的可用的网站,所以重构的时候到了,在框架的选择上我一直纠结是用 MVP 还是 MVVM,最后还是用了 MVVM 配合 Google 的 Jetpack,使用起来很奇妙,也有很多坑。

目前 App 确定的几个功能是:查成绩、校园卡、借阅查询。

这次我用的数据来源是学校的官网,可以在外网访问,貌似知道这个网站的同学很少啊。

Read More

Java并发-Synchronized和Reentrantlock

Java中对线程的同步和互斥有两种方式:使用synchronized关键字和使用ReentranLock 。也有其他的实现比如信号量,在操作系统里也有学到。

Java并发-目录

Read More

Java并发-目录

Java 并发编程笔记目录

Read More

firewall-cmd 常用命令

在换 ss 端口的时候,发生一件神奇的事。我发现那台 VPS 只能使用2019端口,改成其他的都不行。最后(在用 CTRL-R 翻以前用过的命令时,不知怎么出现firewall-cmd的提示😂,太灵性了,不然我也想不到),我才意识到是我自己使用firewall-cmd加了端口访问限制。好蠢。

Read More

操作系统-复习提纲

Read More

操作系统-银行家算法

这篇笔记主要介绍死锁避免中的银行家算法的实现。同样是参考书上的例子和使用C++实现的。作为新年的第一篇文章🎉,我也尝试了一些新鲜的东西,比如Markdown中数学公式,同时为算法找了两个测试用例进行测试。

写文章耗时:1 hour

编码:1 hour

Read More