摘要: 面试题 7:重建二叉树 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果都不含重复的数字。例如:输入的前序遍历列 {1, 2, 4, 7, 3, 5, 6, 7} 和中序遍历列 {4, 7, 2, 1, 5, 3, 8, 6},则重建如图所示的二叉树, 阅读全文
posted @ 2019-07-04 20:34 意无尽 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 面试题 5:替换空格 题目:请事先一个函数,把字符创中的每个空格替换成“%20”。例如,输入“We are happy.”,则输出“We%20are%20happy.” 思路一:时间复杂度为 O(n2) 的解法。 考虑怎么替换的操作,最直观的方法是从头到尾扫描字符串,每次碰到空格后进行替换。由于是把 阅读全文
posted @ 2019-07-02 20:50 意无尽 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 面试题 4:数组中重复的数字 题目一:找出数组中重复的数字 在一个长度为 n 的数组里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意重复的数字。例如:如果输入长度为 7 的数组 {2, 3, 1, 0, 2, 5, 阅读全文
posted @ 2019-07-02 19:34 意无尽 阅读(408) 评论(1) 推荐(0) 编辑
摘要: 一、介绍一下 Atomic 原子类 从字面上来看, Atomic 是原子的意思,所以在我们这里是指一个操作不可中断,即使在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程所干扰。 二、JUC 包中的原子类是哪 4 类? 基本类型 使用原子的方式更新基本类型 AtomicInteger:整型 阅读全文
posted @ 2019-07-01 19:40 意无尽 阅读(650) 评论(0) 推荐(0) 编辑
摘要: 一、为什么要使用线程 线程池提供了一种限制和管理资源(包括执行一个任务)。每个线程池还维护一些基本统计信息,例如已完成任务的数量。 使用线程池的好处: 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要等到线程创建就可立即执行。 提高线程 阅读全文
posted @ 2019-06-29 00:32 意无尽 阅读(480) 评论(0) 推荐(0) 编辑
摘要: synchronized 相关知识 1、synchronized 简介 synchronized 关键字解决的是多线程之间访问资源的同步性,synchronized 关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。 synchronized 的以下几种最主要的使用方式: (1)、 阅读全文
posted @ 2019-06-24 21:46 意无尽 阅读(1271) 评论(0) 推荐(0) 编辑
摘要: 一、什么是线程和进程? 进程: 是程序的一次执行过程,是系统运行程序的基本单元(就比如打开某个应用,就是开启了一个进程),因此进程是动态的。系统运行一个程序即是一个程序从创建、运行到消亡的过程。 在 Java 中,当我们启动 main 函数时其实就是启动了 JVM 进程,而 main 函数所在的线程 阅读全文
posted @ 2019-06-18 01:28 意无尽 阅读(12254) 评论(0) 推荐(0) 编辑
摘要: 一、List、Set 和 Map 的区别? 首先 List 和 Set 是 Collection 接口的子接口,而 Map 是独立的一个接口,与 Collection 无关 List:有序,可重复(有序是指存储顺序跟输入的一样,而不是说按某种排序方法排序的)。实现的类有:ArrayList、Link 阅读全文
posted @ 2019-06-17 00:26 意无尽 阅读(784) 评论(0) 推荐(0) 编辑
摘要: 一、Object 常用的方法 public native int hashCode():返回散列值。 public boolean equals(Object obj):比较两对象是否相等。 protected native Object clone() throws CloneNotSupport 阅读全文
posted @ 2019-06-12 21:00 意无尽 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 一、谈谈对 JVM、JRE 和 JDK 的理解。 JVM Java 虚拟机(Java Virtual Machine, JVM):是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现,即相同的字节码文件,通过虚拟机都会输出相同的结果,这也是为什么 Java 是跨平台的。 JRE Jav 阅读全文
posted @ 2019-06-10 20:46 意无尽 阅读(581) 评论(0) 推荐(0) 编辑