07 2013 档案

面试总结之 代码的完整性和高效性
摘要:例子1:实现 double power(double base, int exponent) 求base的exponent 次方. 不需要考虑overflow 问题.自以为简单的解法:public double Power(double base, int exponent){ double result = 1.0; for(int i = 1; i 1) { num = StrToIntCore(str,i,minus); } } return ... 阅读全文

posted @ 2013-07-30 05:18 brave_bo 阅读(412) 评论(0) 推荐(0)

面试总结之 oop desing 之 Observer Pattern
摘要:Publishers + Subscribers = Observer Pattern.The Observer Pattern defines a one-to-many dependency between objects so that when oneobject changes state, all its dependents are notified and updated automatically.public class WeatherData implements Subject {private ArrayList observers;private float tem 阅读全文

posted @ 2013-07-27 07:32 brave_bo 阅读(192) 评论(0) 推荐(0)

面试总结之 oop desing 之 The Strategy Pattern
摘要:The Strategy Pattern defines a family of algorithms,encapsulates each one, and makes them interchangeable.Strategy lets the algorithm vary independently fromclients that use it.1.Duck 问题(head frist oop)有的能飞,有的能叫,经典问题.//Duck.javapublic abstract class Duck {FlyBehavior flyBehavior;QuackBehavior quackB 阅读全文

posted @ 2013-07-23 13:18 brave_bo 阅读(194) 评论(0) 推荐(0)

面试总结之 String
摘要:题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。分析:由于编写字符串相关代码能够反映程序员的编程能力和编程习惯,与字符串相关的问题一直是程序员笔试、面试题的热门题目。本题也曾多次受到包括微软在内的大量公司的青睐。由于本题需要翻转句子,我们先颠倒句子中的所有字符。这时,不但翻转了句子中单词的顺序,而且单词内字符也被翻转了。我们再颠倒每个单词内的字符。由于单词内的字符被翻转两次,因此顺序仍然和输入时的顺序保持一致。还是以上面的输 阅读全文

posted @ 2013-07-22 08:16 brave_bo 阅读(318) 评论(0) 推荐(0)

Hashset 例题
摘要:题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。分析:这道题最简单的思路莫过于把输入的n个整数排序,这样排在最前面的k个数就是最小的k个数。只是这种思路的时间复杂度为O(nlogn)。我们试着寻找更快的解决思路。我们可以先创建一个大小为k的数据容器来存储最小的k个数字。接下来我们每次从输入的n个整数中读入一个数。如果容器中已有的数字少于k个,则直接把这次读入的整数放入容器之中;如果容器中已有k个数字了,也就是容器已满,此时我们不能再插入新的数字而只能替换已有的数字。我们找出这已有的k个数中最大值,然和拿这次待插入的整数 阅读全文

posted @ 2013-07-22 08:08 brave_bo 阅读(465) 评论(0) 推荐(0)

面试总结之 各类定义题 英文口语
摘要:Singletonprivate static Singleton firstInstance = null; public static Singleton getInstance() { if(firstInstance == null) { // This is here to test what happens if threads try // to create instances of this class if(firstThread){ ... 阅读全文

posted @ 2013-07-21 07:16 brave_bo 阅读(288) 评论(0) 推荐(0)

JAVA面试题解惑系列(五)——传了值还是传了引用?
摘要:AVA中的传递都是值传递吗?有没有引用传递呢?在回答这两个问题前,让我们首先来看一段代码:Java代码publicclassParamTest{ //初始值为0protectedintnum=0; //为方法参数重新赋值publicvoidchange(inti){ i=5; } //为方法参数重新赋值publicvoidchange(ParamTestt){ ParamTesttmp=newParamTest(); tmp.num=9; t=tmp; } //改变方法参数的值publicvoidadd(inti){ i+=10; } //改变方法参数属性的值publicvoidadd(Par 阅读全文

posted @ 2013-07-20 06:57 brave_bo 阅读(247) 评论(0) 推荐(0)

JAVA面试题解惑系列(四)——final、finally和finalize的区别
摘要:final、finally和finalize的区别是什么?这是一道再经典不过的面试题了,我们在各个公司的面试题中几乎都能看到它的身影。final、finally和finalize虽然长得像孪生三兄弟一样,但是它们的含义和用法却是大相径庭。这一次我们就一起来回顾一下这方面的知识。final关键字我们首先来说说final。它可以用于以下四个地方:定义变量,包括静态的和非静态的。就表示这个变量被赋予的值是不可变的,即它是个常量;A final variable can only be initialized once,定义方法的参数。定义方法。 不可以被子类重写A final method cann 阅读全文

posted @ 2013-07-20 06:26 brave_bo 阅读(328) 评论(0) 推荐(0)

JAVA面试题解惑系列(三)——变量(属性)的覆盖
摘要:我们来看看这么一道题:class ParentClass { public int i = 10; } public class test extends ParentClass { public int i = 30; public static void main(String[] args) { ParentClass parentClass = new test(); test subClass = new test(); System.out.println(parentC... 阅读全文

posted @ 2013-07-20 05:38 brave_bo 阅读(298) 评论(0) 推荐(0)

java 面试题解惑二 到底创建了几个String对象?
摘要:我们首先来看一段代码:Java代码Stringstr=newString("abc");紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢?相信大家对这道题并不陌生,答案也是众所周知的,2个。接下来我们就从这道题展开,一起回顾一下与创建String对象相关的一些JAVA知识。我们可以把上面这行代码分成String str、=、"abc"和new String()四部分来看待。String str只是定义了一个名为str的String类型的变量,因此它并没有创建对象;=是对变量str进行初始化,将某个对象的引用(或者叫句柄) 阅读全文

posted @ 2013-07-19 02:47 brave_bo 阅读(375) 评论(0) 推荐(0)

java 面试题解惑一 类的初始化顺序
摘要:大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,另外还有一些将变量值输出到控制台的代码,然后让我们判断输出的结果。这实际上是在考查我们对于继承情况下类的初始化顺序的了解。我们大家都知道,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点:Java代码publicclassInitialOrderTest{ //静态变量publicstaticSt 阅读全文

posted @ 2013-07-19 02:38 brave_bo 阅读(197) 评论(0) 推荐(0)

面试总结之 pslow pfast 方法
摘要:题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。 解决方法:事实上,我们并不需要在每次删除一个字符的时候都去移动后面所有的字符。我们可以设想,当一个字符需要被删除的时候,我们把它所占的位置让它后面的字符来填补,也就相当于这个字符被删除了。在具体实现中,我们可以定义两个指针(pFast和pSlow),初始的时候都指向第一字符的起始位置。当pFast指向的字符是需要删除的字符,则pFast直接跳过,指向下一个字符。如果pFast指向的字符是不需要删除的字 阅读全文

posted @ 2013-07-19 02:25 brave_bo 阅读(430) 评论(0) 推荐(0)

java 面试基础题 引用
摘要:http://www.360doc.com/content/06/0507/12/337_111703.shtml 阅读全文

posted @ 2013-07-19 02:24 brave_bo 阅读(126) 评论(0) 推荐(0)

面试总结之 树
摘要:题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 int getHeight(Node node){ if(node==null){ return 0; } int heigth = 1; if(node.left!=null){ height = 1+getHeight(node.left); } if(node.rigth!=null){ int h = 1+getHeight(node.right); height = height>h?h... 阅读全文

posted @ 2013-07-19 02:16 brave_bo 阅读(133) 评论(0) 推荐(0)

面试总结之 迷宫型类题
摘要:程序员面试题精选100题(51)-顺时针打印矩阵题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字 例如:如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1, 2, 3, 4, 8, 12, 16, 15, 14, ... 阅读全文

posted @ 2013-07-19 01:59 brave_bo 阅读(414) 评论(0) 推荐(0)

面试总结之 递归
摘要:递归的基本形式是:第一种是先递归,再处理(比如MergeSort) T Recursive(arg_list* args){ if(args==BASIC_CASE) return T(BASIC_CASE); for(int i=0;i> combine(int n, int k) { // Start typing your Java solution below // DO NOT write main() function if(n> all = new ArrayList>(); if(k==1){ for(int i=1;... 阅读全文

posted @ 2013-07-18 12:46 brave_bo 阅读(181) 评论(0) 推荐(0)

construct and destruct and virtual
摘要:#include using namespace std; class A { public: A(); ~A(); }; A::A() { coutusing namespace std; class A { public: A(); virtual ~A(); }; A::A() { cout<<"A star"<<endl; } A::~A() { cout<<"Delete class AP/n"<<endl; } class B : public A { public: B(); ... 阅读全文

posted @ 2013-07-16 08:41 brave_bo 阅读(212) 评论(0) 推荐(0)

Treemap and Treeset java 实现
摘要:引自: http://www.ibm.com/developerworks/cn/java/j-lo-tree/(红黑树部分 详见这里)对于 TreeMap 而言,它采用一种被称为“红黑树”的排序二叉树来保存 Map 中每个 Entry —— 每个 Entry 都被当成“红黑树”的一个节点对待。例如对于如下程序而言: public class TreeMapTest { public static void main(String[] args) { TreeMap map = new TreeMap(); map.pu... 阅读全文

posted @ 2013-07-15 20:55 brave_bo 阅读(427) 评论(0) 推荐(0)

Hashtalbe JAVA实现
摘要:总得来说就是每个哈希表都保存了一个Entry数组,然后每个Entry其实是存放碰撞的一个链,其中Entry类部分代码实现是:/** * Hashtable collision list. */ private static class Entry implements Map.Entry { int hash; K key; V value; Entry next; protected Entry(int hash, K key, V value, Entry next) { this.hash = hash; t... 阅读全文

posted @ 2013-07-15 19:04 brave_bo 阅读(259) 评论(0) 推荐(0)

HashMap 的java实现.
摘要:第一篇文章第二篇文章处理冲突的方法开放定址法链地址法再哈希法我一直对HashMap的内部结构很好奇,看了源码之后发现他是用散列实现的,即基于hashcode 大体思想是这样的 1. 首先建立一个数组用来存取数据,假设我们定义一个Object[] table用来存取map的value这个很容易理解,key存在哪里呢?暂时我不想存储key 2.获得key的hashcode经过一定算法转成一个整数 index,这个index的取值范围必须是0=>> 20) ^ (h >>> 12); return h ^ (h >>> 7) ^ (h >> 阅读全文

posted @ 2013-07-13 05:36 brave_bo 阅读(266) 评论(0) 推荐(0)

面试总结之-查找算法分析
摘要:二分法 static int BinarySearch(int[] a,int tar){ //n是最后一个下标,tar是要找的数 int i = 0, j = a.length-1; while(i tar) j = mid-1; else i = mid+1; } return -1; }上面就是一个典型的二分法. 核心思想是: 不断的化小值所在的范围。二分法有几个需要关注的点:1. mid = i + (j-i)/2. 防止越界.2. return i, or j, or mid.3.... 阅读全文

posted @ 2013-07-12 04:01 brave_bo 阅读(382) 评论(0) 推荐(0)

11. Dom Extensions.
摘要:1.the querySelector() var body = document.querySelector("body"); // get body element var myDiv = document.querySelector("#myDiv"); // get ID of "myDiv" var selected = document.querySelector(".selected") // get class of "selected" var img = document.b 阅读全文

posted @ 2013-07-04 05:09 brave_bo 阅读(213) 评论(0) 推荐(0)

frond end 总结
摘要:problems with prototypes.all instance get the same property values by default.the main problem comes with their shared nature for example : person1.friends array push a new stuff. person2.frend also change.constructor vs instance vs prototypeeach constructor has a prototype object that points back . 阅读全文

posted @ 2013-07-01 18:42 brave_bo 阅读(178) 评论(0) 推荐(0)

导航