摘要: Java集合 Map HashMap 实现原理/底层 Java1.8之前:数组加链表 Java1.8之后:当一个链表的长度超过8,且数组大小超过64时,会将链表转换成红黑树存储,查找效率更高,时间复杂度O(log n)。如果长度超过8,但是数组容量不足64,则会选择扩容数组。 定位算法 计算key的 阅读全文
posted @ 2024-09-11 09:56 forest-pan 阅读(3) 评论(0) 推荐(0) 编辑
摘要: Java基础 接口和抽象类有什么区别? 在设计动机上有所有不同 接口是自上而下的设计。我们提前设计了一些行为,于是基于这些行为定义一个接口,一些类需要有这些行为,就会实现这个接口。 而抽象类是自下而上的设计。当我们写了很多类时,发现他们有很多的共性,于是把这些逻辑抽象出来,减少代码的冗余 Jvm工作 阅读全文
posted @ 2024-09-11 09:55 forest-pan 阅读(3) 评论(0) 推荐(0) 编辑
摘要: Java并发 线程 进程与线程 进程: 进程是程序的一次执行过程,是系统运行程序的基本单位,进程是一个从创建、运行到消亡的动态过程。 线程: 线程是比进程更小的执行单位,一个进程可以产生多个线程。线程的产生或者切换时的负担比进程要小得多。 多个线程共享进程的堆和方法区,而程序计数器、虚拟机栈和本地方 阅读全文
posted @ 2024-09-11 09:54 forest-pan 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 使用 Picocli 创建 Java 命令行程序 Hello World 程序(快速入门) 创建maven项目,使用依赖 <dependency> <groupId>info.picocli</groupId> <artifactId>picocli</artifactId> <version>4. 阅读全文
posted @ 2024-09-11 09:50 forest-pan 阅读(13) 评论(0) 推荐(0) 编辑
摘要: git clone 查看分支 git branch git branch -a 切分支 git checkout {branch} 拉代码 git pull origin {branch} 提交代码 git add . git commit -m "注释" git push origin {bran 阅读全文
posted @ 2024-09-11 09:48 forest-pan 阅读(4) 评论(0) 推荐(0) 编辑