高频面试题
Posted Java_may
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高频面试题相关的知识,希望对你有一定的参考价值。
1. 若在某一个类定义中定义有如下的方法:abstract void performDial( ); 该方法属于() ?
A.本地方法
B.最终方法
C.静态方法
D.抽象方法
答案: D
解析:
-
本地方法:简单地讲,一个native Method就是一个java调用非java代码的接口;native方法表示该方法要用另外一种依赖平台的编程语言实现。
-
最终方法:final void B(){},这样定义的方法就是最终方法,最终方法在子类中不可以被重写,也就是说,如果有个子类继承了这个最终方法所在的类,那么这个子类中不能出现void B(){}这样的方法。
-
最终类:final class A {},这样定义的类就是最终类,最终类不能被继承。
-
abstract修饰抽象类
2.在为传统面向对象语言的程序做单元测试的时候,经常用到mock对象。Mock对象通过反射数。请问反射最大程度破坏了面向对象的以下哪个特性?
A.封装
B.多态
C.继承
D.抽象
答案: A
解析:
A.封装
反射破坏代码的封装性,破坏原有的访问修饰符访问限制
3.以下程序的执行结果是:
static boolean foo(char c) {
System.out.print(c);
return true;
}
public static void main1(String[] args) {
int i = 0;
for (foo('A'); foo('B') && (i < 2); foo('C')) {
i++;
foo('D');
}
}
A.ABDCBDCB
B.ABCDABCD
C.编译时出错
D.运行时抛出异常
答案:
A
解析:
略,代码敲一遍就知道了= =!
4.一个完整的URL地址由(),(),端口和文件四部分组成。
A.协议 用户名
B.协议 主机名
C.主机名 ip
D.以上都不正确
答案:
B
解析:
**URL(Uniform Resource Locator) **,统一资源定位符,能够对因特网的资源进行定位。
URL一般有四部分组成:<协议>://<主机>:<端口>/<路径>
-
现在最常用的<协议>为http协议。
-
<主机>是指主机在因特网上的域名。
-
http协议的默认<端口>为80(可以省略)。
-
<路径>是指要活的的文件的路径。
5.以下程序的输出结果是?
public class Example {
String str = new String("good");
char[] ch = { 'a', 'b', 'c' };
public static void main(String args[]) {
Example ex = new Example();
ex.change(ex.str, ex.ch);
System.out.print(ex.str + " and ");
System.out.print(ex.ch);
}
public static void change(String str, char ch[])
{
str = "test ok";
ch[0] = 'g';
}
}
A.good and abc
B.good and gbc
C.test ok and abc
D.test ok and gbc
答案:
B
解析:
考察值传递和引用传递。对于值传递,拷贝的值用完之后就会被释放,对原值没有任何影响,但是对于引用传递,拷贝的是对象的引用,和原值指向的同一块地址,即操作的是同一个对象,所以操作之间会相互影响
所以对于String str是值传递,操作之间互不影响,原值保持不变。而ch是数组,拷贝的是对象的引用,值发生了改变,因此选择B
6.下面有关servlet service描述错误的是?
A.不管是post还是get方法提交过来的连接,都会在service中处理
B.doGet/doPost 则是在 javax.servlet.GenericServlet 中实现的
C.service()是在javax.servlet.Servlet接口中定义的
D.service判断请求类型,决定是调用doGet还是doPost方法
答案:
B
解析:
doGet/doPost 则是在 javax.servlet.http.HttpServlet 中实现的
7.以下代码运行输出的是
public class Person{
private String name = "Person";
int age=0;
}
public class Child extends Person{
public String grade;
public static void main(String[] args){
Person p = new Child();
System.out.println(p.name);
}
}
A.输出:Person
B.没有输出
C.编译出错
D.运行出错
答案:
C
解析:
Java中对字段属性是静态绑定,方法成员是动态绑定,这里错在:在子类中试图访问父类的private字段,所以编译不通过,将private去掉就可访问,不是动态绑定的问题,它本来就属于静态绑定。
8. 在 myjsp.jsp 中,关于下面的代码说法错误的是:( )
<%@ page language="java" import="java.util.*" errorPage="error.jsp" isErrorPage="false" %>
A.该页面可以使用 exception 对象
B.该页面发生异常会转向 error.jsp
C.存在 errorPage 属性时,isErrorPage 是默认为 false
D.error.jsp 页面一定要有isErrorPage 属性且值为 true
答案:
A
解析:
exception是JSP九大内置对象之一,其实例代表其他页面的异常和错误。只有当页面是错误处理页面时,即isErroePage为true时,该对象才可以使用。对于C项,errorPage的实质就是JSP的异常处理机制,发生异常时才会跳转到errorPage指定的页面,没必要给errorPage再设置一个errorPage。所以当errorPage属性存在时, isErrorPage属性值为false
9.Java对象的初始化方式有( )
A.初始化块
B.构造器
C.定义变量时指定初始化值
D.其它各项都不对
答案:
A B C
解析:
对象的初始化方式:
1.new时初始化 ;
2.静态工厂 newInstance;
3.反射Class.forName();
4.clone方式;
5.反序列化;
10.一个servlet的生命周期不包括方法?
A.init()方法
B.invalidate()方法
C.service()方法
D.destroy()方法
答案:
B
以上是关于高频面试题的主要内容,如果未能解决你的问题,请参考以下文章