描述

题目和答案来自于阿里云大学 - 知乎专栏

题目

  1. 现在有如下一段代码

    public class Test {
    public int aMethod() {
    static int i=0;
    i++;
    return i;
    }
    public static void main(String args[]) {
    Test test = new Test();
    test.aMethod();
    int j = test.aMethod();
    System.out.println(j);
    }
    }

    将产生哪种结果:

    A. Compilation will fail

    B. Compilation will succeed and the program will print“0”

    C. Compilation will succeed and the program will print“1”

    D. Compilation will succeed and the program will print“2”

  2. 如要在字符串s(内容为“welcome to mldn !! ”),中,发现字符't'的位置,应该使用下面哪种方法?

    A. mid(2,s);

    B. charAt(2);

    C. s.indexOf('t');

    D. indexOf(s,'v');

  3. 编译和运行下面代码可能会发生什么?

    class Base {
    private void amethod(int iBase) {
    System.out.println("Base.amethod");
    }
    }
    class Over extends Base {
    public static void main(String args[]) {
    Over o = new Over();
    int iBase = 0 ;
    o.amethod(iBase) ;
    }
    public void amethod(int iOver) {
    System.out.println("Over.amethod");
    }
    }

    A. Compile time error complaining that Base.amethod is private

    B. Runntime error complaining that Base.amethod is private

    C. Output of Base amethod

    D. Output of Over.amethod

  4. 现在有如下一段程序

    class super {
    String name ;
    public super(String name) {
    this.name = name ;
    }
    public void fun1() {
    System.out.println("this is class super !"+name);
    }
    }
    class sub extends super {
    public void fun1() {
    System.out.println("this is class sub !"+name);
    }
    }
    class Test {
    public static void main(String args[]) {
    super s = new sub();
    }
    }

    运行上面的程序可能会出现的结果?

    A. this is class super !

    B. this is class sub !

    C. 编译时出错

    D. 运行时出错

  5. 现在有如下一段程序

    class Happy {
    public static void main(String args[]) {
    float [][] f1 = {{1.2f,2.3f},{4.5f,5.6f}} ;
    Object oo = f1 ;
    f1[1] = oo ;
    System.out.println("Best Wishes "+f1[1]);
    }
    }

    该程序会出现何种效果?

    A. {4.5,5.6}

    B. 4.5

    C. compilation error in line NO.5

    D. exception

  6. 在一个类文件中,导入包、类和打包是怎样的排列顺序?

    A. package、import、class;

    B. class、import、package

    C. import、package、class

    D. package、class、import

  7. 如果你试图编译并运行下列代码时可能会打印输出什么?

    int i = 9 ;
    switch(i) {
    default:
    System.out.println("default");
    case 0 :
    System.out.println("zero");
    break ;
    case 1 : System.out.println("one");
    case 2 : System.out.println("two");
    }

    A. default

    B. default , zero

    C. error default clause not defined

    D. no output displayed

  8. 当你编译下列代码可能会输出什么?

    class Test {
    static int i ;
    public static void main(String args[]) {
    System.out.println(i);
    }
    }

    A. Error Variable i may not have been initialized

    B. null

    C. 1

    D. 0

  9. 下面代码会存在什么问题?

    public class MyClass {
    public static void main(String arguments[]) {
    amethod(arguments);
    }
    public void amethod(String[] arguments){
    System.out.println(arguments);
    System.out.println(arguments[1]);
    }
    }

    A. 错误,void amethod()不是static类型

    B. 错误,main()方法不正确

    C. 错误,数组必须导入参数

    D. 方法amethod()必须用String类型描述

  10. 为Demo类的一个无形式参数无返回值的方法method书写方法头,使得使用类名Demo作为前缀就可以调用它,该方法头的形式为?

    A. static void method( )

    B. public void method( )

    C. final void method( )

    D. abstract void method( )

答案

ACDCC ABDAA

个人解析

  1. 在方法体内声明的变量是“局部变量”,而局部变量是不能用static修饰的,private、protected、public也是不能用的。

  2. indexOf是String类的一个方法,作用是查找第一次出现参数的位置,没有则返回-1。

  3. 无论amethod方法是不是private,结果都是执行子类的amethod方法。区别是,如果不是private,子类的amethod方法是重写了父类的方法;如果是private,子类的amethod方法并没有重写父类的方法。

  4. Java中,如果类里没有写构造方法,那么会默认有一个无参的构造方法。但是一旦手动写了构造方法,那么默认的无参构造方法就没有了。这道题是因为父类只有一个有参的构造方法,但是子类却没有,所以编译出错。

  5. Java中的数组是对象,所以第四行没有问题。而f1[1]需要的是一个数组并且是一维数组,所以第五行编译出错。

  6. 在default中进入,在case 0中因为break跳出。

  7. 基本数据类型都有相应的默认值,其中int是0,char为‘\u0000’,boolean为false。

  8. 静态方法无法调用非静态方法。

  9. 静态方法可以用类名.方法名直接调用。

【17-06-19】Java进阶自测:面向对象基础知识掌握了吗?(附答案及个人解析)的更多相关文章

  1. 【17-06-16】Java入门测试题,测测你基础知识掌握程度(附答案及个人解析)

    描述 前几天在知乎里看到一份这样的题,当时只是随便做了一下,对了一下答案.昨天又有了一份进阶的题,里面有些还是需要记录一下,于是就从这个入门的题开始. 题目和答案来自阿里云大学 - 知乎专栏 题目 现 ...

  2. JAVA面试题集之基础知识

                           JAVA面试题集之基础知识 基础知识:  1.C 或Java中的异常处理机制的简单原理和应用. 当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就 ...

  3. Java中实现异常处理的基础知识

    Java中实现异常处理的基础知识 异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况.许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象. 例如:数组越界和被0除. ...

  4. Python 面向对象基础知识

    面向对象基础知识 1.什么是面向对象编程? - 以前使用函数 - 类 + 对象 2.什么是类什么是对象,又有什么关系? class 类: def 函数1(): pass def 函数2(): pass ...

  5. 总结了零基础学习Java编程语言的几个基础知识要点

    很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.本文总结了零基础学习Java编程语言的几个基础知识要点. 1先了解什么是Java的四个方面   初学者先弄清这 ...

  6. java Reflection(反射)基础知识讲解

    原文链接:小ben马的java Reflection(反射)基础知识讲解 1.获取Class对象的方式 1.1)使用 "Class#forName" public static C ...

  7. Java之JSP和Servlet基础知识

    JSP基础 JSP起源 JSP,JavaServer Pager的简称.由SUN倡导并联合其它公司创建. JSP是一门脚本语言 JSP可以嵌入到HTML中 JSP拥有Java语言的所有特性 面向对象. ...

  8. Java IO(1)基础知识——字节与字符

    正所谓怕什么来什么,这是知名的“墨菲定律”.Java基础涵盖各个方面,敢说Java基础扎实的人不是刚毕业的学生,就是工作N年的程序员.工作N年的程序员甚至也不敢人人都说Java基础扎实,甚至精通,往往 ...

  9. 【Java面试】1、基础知识篇

    [Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充. 源码分享:https: ...

  10. PHP中oop面向对象基础知识(一)

                                                                                        OOP 基础知识汇总(一) &g ...

随机推荐

  1. PHP上传大文件配置

    使用PHP上传比较大的文件时,发现程序没反应,那是因为PHP的默认设置限制了上传文件的大小,所以要修改配置文件php.ini中的一些选项:(以下只是我个人的配置,大家可根据自己的实际需要配置) fil ...

  2. 一个简单的makefile文件编写

    下午闲来无聊,就打开很久没动过的linux系统想熟悉熟悉在linux上面编译代码,结果一个makefile文件搞到晚上才搞定,哈哈! 先把代码简单贴上来,就写了一个冒泡排序: sort.h: #ifn ...

  3. Linux系列教程(十)——Linux文本编辑器vim

    通过前面几篇博客我们终于结束了Linux常用命令的介绍,Linux常用命令主要包括以下: ①.Linux文件和目录处理命令 ②.Linux链接命令和权限管理命令 ③.Linux文件搜索命令 ④.Lin ...

  4. bug:逆向思维的延伸

    哈哈,我又来了. 前段时间自己出了一个bug,说起来也属于比较常见的类型 A业务需要做一个活动,需要B业务判断,如果是通过A业务跳转至B业务的用户,则在B页面给这类用户展示一个对应的弹窗.(A是新增业 ...

  5. angular核心$watch,$digest,$apply之间的联系

    浏览器事件发生时,会在浏览器的上下文window中执行,而angular有自己的上下文angular content,angular 事件在自己的上下文angular content中执行. $wat ...

  6. Python Web框架篇:Django templates(模板)

    为什么用templates? views.py视图函数是用来写Python代码的,HTML可以被直接硬编码在views.py之中.如下: import datetime def current_tim ...

  7. inotify+rsync实现实时同步

    第1章 数据实时同步介绍 1.1 什么是实时同步:如何实现实时同步 A. 要利用监控服务(inotify),监控同步数据服务器目录中信息的变化 B. 发现目录中数据产生变化,就利用rsync服务推送到 ...

  8. SAXReader简单实例解析HTML

    转载自:http://blog.csdn.net/seayqrain/article/details/5024068# 使用SAXReader需要导入dom4j-full.jar包. dom4j是一个 ...

  9. Tomcat降权启动

    对于任何降权的操作都是为了更好的保护自己的服务器免受危害,所以我们使用Tomcat也不了外,也需要进行降权操作.因为当 Tomcat以系统管理员身份或作为系统服务运行时,Java运行时取得了系统用户或 ...

  10. seajs源码

    /*** Sea.js 3.0.0 | seajs.org/LICENSE.md 中文注释由 李祥威 添加,为个人对细节的理解,官方解释很详细的地方就不说了 难免有错漏,联系我: chuangweil ...