高频面试题(一)


  1.  1. 若在某一个类定义中定义有如下的方法:abstract void performDial( ); 该方法属于() ?

    A.本地方法
    B.最终方法
    C.静态方法
    D.抽象方法

    答案: D

    解析:

          

  • 本地方法:简单地讲,一个native Method就是一个java调用非java代码的接口;native方法表示该方法要用另外一种依赖平台的编程语言实现。

  • 最终方法:final void B(){},这样定义的方法就是最终方法,最终方法在子类中不可以被重写,也就是说,如果有个子类继承了这个最终方法所在的类,那么这个子类中不能出现void B(){}这样的方法。

  • 最终类:final class A {},这样定义的类就是最终类,最终类不能被继承。

  • abstract修饰抽象类

    
  1. 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(可以省略)。

  • <路径>是指要活的的文件的路径。

  1. 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-28 17:58
门头沟学院 Java
美团 JAVA开发 n×15.5
牛客786276759号:百度现在晋升很难的 而且云这块的业务没美团好 你看百度股价都跌成啥样了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务