文档介绍:Java面试题
abstract class MyClass
{
public int constInt = 5;
//constInt = constInt + 5; //需要标识符,要么定义在方法内,要么用大括号括起来,作为构造代码块或者加上static作为静态代码块
//public int method();//要重载方法,只能通过参数的类型和顺序区别不同方法,不能通过返回值得类型进行辨别
//public abstract void method(int a);//加上这句话,编译不会出现错误
//public abstract void anotherMethod(){}//错误的,因为抽象方法不能有主体
public void method() {
}
}
面试时如果需要上机写程序,一定要写注释,不仅注重结果,还会注重自己程序员的基本素养和规范。并且在写代码前需要先写些自己的思想,然后写代码,因为程序写的就是想法。所以在写代码之前,先写一块代码块注释,写明需求、思路、步骤。
代码只是思想的一种体现形式。
如:
/*
需求: %%%%%%%%%%%%%%
思路:%%%%%%%%%%%%%%
步骤:(1)%%%%%(2)%%%%%%%%%%%%%%%%
*/
. 关于二分查找的一个面试题目: 给定一个有序的数组,如果往该数组中存储一个元素,并保证这个数组还是有序的,怎么获取这个元素应该存放的角标。
答: ()方法即可实现。如果数组中存在查找的的数据,返回的就是此数值的角标,如果不存在此数值,返回的就是一个负数,其绝对值是此数值应当插入的第几个位置处(也就是索引加1).在刚才的基础上把-1换成min就可以了。
解析:如果要存放的元素,在数组中存在,则直接找到此元素的索引即可,但是如果不存在此元素,那么最后肯定会是min 和 max值是紧挨着的,下一步就是min 加1,而max减1;且分析知需要存放的数据应该存放到到大于此数值的第一个元素位置,所以返回min。例如:arr[9]=100;arr[10]=200; key = 150; min = 9;max = 10;mid = 9;接下来,由于key 大于arr[mid] 所以,min = mid +1 =10,所以返回min = 10,正确。
面试时通常会问你怎么理解面向对象?
答:符合人们的思考习惯,使复杂的事情简单化,让我们从曾经的执行者变成了指挥者。一般都要加以例子进行说明:面试官,您本身就是在利用面向对象的思想解决问题,(引起面试官的注意,会问为什么?)因为以面试官您的能力而言,如果来了一个大项目的话,您从项目的需求分析、开发设计、测试到完成,都可以完成,但是要耗费很多时间,您为了提高效率,就需要找一些具备专业编程的人完成这个项目,也就是相当于在找对象,我就是具备专业编程经验的对象,您只要指挥我这个对象去做事情就可以了,我会给您一个非常满意的结果,至于过程,你可以不用关心,所以您就是正在利用面向对象思想来提高工作效率。
举例子要贴切生活。
class HelloA {
static {
("static A");}
H