
面试经验
文章平均质量分 74
奔跑de五花肉
这个作者很懒,什么都没留下…
展开
-
Java位操作全面总结
在计算机中所有数据都是以二进制的形式储存的。位运算其实就是直接对在内存中的二进制数据进行操作,因此处理数据的速度非常快。在实际编程中,如果能巧妙运用位操作,完全可以达到四两拨千斤的效果,正因为位操作的这些优点,所以位操作在各大IT公司的笔试面试中一直是个热点问题。位操作基础基本的位操作符有与、或、异或、取反、左移、右移这6种,它们的运算规则如下所示:注意以下几点:原创 2016-03-30 10:35:21 · 945 阅读 · 0 评论 -
Java经典设计模式(1):五大创建型模式(附实例和详解)
一、概况总体来说设计模式分为三大类:(1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。(2)结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。(3)行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解原创 2016-03-26 17:31:47 · 382 阅读 · 0 评论 -
面试中十四个可以向主考官提出的问题
很多应聘者成功闯过初试、复试,最后却败在了面试上,究其原因,可能跟自己的谈吐有很大的关系,也就是说,在面试时,哪些问题不能问,哪些问题可以问,哪些问题可以深究,哪些问题应浅问辄止。 面试时,谈到最后,主考官一般都会问:“你还有什么问题需要问的吗?”那这时,你就应该想想该怎么开口了。下面,我粗略统计了一些面试时面试者可以提出的问题供大家参考。 1. 这个职位为什么空缺? 2转载 2016-04-03 17:01:53 · 488 阅读 · 0 评论 -
学长 中兴面经
今天遇上的两位面试官都特别好,其中一位较长的特别和蔼。首先让我做个自我介绍,不要介绍技术、项目方面的,讲讲个人的爱好,职业规划相关的。回答:我平时喜欢唱歌,经常和实验室的人一起去KTV唱啊,喜欢打球,老头问打什么球,我说乒乓球和羽毛球,还参加运动会,他说他们公司有运动会,我说我有所了解。然后另一个人问我想在哪里工作,因为简历上写了南京,他问可否到别的地方,我说我家人和自己比较倾向于在南京发原创 2016-03-23 09:57:40 · 691 阅读 · 0 评论 -
快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值
能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。 假如有如下的两个数组,如图所示: 5,6,1,4,7,9,8 给定Sum= 10 1,5,6,7,8,9 给定Sum= 10 分析与解法 这个题目不是很难,也很容易理解。转载 2016-04-06 16:31:39 · 6508 阅读 · 2 评论 -
编程面试的10大算法概念汇总
以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念。由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍。本文将从Java的角度看问题,包含下面的这些概念:1. 字符串2. 链表3. 树4. 图5. 排序6. 递归 vs. 迭代7. 动态规划8. 位操作9. 概率问题原创 2016-03-25 16:58:09 · 357 阅读 · 0 评论 -
几大最短路径算法比较
最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。算法具体的形式包括:确定起点的最短路径问题:即已知起始结点,求最短路径的问题。确定终点的最短路径问题:与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。确定原创 2016-03-25 17:12:03 · 512 阅读 · 0 评论 -
寻找第K大的数的方法总结
今天看算法分析是,看到一个这样的问题,就是在一堆数据中查找到第k个大的值。 名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,当然,解决这个问题的方法很多,本人在网上搜索了一番,查找到以下的方式,决的很好,推荐给大家。 所谓“第(前)k大数问题”指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题。 解原创 2016-03-26 16:39:03 · 455 阅读 · 0 评论 -
Java中 set、 list、 array、 Map相互转换
列表转换数组public static Object[] List2Array(List oList) { Object[] oArray = oList.toArray(new Object[] {}); // TODO 需要在用到的时候另外写方法,不支持泛型的Array. return oArray; }原创 2016-03-26 22:37:56 · 385 阅读 · 0 评论 -
Java集合对象排序
1.List排序这个和数组的排序又不一样了。其实Java针对数组和List的排序都有实现,对数组而言,你可以直接使用Arrays.sort,对于List和Vector而言,你可以使用Collections.sort方法。Java API针对集合类型的排序提供了2个方法:java.util.Collections.sort(java.util.List)java.util.Col原创 2016-03-26 22:39:53 · 382 阅读 · 0 评论 -
String类和Integer类中的方法小结
最近在做压缩,发现很多时候都要调用API文档中String类和Integer类的方法。因本人是java初学者,很多方法也需要边学边总结的,所以现在就将我这一阶段用到的两个类中的很多方法做一个总结归纳。 一.String类方法总结 1.contains方法,public boolean contains(CharSequence s)当且仅当此字符串包含指定的 char 值序列时,返回 tr原创 2016-03-26 23:11:27 · 703 阅读 · 0 评论 -
成为程序员高手的几个忌讳
1) 不会英语:CS源于美国,重量级的文档都是英文的。不会英语,那么你只能忍受拙劣的翻译和大延迟的文档(翻译出来的文档几乎都是很久以前出版的东西)。2) 急于求成:什么都没学习就开始编程是最大的机会。写C++程序语法都能错,数据结构连线性表都不知道,数据库不知道关系模型,TCP编程不知道socket,还是先坐下来学习几年再说(如果说工作急需,我只能说:早干嘛去了)3) 过于好问:勤学好问是原创 2017-04-28 20:24:11 · 345 阅读 · 0 评论 -
Java经典设计模式(2):七大结构型模式(附实例和详解)
总体来说设计模式分为三大类:创建型模式、结构型模式和行为型模式。博主的上一篇文章已经提到过创建型模式,此外该文章还有设计模式概况和设计模式的六大原则。设计模式的六大原则是设计模式的核心思想,详情请看博主的另外一篇文章: Java经典设计模式之五大创建模式(附实例和详解)。接下来我们看看结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。其中原创 2016-03-26 17:33:42 · 441 阅读 · 0 评论 -
Clone使用方法详解
java“指针” Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。并且由于Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。本文会让你了解什么是影子clone与深度 clone,认识它们的区别、优点及缺点。 看到这个标题,是不是有点困原创 2016-04-01 22:26:56 · 882 阅读 · 0 评论 -
15个Google面试题,看看自己能答对几个,看你是否真的聪明。。。
村子里有100对夫妻,其中每个丈夫都瞒着自己的妻子偷情。村里的每个妻子都能立即发现除自己丈夫之外的其他男人是否偷情,唯独不知道她自己的丈夫到底有没有偷情。村里的规矩不容忍通*。任何一个妻子,一旦能证明自己的男人偷情,就必须当天把他杀死。村里的女人全都严格照此规矩办事。一天,女头领出来宣布,村里至少有一个丈夫偷情。请问接下来会发生什么事?答案:这是一个典型的递归问题。一旦所有的妻子都知道至少原创 2016-04-01 11:41:31 · 1484 阅读 · 2 评论 -
微软面试题:利用天平砝码,三次将140克的盐 分成50、90克两份?
有一个天平,2克和7克砝码各一个。如何利用天平砝码在三次内将140克盐分成50,90克两份。第一种方法: 第一次:先称 7+2克盐 (相当于有三个法码2,7,9) 第二次:称2+7+9=18克盐 (相当于有2,7,9,18四个法码) 第三次:称7+18=x+2,得出x是23,23+9+18=50克盐. 剩下就是90克了. 第二种方法: 1.先把140克盐分为两份,每原创 2016-03-31 10:38:37 · 2641 阅读 · 0 评论 -
烧绳子计时
1 烧绳子计时,一端点火,每根绳子8分钟。只能用3根绳子 11分钟怎么烧,(可以两端同时点火)那么先定义下,依次为A,B,C(1):A两头烧,B一端烧,C不动→4min(2):紧接,C一头烧,(A已烧完),B不烧(此时只剩一半了),C以B对应烧4min,此间要用熄灭(3):B两头烧,C一头烧→2min(4):C两头烧→1min4+4+2+1=112烧一段不均匀的绳,从头烧原创 2016-03-31 11:05:44 · 1773 阅读 · 0 评论 -
增强for循环用法
1.首先增强for循环和iterator遍历的效果是一样的,也就说增强for循环的内部也就是调用iteratoer实现的,但是增强for循环有些缺点,例如不能在增强循环里动态的删除集合内容。不能获取下标等。2.ArrayList由于使用数组实现,因此下标明确,最好使用普通循环。3.而对于LinkedList 由于获取一个元素,要从头开始向后找,因此建议使用增强for循环,也就是it原创 2016-03-31 19:42:13 · 341 阅读 · 0 评论 -
JDK源码笔记-DualPivotQuicksort
摘要 DualPivotQuicksort中文名称:双支点快速排序。目录[-]算法思想JDK源码 TimSort双元素插入排序双枢轴快速排序单枢轴快速排序参考自:论文,Dual-Pivot Quicksort algorithm ,by Vladimir Yaroslavskiy。http://www.sytarena.c转载 2016-03-31 20:39:49 · 495 阅读 · 0 评论 -
java中堆(heap)和栈(stack)的区别
在学习java的过程中,经常会见到椎和栈的介绍,但是一直都是了解了个大概,而且看了之后又经常会忘掉,所以这次在网上查找了一下资料,把对堆和栈的介绍记录下来,以供复习使用。 在java中内存的占用主要分为四块:静态区、代码区、堆、栈。其中,堆和栈是使用最多的。静态区:内存在程序编译时就分配好的区域,主要存放一些静态变量(static的); 代码区:存放程序方法的二进制代码,而...原创 2016-03-31 22:22:10 · 1372 阅读 · 0 评论 -
java中ArrayList和LinkedList的区别
ArrayList是List的数组实现;LinkedList是List的链表实现;优缺点:ArrayList和LindedList的区别,主要也在于数组和链表的区别。链表中的数据都有一个单独的空间来保存,查找数据时,需要移动指针。而数组则不同,只需要知道数组下标就可以获取数据。所以,在获取查找时,数组的效率要高一些(直接通过下标获取值);但是在移除数据时,数组需要在删除数据后,再重新移动数组下标,原创 2016-03-31 22:23:16 · 338 阅读 · 0 评论 -
使用System.arraycopy()实现数组之间的复制
lang下 System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是: public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src:源数组; srcPos:源数组要复制的起始位置; dest:目的数组; destPos:原创 2016-04-01 11:05:19 · 691 阅读 · 1 评论 -
分析可变形字符串序列StringBuilder 以及 StringBuffer之默认大小与扩容
默认值初始化:1. 首先明确 StringBuffer类与 StringBuilder类均继承了抽象类 AbstractStringBuilder类无参构造方法2. 源码中StringBuffer类和StringBuilder类初始化均调用父类的构造方法: 父类初始化: 子类默认传入值16 给父类初始原创 2016-04-01 11:08:12 · 615 阅读 · 0 评论 -
String特性之 “字符串驻留池”
再说 String1. 字符串驻留池,就是一块与堆区并行的存放字符串对象的内存区,JVM的驻留池机制规定: 在池中创建一个String对象,第二行会先在池中寻找是否有值与"abc"相同的String对象,如果有,就直接引用,没有这在池中新建String对象知识补充:1. JVM 为了提高性能,会将形式例如:String str = "我是字符串" 和原创 2016-04-01 11:19:19 · 729 阅读 · 0 评论 -
集合篇-----ArrayList与LinkedList之间的那些小事
各自特性:ArrayList : 是一由连续的内存块组成的数组,范围大小可变的,当不够时增加为原来1.5倍大小,数组。 :调用trimToSize方法,使得存储区域的大小调整为当前元素数量所需要的空间大小,垃圾回收器将会回收多余存储空间。LinkedList : 是由随机内存块通过指针连接起来的,范围大小可变的,当不够时增加为原来2倍大小,一个双向链表, 书上得来:原创 2016-04-01 11:21:35 · 337 阅读 · 0 评论 -
Linux系统的优点小结
稳定的系统Linux 本来就是基于Unix设计理念儿发展出来的操作系统,因此,Linux具有与Unix相同的程序接口跟操作方式,当然也继承了Unix稳定而有效的特性了,常常也有听说安装Linux的主机运行一年都没有死机,不曾关机的事儿。免费源码开放Linux 是基于GPL授权下经过许多黑客工程师群策群力而不断发展壮大起来的,所以任何人皆可以自由取得使用Linux,与Linu转载 2016-04-01 11:22:42 · 733 阅读 · 0 评论