面试知识点
wmingstar
进阶的小码农
展开
-
MySQL数据库相关知识点汇总
MySQL索引背后的数据结构及算法原理http://blog.codinglabs.org/articles/theory-of-mysql-index.html原创 2020-04-26 08:37:51 · 153 阅读 · 0 评论 -
LeetCode—二叉树最短路径
题目:leetcode-Minimum Depth of Binary TreeGiven a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf n...原创 2020-04-19 16:36:33 · 2883 阅读 · 0 评论 -
面试必问排序算法汇总—JAVA实现
排序算法排序算法是程序员面试时被问的频率较高的算法,同时也是很多复杂算法题的常用工具算法,所以熟练掌握常用的几种排序算法是十分必要的,鉴于网络上已经有大神做了很好的总结,此处我借花献佛,在此做个汇总。郭耀华’s Blog作者对排序算法做了非常深刻细致的总结,为方便大家更直观的理解,每个算法还配有动态图,非常棒,推荐:https://www.cnblogs.com/guoyaohua/p/8...原创 2020-04-15 09:15:23 · 186 阅读 · 0 评论 -
Java常见面试题—Object 类中的方法
Object 类中的方法Object() 默认构造方法 clone() 创建并返回此对象的一个副本。 equals(Object obj) 指示某个其他对象是否与此对象“相等”。 hashCode() 返回该对象的哈希码值。 finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法原创 2017-08-20 15:00:08 · 2718 阅读 · 0 评论 -
腾讯面经
腾讯面试部门:OMG(网络媒体事业群) 1.自我介绍 2.介绍项目 3.项目架构 4.项目中的难点 如何解决 5.算法题 两个链表存储两个多位数字,一个节点存储一位,左边高位,右边低位,计算两数的和。 考点:链表遍历,逆序输出。 思路: 将链表中数读出组成字符串,再转数字相加。6.TCP三次握手 7.进程,线程,协程进程: 进程是具有一定独立功能的程序关于某个数据集合上的原创 2017-06-08 10:29:19 · 433 阅读 · 0 评论 -
实习面经-百度运维部
1.TCP 三次握手 四次挥手这个问题以及问题2,6可以参见我之前的一篇博客,点击跳转2.TCP 与 UDP区别3.TCP 流量控制和拥塞控制流量控制利用滑动窗口实现流量控制 如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。原创 2017-06-01 15:17:21 · 1977 阅读 · 0 评论 -
常见面试题整理—计算机网络部分
1.OSI,TCP/IP,五层协议的体系结构,各层协议,以及各层的作用OSI分层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 TCP/IP分层: 应用层、运输层、网际层、网际接口层 五层协议: 应用层、传输层、网络层、数据链路层、物理层每一层的协议如下**应用层:**FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS **表示层:**JPEG、MPEG、ASII转载 2017-05-26 12:22:44 · 830 阅读 · 0 评论 -
常用搜索算法的分析与实现
二分查找又称折半查找,它是一种效率较高的查找方法,但使用二分查找要满足以下要求: 1.必须采用顺序存储结构 2.待查找的序列为按关键字大小有序排列的序列。代码实现:public class BinarySearch { public static int binarySearch(int[] nums,int num){ if(nums==null || nums.len原创 2017-05-19 08:40:20 · 528 阅读 · 0 评论 -
面试常考知识点—数据库
1.存储过程是什么?我们常用的关系型数据库是MySQL,操作数据库的语言一般为SQL语句,SQL在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成某种特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特转载 2017-05-18 16:59:51 · 22697 阅读 · 8 评论 -
常用排序算法的分析与实现
排序算法的分类1. 交换排序(冒泡排序、快速排序) 2. 插入排序(直接插入排序、希尔排序) 3. 选择排序(直接选择排序、堆排序) 4. 归并排序 5. 分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序冒泡排序基本思路:在要排序的一组数中,对当前还未排好序的范围内的全部数,从前向后对相邻的两原创 2017-05-08 09:54:55 · 291 阅读 · 0 评论 -
非递归实现二叉树遍历
import java.util.Stack;/** * 定义二叉树 * */class BinaryTreeNode { int value; BinaryTreeNode left; BinaryTreeNode right; public BinaryTreeNode() { } public BinaryTreeNode(int val) {原创 2017-08-20 19:52:06 · 207 阅读 · 0 评论 -
常见面试题整理—Linux系统常用操作
1. crontab的使用crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。 -u user_a 是指设定指定 user_a 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设 定自己的时程表。 基本格式 : * * * * * command 分 时原创 2017-09-08 14:28:57 · 11080 阅读 · 0 评论 -
Java常见面试题—JVM运行时数据区域
JVM—运行时数据区域 JVM在执行JAVA程序时会把它管理的内存区域划分为若干个不同的数据区域,统称为运行时数据区,由图可见JVM程序所占的内可划分成5个部分:程序计数器、虚拟机栈(线程栈)、本地方法栈、堆(heap)和方法区(内含常量池),其中方法区和堆被所有线程共享。下面分别介绍各部分的功能:程序计数器JVM是多线程的,每一个线程都有一个独立的程序计数器(JVM是多线程的,为了线程切换后能恢复转载 2017-08-20 15:03:30 · 2346 阅读 · 0 评论 -
递归实现二叉树遍历以及求最大深度
class BinaryTreeNode { BinaryTreeNode left; BinaryTreeNode right; int val; BinaryTreeNode(int val) { this.val = val; }}public class Test{ //求二叉树的深度 static int getDe原创 2017-08-20 19:29:10 · 446 阅读 · 0 评论 -
Java常见面试题—GC垃圾收集器
GC垃圾收集器GC收集算法是内存回收的方法论,垃圾收集器是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己应用的特点和要求组合出各个年代所使用的收集器。 图中展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用。虚拟机所处的区域,则转载 2017-08-21 10:39:29 · 4745 阅读 · 3 评论 -
Java—求一个数组的所有子数组
最近在忙秋招,投了各种公司,参加了各种线上笔试,在线上笔试的过程中,经常遇到一些题目,想要求得最终结果的话需要获取某一数组的所有子集(暴力破解)。import java.util.ArrayList;import java.util.List;/** * Created by byuwa on 2017/9/15. */public class SubArrays { public原创 2017-09-15 14:54:23 · 8389 阅读 · 1 评论 -
常见面试题整理—50个最常用的Unix/Linux命令
请参考原创 2017-09-08 14:33:49 · 36741 阅读 · 0 评论 -
Java常见面试题—实现多线程的三种方式
多线程优势: 进程之间不能共享内存,但线程之间共享内存非常容易; 系统创建线程所分配的资源相对创建进程而言,代价非常小。 第一种实现方法—继承Thread类继承Thread类,重写run()方法,加入线程所要执行的代即可。 实例:public class ThreadTest { public static void main(String[] args) {原创 2017-09-01 16:33:47 · 1537 阅读 · 0 评论 -
Java常见面试题—Future与FutureTask
FutureFuture就是对于具体的Runnable或者Callable任务的执行结果进行取消、查询是否完成、获取结果等操作。必要时可以通过get方法获取执行结果,该方法会阻塞直到任务返回结果。 Future类位于java.util.concurrent包下,它是一个接口:/** * @see FutureTask * @see Executor * @since 1.5 * @a原创 2017-09-01 16:31:13 · 7002 阅读 · 0 评论 -
Java常见面试题—Callable与Runnable接口
RunnableRunnable应该是比较熟悉的接口,它只有一个run()函数,用于将耗时操作写在其中,该函数没有返回值,不能将结果返回给客户程序。然后使用某个线程去执行runnable即可实现多线程,Thread类在调用start()函数后就是执行的是Runnable的run()函数。Runnable的声明如下 :public interface Runnable { /**原创 2017-09-01 16:25:04 · 1179 阅读 · 0 评论 -
常见面试题整理—java部分
1、JVM—运行时数据区域JVM运行时数据区域2、GC垃圾收集器GC垃圾收集器3、 栈分配 与 TLABJava常见面试题—栈分配与TLAB4、Runnable 与 Callable 接口Runnable 与 Callable 接口5、Future 与 FuturetaskFuture 与 Futuretask6、实现多线程的三种方式—Thread、Runnable 与Callable实现多线程的三原创 2017-07-17 10:55:36 · 493 阅读 · 1 评论 -
Java常见面试题—栈分配与TLAB
在学习Java的过程中,一般认为new出来的对象都是被分配在堆上的,其实这个结论不完全正确,因为是大部分new出来的对象被分配在堆上,而不是全部。通过对Java对象分配的过程分析,可以知道有另外两个地方也是可以存放对象的。这两个地方分别栈 (涉及逃逸分析相关知识)和TLAB(Thread Local Allocation Buffer)。我们首先对这两者进行介绍,而后对Java对象分配过程进行介绍。转载 2017-08-29 22:13:17 · 19208 阅读 · 9 评论 -
链家笔试题整理
1.撤销操作如何实现?撤销功能的实现备忘录模式2.1000万个数找出两数之和为K的数用HashMap实现,key为 具体的数字,value为数字出现的次数3.一个含有n个元素的数组,找出m个数使其和为K的组合public class Test { public static void main(String[] args) { int[] nums ={ 1, 2, 3,原创 2017-08-27 09:59:15 · 5532 阅读 · 0 评论 -
输出单层节点
题目对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。 给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。实现public class TreeLevel { public Node getTree原创 2017-08-24 11:00:24 · 322 阅读 · 0 评论 -
求二叉搜索树(BST)的最小高度
题目对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树。 给定一个有序序列int[] vals,请返回创建的二叉查找树的高度。实现import java.util.*;public class MinimalBST { public int buildMinimalBST(int[] vals) { // write code here原创 2017-08-22 11:43:49 · 1210 阅读 · 0 评论 -
判断二叉树是否平衡
题目实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。 给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。实现import java.util.*;/*public class TreeNode { int val = 0; TreeNode left = null; TreeN原创 2017-08-22 10:03:35 · 219 阅读 · 0 评论 -
求二叉树的最小公共父节点
题目:1 / \ 2 3 / \ / \ 4 5 6 7 /\ /\ /\ /\ 如上图所示,由正整数 1, 2, 3, …组成了一棵无限大的二叉树。从某一个结点到根结点(编号是1的结点)都有一条唯一的路径,比如从5到根结点的路径是(5, 2, 1),从4到根结点的路径是(4, 2, 1),从根结点1到根结点的路径上只包含一个结点1,因此路径就是(1)。对于两个结点x和y,原创 2017-08-21 22:38:22 · 995 阅读 · 0 评论 -
京东二面—Java 后台开发
1、3+5*2+(1+4) 如何求值?面试官其实是考 四则运算表达式求值,是栈的一种应用方式。 栈的应用—四则运算表达式求值2、抽象类和接口的区别?若抽象类支持多继承,接口还有存在的意义么?抽象类与接口3、面向对象的思想是什么?知乎上一个同样问题的答案4、你对Java 语言的看法?5、单CPU情况下,单线程与多线程的效率对比?6、Spring 默认的 bean 是单例还是多例?7、线程的调度算法有原创 2017-09-20 18:10:43 · 1981 阅读 · 0 评论