摘要: 栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、peek 和 isEmpty。当栈为空时,peek 返回 -1。 leetcode. 思路:利用两个栈,分别实现大顶堆和小顶堆,以 阅读全文
posted @ 2020-11-03 21:47 lippon 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 思路:利用快慢指针思想,快指针每次走两步,慢指针走一步。当快指针走到底的时候,满指针指向的就是链表的中间节点。需要注意的是,当链表长度为偶数位的时候,则慢指针指向的是中间偏右的节点,奇数的时候,指向的是中间节点。 if(head == null || head.next == null) retur 阅读全文
posted @ 2020-11-03 16:39 lippon 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 所谓垃圾收集器的作用就是回收内存空间中不需要了的内容,需要解决的问题是回收哪些数据,什么时候回收,怎么回收。 Java虚拟机的内存分为五个部分:程序计数器、虚拟机栈、本地方法栈、堆和方法区。 其中程序计数器、虚拟机栈和本地方法栈是线程私有的,所以对于何时回收这三部分内存只需要根据线程的生存周期就可以 阅读全文
posted @ 2020-11-03 15:17 lippon 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 对象的创建 虚拟机遇到一条字节码new指令时,开始对象创建过程。 首先去检查这个指令的参数是否能在常量池定位到一个类的符号引用;检查这个符号引用代表的类是否已被加载、解析和初始化,如果没有就必须执行相应的类加载过程;根据方法区中该类的信息确定对象的所需空间大小;虚拟机为新生对象分配内存;将对象实例的 阅读全文
posted @ 2020-11-03 09:28 lippon 阅读(96) 评论(0) 推荐(0) 编辑