高频面试题(一)

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


————————————————
版权声明:本文为CSDN博主「Java_may」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Java_may/article/details/118107894
#Java开发##面试题目#
全部评论

相关推荐

点赞 4 评论
分享
牛客网
牛客企业服务