摘要: 题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解决办法: 前序遍历的第一个元素是根节点,然后进行中序 阅读全文
posted @ 2018-09-23 17:31 没有名字~ 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题目: 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 解决办法: 可以先使用递归遍历到最后一个,再从后往前打印即可 代码: 阅读全文
posted @ 2018-09-23 16:57 没有名字~ 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 线程A:生产者; 线程B:消费者; 具体场景: 线程A调用set(String str),给list里面设置字符串,线程B调用get()方法,删除掉list里面的字符串,模拟生产者消费者 阅读全文
posted @ 2018-09-13 18:22 没有名字~ 阅读(777) 评论(0) 推荐(0) 编辑
摘要: 题目: 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 解决方法: 先统计空格的个数,再从后往前替换,时间复杂度为O(n),空间复杂度为O(n)[看别人是O(1),我需要下去再研究一下] 阅读全文
posted @ 2018-09-13 12:59 没有名字~ 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题目: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 1 5 7 8 9 2 6 8 9 10 3 7 10 11 13 4 8 12 13 15 5 阅读全文
posted @ 2018-09-13 10:51 没有名字~ 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 打开Debug,如图去掉前面的两个对号,重新debug即可: 阅读全文
posted @ 2018-09-10 17:31 没有名字~ 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 最后一个看不见了补充一下: ConcurrentHashMap:是线程安全的(基于lock实现的,同步的时候锁住的不是整个对象,而加了synchronized的是锁住了整个的对象),实现了Map接口,他是在hashMap的基础上,将数据分为很多个小的segment(分段锁,他继承了Reentrant 阅读全文
posted @ 2018-09-02 22:27 没有名字~ 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 原博地址: https://blog.csdn.net/Myuhua/article/details/81385609 (一)不含静态变量的java程序运行时内存变化过程分析 代码: 内存过程分析: 在做分析以前我们应该预备的知识有: 1)栈内存储的是局部变量,基础类型的局部变量也分配在栈中,而且它 阅读全文
posted @ 2018-08-25 19:04 没有名字~ 阅读(419) 评论(0) 推荐(0) 编辑
摘要: CMS:以获取最短回收停顿时间为目标的收集器,基于并发“标记清理”实现 过程: 1、初始标记:独占PUC,仅标记GCroots能直接关联的对象 2、并发标记:可以和用户线程并行执行,标记所有可达对象 3、重新标记:独占CPU(STW),对并发标记阶段用户线程运行产生的垃圾对象进行标记修正 4、并发清 阅读全文
posted @ 2018-08-25 17:50 没有名字~ 阅读(36775) 评论(0) 推荐(2) 编辑
摘要: 在研究CMS和G1垃圾收集器的区别时:G1的并行于并发把我搞糊涂了,接下来就深究一番 转:https://blog.csdn.net/java_zero2one/article/details/51477791这个博主写的比较通俗易懂,推荐大家看看 并发是多线程中的名词,多线程发生的过程是:多线程是 阅读全文
posted @ 2018-08-25 16:53 没有名字~ 阅读(3694) 评论(0) 推荐(1) 编辑