高频面试题(一)

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

全部评论

相关推荐

头像
11-27 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗?&nbsp;刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务