08 2020 档案

摘要:BST:二叉搜索树,所有节点的左子树都小于右,子树。读和写的复杂度都是O(logN)。 缺点:当是顺序情况下,复杂度是O(N) AVL:平衡二叉树,左子树和右子树深度差小于等于1,是BST的一种。读和写都是O(logN)而且最坏情况下也是O(logN)。相对于BST是一种很好的优化。 红黑树: ro 阅读全文
posted @ 2020-08-28 18:28 codercql 阅读(151) 评论(0) 推荐(0)
摘要:在maven中添加依赖: <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> 使用jUnit来测试代码:不用从main函数进入,不用建立多 阅读全文
posted @ 2020-08-22 00:10 codercql 阅读(67) 评论(0) 推荐(0)
摘要:this关键字主要有两个作用: 1、使用this引用隐藏数据域 set方法中经常将数据域名作为参数名,数据域被隐藏,为了给a赋新值,需要在方法中引用隐藏的数据域名。 而隐藏的静态变量可以直接通过“类名.静态变量”来引用。 public class Method { private int a;//隐 阅读全文
posted @ 2020-08-21 17:43 codercql 阅读(136) 评论(0) 推荐(0)
摘要:LeetCode 98.验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 链接:https://leetcode-cn.com/ 阅读全文
posted @ 2020-08-21 11:30 codercql 阅读(264) 评论(0) 推荐(0)
摘要:端口被占用 1、打开cmd 2、netstat -ano 3、找到端口对应的进程PID 4、打开任务管理器 找到PID关闭进程 阅读全文
posted @ 2020-08-19 15:51 codercql 阅读(124) 评论(0) 推荐(0)
摘要:HashMap是Map接口的实现,HashSet是Set接口的实现。 Set接口是Collection接口的子接口。而Map和Collection没关系,所以Map不是真正意义上的集合。 Set——不能包含重复元素的集合。 Map——用来映射键值的对象,允许用键来查找值,key和value是一对一的 阅读全文
posted @ 2020-08-14 23:45 codercql 阅读(32) 评论(0) 推荐(0)
摘要:哪些内存需要回收? 什么时候回收? 如何回收? 程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭,栈中的栈针随着方法的进入和退出而有条不紊地执行者出栈和入栈操作。不需过多的考虑回收问题,当方法结束或线程结束时,内存自然就跟着回收了。 Java堆和方法区有显著的不确定性:一个接口的多个实 阅读全文
posted @ 2020-08-05 23:43 codercql 阅读(47) 评论(0) 推荐(0)
摘要:线程同步:比如买奶茶排队,店家非要做好一杯才点下一杯,佛系营业。 这里同步容易理解为一起执行或者交错执行,错误! 线程同步是指互相协调,相互配合的意思。线程按照顺序依次执行,一个线程执行完毕,另一个线程才开始。 线程异步:同样奶茶排队,点了的去等奶茶,收银台继续服务后面顾客,积极营业。 线程异步是指 阅读全文
posted @ 2020-08-05 19:17 codercql 阅读(213) 评论(0) 推荐(0)
摘要:什么是进程(process): 狭义定义:进程是正在运行的程序的实例。 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 什么是线程(thread): 在进程中独立运行的子任务。 阅读全文
posted @ 2020-08-04 23:29 codercql 阅读(251) 评论(0) 推荐(0)
摘要:Hotspot虚拟机在Java堆中对象分配、布局和访问的全过程。 对象的创建(普通Java对象,不包括数组和Class对象) 1、当Java虚拟机遇到一个字节码new时,首先检查这个指令的参数是否能在常量池中定位到一个类的符号的引用,并检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有, 阅读全文
posted @ 2020-08-04 23:27 codercql 阅读(114) 评论(0) 推荐(0)
摘要:运行时数据区域 1、栈 :存放值 “线程私有”且生命周期与线程相同。 每一个方法被调用直至执行完毕的过程,就对应着一个栈帧在虚拟机中从入栈到出栈的过程。 2、Java堆:存放对象 是虚拟机所管理的内存中最大的一块,被所有线程共享的一块区域,在虚拟机启动时创建,唯一目的是存放对象实例。 Java堆是垃 阅读全文
posted @ 2020-08-04 21:11 codercql 阅读(100) 评论(0) 推荐(0)