
常见面试题
文章平均质量分 50
三名狂客
success without applause,diligence without reward!Becoming、Cognifying、Flowing、Screening、Accessing、Sharing、Filtering、Remixing、Interacting、Tracking、Questioning、Beginning.
展开
-
什么是红黑树?
二叉查找树(BST)具备什么特性呢?1.左子树上所有结点的值均小于或等于它的根结点的值。2.右子树上所有结点的值均大于或等于它的根结点的值。3.左、右子树也分别为二叉排序树。下图中这棵树,就是一颗典型的二叉查找树:1.查看根节点9:2.由于10 > 9,因此查看右孩子13:转载 2017-12-09 21:48:16 · 333 阅读 · 2 评论 -
什么是动态规划?
————————————题目:有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。比如,每次走1级台阶,一共走10步,这是其中一种走法。我们可以转载 2017-12-09 21:51:58 · 583 阅读 · 0 评论 -
Java面试题总结
超详细的Java面试题总结(一)之Java基本知识多线程和Java虚拟机创建线程有几种不同的方式?你喜欢哪一种?为什么?继承Thread类实现Runnable接口应用程序可以使用Executor框架来创建线程池实现Callable接口。我更喜欢实现Runnable接口这种方法,当然这也是现在大多程序员会选用的方法。因为一个类只能继承一个父类而可以实现多个接口。同时,线程池也是非转载 2017-12-19 21:18:57 · 326 阅读 · 0 评论 -
面试整理-Java综合高级篇
Java面试总结1.你用过哪些集合类?大公司最喜欢问的Java集合类面试题40个Java集合面试问题和答案java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection├List│├Linke转载 2017-12-12 21:30:59 · 29454 阅读 · 2 评论 -
程序员应该具备的技能
每个程序员、或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来。今天小编给大家分享的是一篇来自阿里Java工程师对3年工作经验程序员的职业建议,希望对你有启发。 程序员的三个阶段 第一阶段-——三年 我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合转载 2017-12-26 21:26:47 · 439 阅读 · 0 评论 -
彻底弄懂KMP
1. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱。所以一直想找机会重新写下KMP,但苦于一直以来对KMP的理解始终不够,故才迟迟没有修改本文。 然近期因开了个算法班,班上专门讲解数据结构、面试、算法,才再次仔细回顾了这个KMP,在综合了一些网友的理解、以及算法班的两位讲师朋友曹博、邹博的理解之后,写了9张PPT,转载 2017-12-09 21:17:46 · 359 阅读 · 0 评论 -
java面试总结
一、重点知识 由于我面试的JAVA开发工程师,针对于JAVA,需要理解的重点内容有: JVM内存管理机制和垃圾回收机制(基本每次面试都会问,一定要搞得透彻) JVM内存调优(了解是怎么回事,一般做项目过程中使用较多) 设计模式(熟悉常见设计模式的应用场景,会画类图,实在不行背几个也是有用的) 多线程(每次都转载 2018-01-12 22:09:49 · 285 阅读 · 0 评论 -
JAVA高级面试总结
Sun HotSpot VM,是JDK和Open JDK中自带的虚拟机,也是目前使用范围最广的Java虚拟机。JVM内存分布程序计数器:是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。程序中的分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器完成。由于多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,故该区域为线程私有的内存。虚拟机转载 2018-01-14 19:07:24 · 2519 阅读 · 1 评论 -
动态规划求解最长公共子序列与最长公共子串
1. 问题描述子串应该比较好理解,至于什么是子序列,这里给出一个例子:有两个母串cnblogsbelong比如序列bo, bg, lg在母串cnblogs与belong中都出现过并且出现顺序与母串保持一致,我们将其称为公共子序列。最长公共子序列(Longest Common Subsequence,LCS),顾名思义,是指在所有的子序列中最长的那一个。子串是要求更严格的一种子序转载 2018-01-23 18:32:20 · 525 阅读 · 0 评论 -
Linux面试题
1.解释下什么是GPL,GNU,自由软件?GPL:(通用公共许可证):一种授权,任何人有权取得、修改、重新发布自由软件的权力。GNU:(革奴计划):目标是创建一套完全自由、开放的的操作系统。自由软件:是一种可以不受限制地自由使用、复制、研究、修改和分发的软件。主要许可证有GPL和BSD许可证两种。2.如何选择Linux操作系统版本?一般来讲,转载 2018-01-24 09:24:37 · 723 阅读 · 0 评论 -
Spring AOP和 IOC 实现原理
一、IOC IOC:控制反转也叫依赖注入,IOC利用java反射机制,AOP利用代理模式。所谓控制反转是指,本来被调用者的实例是有调用者来创建的,这样的缺点是耦合性太强,IOC则是统一交给spring来管理创建,将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spri翻译 2018-01-24 10:35:25 · 1239 阅读 · 0 评论 -
八大排序算法
常见的八大排序算法,他们之间关系如下:他们的性能比较:下面,利用Python分别将他们进行实现。 插入排序直接插入排序的核心思想就是:将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小,则交换,直到全部元素都比较过。因此,从上面的描述中我们可以发现,直接插入排序可以用两个循环完成:第一层循环:遍历转载 2018-02-03 20:36:56 · 434 阅读 · 0 评论 -
八大排序算法总结
转载链接: 点击打开链接概述一直接插入排序Insertion Sort基本思想算法描述代码实现二希尔排序Shell Sort基本思想算法描述代码实现三选择排序Selection Sort基本思想算法描述代码实现四堆排序Heap Sort基本思想算法描述代码实现五冒泡排序Bubble Sort基本思想算法描述代码实现六快速排序Qui转载 2018-03-14 21:51:25 · 291 阅读 · 0 评论 -
堆排序
堆排序算法一、堆排序算法的基本特性时间复杂度:O(n*lgn)最坏:O(n*lgn)空间复杂度:O(1)不稳定。堆排序是一种选择排序算法,与关键字的初始排列次序无关,即就是在最好,最坏,一般的情况下排序时间复杂度不变。对包含n个数的输入数组,平均时间为O(nlgn),最坏情况(已经排好序)也是是O(nlgn),最好情况(完全无序)也是O(nlgn)。由于不但时间复杂度少,而且空间复杂度也是最少的,...翻译 2018-03-16 11:09:52 · 287 阅读 · 0 评论 -
常见java面试总结
网络 计算机网络整理自《计算机网络 第七版》,重点内容会在标题后面加 *。HTTP整理自《图解 HTTP》操作系统 计算机操作系统整理自《现代操作系统》和《计算机操作系统》Linux整理自《鸟哥的 Linux 私房菜》数据结构与算法 算法整理自《算法 第四版》,主要整理了面试常问的排序和查找算法。剑指 Offer 题解《剑指 Offer 第二版》的最优解,在牛客网在线编程中出现的题目都已 AC。L...转载 2018-03-10 19:12:40 · 319 阅读 · 0 评论 -
java面试题
public class Test { public static void main(String [] args){ System.out.println(new B().getValue()); } static class A{ protected int value; public A(int v) { ...转载 2018-03-10 20:31:43 · 250 阅读 · 0 评论 -
Java中Arrays.sort源代码解析
转载出处:链接Java Arrays中提供了对所有类型的排序。其中主要分为Primitive(8种基本类型)和Object两大类。 基本类型:采用调优的快速排序; 对象类型:采用改进的归并排序。一、对于基本类型源码分析如下(以int[]为例): Java对Primitive(int,float等原型数据)数组采用快速排序,对Object对象数组采用归并排序。对这一区别,sun在<&l...转载 2018-03-11 10:05:34 · 1984 阅读 · 3 评论 -
程序员这样面试
一、概述面试,难还是不难?取决于面试者的底蕴(气场+技能)、心态和认知及沟通技巧。面试其实可以理解为一场聊天和谈判,在这过程中有心理、思想上的碰撞和博弈。其实你只需要搞清楚一个逻辑:“面试官为什么会这样问?他希望听到什么答案?”然后针对性的准备和回答就行了,无他。“你的优势是什么?”多年前我觉得这个问题很无聊,现在我经常这么问面试者,因为我真的想知道他的优势是什么,能给公司带来什么。最终能和面试官...转载 2018-03-03 21:28:33 · 704 阅读 · 0 评论 -
TCP/IP三次握手与四次挥手
背景和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次。从好上开始,到现在,一年多也算坚持下来了。问题有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,听不到对方的声音,过一会儿之后才会恢复。中间双方可能就要不断的确认网络是否恢复,但是有时候会:她:“你可以听到了吗?”我:“可以了,你呢?”、她:“喂喂,你可以听到了吗?”我:“可以了,我可以听到了,你呢?”她:“你可以听...转载 2018-03-03 21:58:00 · 304 阅读 · 0 评论 -
Java面经考点
Java面试考点梳理本文是根据我的面试经验,为大家整理Java程序猿面试所需的知识体系。第一部分:计算机基础互联网大厂都相当重视程序员的基本功,也就是计算机基础知识。一个程序员能走多远、爬多高,很大程度上取决于基本功是否扎实。对于应届生而言,大都比较缺乏实战项目经验,虽然会有一定的项目经验,但这些课程设计、实验室项目的质量与公司实际的项目有着巨大的差距。因此,基础知识便成为面试考量的一大重点,而且...转载 2018-03-17 20:36:35 · 279 阅读 · 0 评论 -
java 反射机制
一. 反射机制概念 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息。 反射是Java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。但是反射使用不当会成本很高! 类中有什么...转载 2018-03-11 19:43:05 · 247 阅读 · 0 评论 -
ArrayList和LinkedList的区别
转载出处:链接List概括 先来回顾一下List在Collection中的的框架图: 从图中我们可以看出: 1. List是一个接口,它继承与Collection接口,代表有序的队列。 2. AbstractList是一个抽象类,它继承与AbstractCollection。AbstractList实现了List接口中除了size()、get(int...转载 2018-03-11 22:17:37 · 276 阅读 · 0 评论 -
HashMap、HashTable以及ConCurrentHashMap、HashSet异同比较
转载出处: 链接1 HashMap和HashTable的区别一种比较简单的回答是:(1)HashMap是非线程安全的,HashTable是线程安全的。(2)HashMap的键和值都允许有null存在,而HashTable则都不行。(3)因为线程安全、哈希效率的问题,HashMap效率比HashTable的要高。(4)HashMap是非线程安全的,HashTable是线程安全的,内部的方法基本都经...转载 2018-03-11 22:47:10 · 427 阅读 · 0 评论 -
http中post 和 get 请求方法区别
转载链接: 链接两者的区别GET方式:1、GET方式是以实体的方式得到由请求URL所指定资源的信息,如果请求URL只是一个数据产生过程,那么最终要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。也就是说,GET的到的信息是资源,而不是资源的处理过程。2、请的求的数据会附加在URL之后,以?分隔URL和传输数据,多个参数用&连接。URL编码格式采用的是ASCII编码,而...转载 2018-03-12 09:42:24 · 312 阅读 · 0 评论 -
Java 虚拟机全解
转载:链接JDK 是什么?JDK 是用于支持 Java 程序开发的最小环境。Java 程序设计语言Java 虚拟机Java API类库JRE 是什么?JRE 是支持 Java 程序运行的标准环境。Java SE API 子集Java 虚拟机Java历史版本的特性?Java Version SE 5.0引入泛型;增强循环,可以使用迭代方式;自动装箱与自动拆箱;类型安全的枚举;可变参数;静态引入;元数...转载 2018-03-12 09:59:44 · 383 阅读 · 0 评论 -
美团点评2018春招两道编程题
第一题:字符串距离 题目:给出两个相同长度的由字符 a 和 b 构成的字符串,定义它们的距离为对应位置不同的字符的数量。如串”aab”与串”aba”的距离为 2;串”ba”与串”aa”的距离为 1;串”baa”和串”baa”的距离为 0。下面给出两个字符串 S 与 T,其中 S 的长度不小于 T 的长度。我们用|S|代表 S 的长度,|T|代表 T 的长度,那么在 S 中一共有|S|-|T|+1 ...原创 2018-03-23 20:30:18 · 549 阅读 · 0 评论 -
技术人员这样面试
一、听清题,勿抢答 面试,首先也是一个人与人交流沟通的过程。有些时候,面试官还没说完问题,面试者就会打断说「这个问题我知道...」。打断不利于沟通,同时,这样其实导致面试题没听清。比如面试题是「如何理解Java 的 JMM,...」后面还没说的时候,面试者打断说「你说的这个我会。。。,包括方法区,堆,栈 balabala」这就答的都跑偏了。二、从全局、到具体 如果问题是...转载 2018-03-30 10:22:04 · 2042 阅读 · 0 评论 -
Java中IO与NIO的区别
一、概念 NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。二、NIO和IO的主要区别下表总结了Java IO和NIO之间的主要区别:IONIO面向流面向缓冲阻塞IO非阻塞IO无选择...转载 2018-03-30 14:40:27 · 264 阅读 · 0 评论 -
2018头条春招笔试题解
原文链接:https://www.nowcoder.com/discuss/70299?type=2&order=0&pos=9&page=2头条题目: https://blog.youkuaiyun.com/flushhip/article/details/79685488头条测试: https://blog.youkuaiyun.com/flushhip/article/details/79...转载 2018-03-24 21:33:20 · 2120 阅读 · 0 评论 -
后台方向准备
一、计算机网络 基础部分 TCP报头格式 UDP报头格式 TCP/UDP区别(不仅是宏观上的,最好能根据各自的机制讲解清楚) HTTP状态码(最好结合使用场景,比如在缓存命中时使用哪个) HTTP协议(一些报头字段的作用,如cace-control、keep-alive) OSI协议、TCP/IP协议以及每层对应的协议。 ...转载 2018-03-31 16:47:10 · 732 阅读 · 0 评论 -
七层协议的体系结构
OSI的七层体系结构概念清楚,理论也很完整,但是它比较复杂而且不实用。在这里顺带提一下之前一直被一些大公司甚至一些国家政府支持的OSI失败的原因:(1),OSI的专家缺乏实际经验,他们在完成OSI标准时缺乏商业驱动力(2),OSI的协议实现起来过分复杂,而且运行效率很低(3),OSI制定标准的周期太长,因而使得按OSI标准生产的设备无法及时进入市场(20世纪90年代初期,虽然整套的OSI国际标准都...转载 2018-04-01 11:32:59 · 2554 阅读 · 0 评论 -
网易2019实习生招聘编程题
**原题链接:**点这儿网易的题还是有技术含量的,二分和数学和优美暴力考察得较多,这些东西在工作中确实很重要,都是优化程序的方法。# 第一题:牛牛找工作## 题目:> 为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴...转载 2018-04-01 16:17:47 · 555 阅读 · 0 评论 -
深入剖析ThreadLocal、网络编程
一、对ThreadLocal的理解 ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。这句话从字面上看起来很容易理解,但是真正理解并不是那么容易。ThreadLocal的官方API解释为:"该类提供了线程局部 (thread-local)...转载 2018-04-09 15:59:30 · 261 阅读 · 0 评论 -
Storm与Spark、Hadoop三种框架对比
一、Storm与Spark、Hadoop三种框架对比Storm与Spark、Hadoop这三种框架,各有各的优点,每个框架都有自己的最佳应用场景。所以,在不同的应用场景下,应该选择不同的框架。1.Storm是最佳的流式计算框架,Storm由Java和Clojure写成,Storm的优点是全内存计算,所以它的定位是分布式实时计算系统,按照Storm作者的说法,Storm对于实时计算的意义类似于Had...转载 2017-10-08 15:58:12 · 18041 阅读 · 0 评论 -
查看各个java版本源码和API
一、各个版本API (1) java9 下载(2) java8 下载(3) java7 下载二、各个版本源码(1) java9 java9新特性(2) java8(3) java7补充 git 使用 (1) 教程 (2) 自我总结...原创 2018-03-20 13:57:32 · 3983 阅读 · 2 评论 -
京东2019春招编程题
转载链接:https://www.nowcoder.com/discuss/72829?type=0&order=0&pos=12&page=1java实现参考: https://www.nowcoder.com/discuss/72849?type=2&order=0&pos=9&page=1牛牛的括号匹配分析考虑如何判断一个串是否合法的过程: 依...转载 2018-04-09 22:04:43 · 509 阅读 · 0 评论 -
平衡二叉树
平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树。1962年,G.M. Adelson-Velsky 和 E.M. Landis发明了这棵树,所以它又叫AVL树。平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1,如果插入或者删除一个节点使得高度之差大于1,就要进行节点之间的旋转,将二叉树重新维持在一个平衡状态。这个方案...转载 2018-04-02 16:51:02 · 202 阅读 · 0 评论 -
java四种引用、创建对象5种方式、Object方法
一、四种引用java对象的引用包括 强引用,软引用,弱引用,虚引用Java中提供这四种引用类型主要有两个目的:第一是可以让程序员通过代码的方式决定某些对象的生命周期;第二是有利于JVM进行垃圾回收。二、Java中有5种创建对象的方式Java中有5种创建对象的方式,下面给出它们的例子还有它们的字节码使用new关键字} → 调用了构造函数使用Class类的newInstance方法} → 调用了构造...翻译 2018-04-09 23:07:59 · 1537 阅读 · 0 评论 -
10亿个数中找出最大的10000个数之top K问题
方法一、先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样,遍历完后,堆中的10000个数就是所需的最大的10000个。建堆时间复杂度是O(mlogm),算法的时间复杂度为O(nmlogm)(n为10亿,m为10000)。 方法二(优化的方法):可以把所有10亿个数据分组存放,比如分别放在100...转载 2018-03-27 18:59:26 · 7426 阅读 · 2 评论 -
同步/异步和阻塞/非阻塞的区别
同步、异步:概念:消息的通知机制解释:涉及到IO通知机制;所谓同步,就是发起调用后,被调用者处理消息,必须等处理完才直接返回结果,没处理完之前是不返回的,调用者主动等待结果;所谓异步,就是发起调用后,被调用者直接返回,但是并没有返回结果,等处理完消息后,通过状态、通知或者回调函数来通知调用者,调用者被动接收结果。阻塞、非阻塞:概念:程序等待调用结果时的状态解释:涉及到CPU线程调度;所谓阻塞,就是...转载 2018-03-27 22:09:52 · 325 阅读 · 0 评论