面试笔试题总结

来源:互联网 发布:关系数据库特征 编辑:程序博客网 时间:2024/05/01 21:30

1、顺序表逆置算法:使用顺序表作为存储结构,实现线性表逆置。保存的元素类型int,要求不申请新的空间。

        分析:对于两个数交换,不申请新空间的可使用加减法,如下:       

int a = 10;int b = 5;a = a + b;b = a - b;a = a - b;

       该题思路:遍历数组的前半部分并交换元素即可,代码如下:

public class Test {public static void main(String[] args) {int[] array = {1, 2 , 3, 4, 5};System.out.println("原始数据为:" + Arrays.toString(array));new Test().reverse(array);System.out.println("逆序之后为:" + Arrays.toString(array));}public int[] reverse(int[] array) {int size = array.length;for(int i=0; i<size/2; i++) {array[i] = array[i] + array[size - 1 - i];array[size - 1 - i] = array[i] - array[size -1 - i];array[i] = array[i] - array[size -1 - i];}return array;}}

2、简述接口及接口继承

注意:接口可以使用extends关键字继承一个或多个接口,而类不能使用extends关键字继承多个类

3、join()方法的用途

join方法可以让调用该方法的线程优先运行,从而实现类似插队的效果

4、字符串连接

java通过“+”连接字符串。    在“+”连接的两个或多个内容中,如果第一个内容是字符串或者所有的内容都是字符串,则直接进行字符串连接,如果后面的其他项不是字符串,系统会自动将其转为字符串,然后再进行连接。

5、

String greeting = "Hello";greeting.substring(0, 3);
结果为"Hel",subString()第一个参数表示从第几个位置开始,包括这个字符,第二个参数表示截止到第几个字符,不包括这个字符。

6、

只有字符串常量是共享的,而+或substring等操作产生的结果并不是共享的。如下:

public class Test {public static void main(String[] args) {String greeting1 = "Hello";String greeting2 = "Hello";System.out.println(greeting1 == greeting2);String str1 = "Hel";String str2 = greeting1.substring(0, 3);System.out.println(str1 == str2);}}
greeting1和greeting2为字符串常量,这两个引用共享同一个字符串对象,所以为true

虽然greeting1.substring(0,3)结果为”Hel“,但该操作并不会共享已有的字符串对象,所以结果为false;

7、private修饰的成员变量和方法称为似有成员变量和方法,私有成员变量和私有方法不能被子类继承

8、在Queue接口中,可以使用哪些方法增加元素?

Queue接口定义了6个方法,可以分为两类,即抛出异常和返回特殊值。对于增加元素的操作,可以使用add()方法或offer()方法。两者的区别是,使用add()方法,如果插入成功则返回true,如果队列已满则抛出IllegalStateException;使用offer()方法插入数据,即使队列已满也不会抛出IllegalStateException。

import java.util.PriorityQueue;public class Test {public static void main(String[] args) {PriorityQueue<Integer> queue = new PriorityQueue<Integer>();for(int i=0; i<10; i++) {//queue.add(i);queue.offer(i);}while(!queue.isEmpty()) {System.out.print(queue.remove() + " ");}}}

对于按照顺序取出元素,需要使用remove()方法。遍历不能使用for(int i=0; i<queue.size(); i++),因为,取出元素后队列的size随之减小。

原创粉丝点击