面试总结(一)北京亿信华辰

来源:互联网 发布:淘宝企业店铺不能贷款 编辑:程序博客网 时间:2024/06/11 03:05

昨天去参加北京亿信华辰的面试,整整一天的时间,笔试,机试,面试。虽然时间很长,还好通过了。第一个offer,还是比较高兴。总结一下这次面试所遇到的题目还是有必要的。

一、笔试。(50道选择题,不定向)

现在笔试的选择题很多都是多选,所以每题都必须完全弄明白才能得分。

(1)&和&&的区别

&和&&都具有逻辑运算的功能,而且必须运算符两边的表达式全为真是结果才为真。

&&还具有短路的功能,即一旦&&前面的表达式为假则不会执行&&以后的表达式

(2)if(x=2){ dosth();}是否能正常执行

会出现编译错误,if()语句里面只能放结果为boolean的值或表达式

(3)

public class Test {public static int [] a = new int [10];public static void main(String [] args){System.out.println(a[0]);}}
这个程序能否正常输出,当时可能不记得平时有没有这样用过。程序是能正常输出的,不会出现编译错误。

(4)关于TreeSet 

TreeSet存放的数都是按序排列的

不能存放两个相互equals()的元素。

(5)

class Base {static{System.out.print("a");}public Base(){System.out.print("b");}}public class Child extends Base{static{System.out.print("c");}public Child(){System.out.print("d");}public static void main(String [] args){Base a = new Child();a = new Child();}}
这个程序的输出是。我以为答案应该是acbdacbd。但是没有这个答案,只有acbdbd所以就选了这个。

静态代码块是在构造方法之前调用的,并且父类的静态代码块先执行,所以前面的输出acbd。

而静态代码块只会执行一次,所以最后的结果是acbdbd。

创建一个子类对象的过程是:父类静态代码块---->子类静态代码块------->父类构造方法------->子类构造方法

(6)子类重写父类的方法需要注意的。重写其实只是重写方法的实现。

子类重写的方法不能比父类的方法有更严格的访问权限限制。

返回类型必须与被重写方法的返回类型相同。

参数列表必须与被重写方法的相同。

笔试题能想起来的就这么多了。


二、机试题。

1.编写一个方法print(String str)  要求输出被()包围的部分。

如 ((hello) world!)(i love java()

则输出 hello  

(hello) world!

<empty>

public void print(String str) {char[] c = str.toCharArray();LinkedList<Integer> list = new LinkedList<Integer>();for (int i = c.length - 1; i >= 0; i--) {if (c[i] == ')') {list.push(i);} else if (c[i] == '(' && !list.isEmpty()) {int j = list.pop();if (i + 1 == j) {System.out.println("empty");} else {String s = str.substring(i + 1, j);System.out.println(s);}}}}
从后向前遍历。遇到)则入栈,保存)的位置,遇到(则出栈,截取当初位置i到出栈元素j的字符串

2.实现一个链表MylinkList。要求链表元素从小到大排列。

3.用递归的方法实现max(int[] num)

4.用js和html输出树状表格。

这些机试题都还在思考中。。。欢迎

三、面试
这次面试是群面,4个面试官面试5个人,轮流问问题。
1.补码是什么以及用途
答、正数的补码和原码相同,负数的补码对原码取反加1.
使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。


2、数据库的三级模式

答、数据库的三级模式分为外模式(用户层),内模式(物理层)以及概念模式(概念层)。三级模式使得用户不必关心数据库的物理实现从而抽象的处理数据。

3、什么是归并排序。

答案见博客点击打开链接

4、什么是二分查找

public static int binSearch(int [] num ,int b){int start = 0;int end = num.length-1;while(start <= end){int mid = (start+end)/2;if(num[mid] == b){return mid;}else if(num[mid]<b){start = mid+1;}else{end = mid -1;}}return -1;}

5、排序的稳定和不稳定

答、在一个需要排序的序列中两个相同的关键字在排序前后位置可能改变则为不稳定排序。

能想起来的就这么多了,以后想起来再补充。