Java 专项练习【21- 30】(每日精进系列)

2022-06-15 11:14:21 浏览数 (1)

在程序代码中写的注释太多,会使编译后的程序尺寸变大。

A、正确 B、错误

解析

我们使用 javac 来编译代码,使用 javadoc 来识别注释,两者之间是互不影响的。

参考答案

B

以下二维数组声明合法的是( )

A、char[2][3] ch = new char[][] B、char[2][] ch = new char[][3] C、char[][] ch = new char[2][3] D、char[][] ch = new [2]char[3]

解析

Java 中,当我们定义一个数组时,赋值符号左侧是不能出现数字的,所以排除 A、B。而要定义一个二位数组,定义的格式如下:

代码语言:javascript复制
type[][] typeName = new type[typeLength1][typeLength2];

一般 typeLength1typeLength2 都是要给出的,而且必须是正整数。当然,我们也可以只给出 typeLength1,而不用给出 typeLength2

代码语言:javascript复制
type[][] typeName = new type[typeLength1][];

参考答案

C

以下程序的执行结果是:

代码语言:javascript复制
static boolean foo(char c)
{
    System.out.print(c);
    return true;
}

public static void main(String[] args) {
    int i =0;
    for(foo('A');foo('B')&&(i<2);foo('C'))
    {
        i  ;
        foo('D');
    }
}

A、ABDCBDCB B、ABCDABCD C、编译时出错 D、运行时抛出异常

解析

主要还是考察 for 循环的三条语句的执行顺序。

代码语言:javascript复制
for(循环开始条件; 判断条件; 循环后条件){
	// 循环体
}

首先执行循环开始条件,然后执行是否满足判断条件,满足则执行循环体,然后再执行循环后条件,然后再次判断是否满足判断条件,直到不满足;不满足则直接跳出 for 循环。

参考答案

A

Java 如何返回 request 范围内存在的对象?

A、request.getRequestURL() B、request.getAttribute() C、request.getParameter() D、request.getWriter()

解析

request.getAttribute() 方法返回 request 范围内存在的对象;

request.getParameter() 方法是获取 http 提交过来的数据;

getAttribute 是返回对象;

getParameter 返回字符串。

参考答案

B

子类要调用继承自父类的方法,必须使用 super 关键字。

A、正确

B、错误

解析

对于子类的构造函数,要调用父类构造函数时,需要使用 super

子类重写父类方法后,如果要调用父类中被重写的方法,此时也需要使用 super

而子类要调用父类中未被重写的方法时,直接使用 super 关键字调用即可。

参考答案

B

下面程序的输出结果是什么。

代码语言:javascript复制
public class A2{ 
    public static void main(String[] args){
        int[] a={2,4,6,8,3,6,9,12};
        doSomething(a,0,a.length-1);
        for(int i=0;i<=a.length-1;i  )
            System.out.print(a[i] " ");
    } 
    private static void doSomething(int[] a,int start,int end){
        if(start<end){
            int p=core(a,start,end);
            doSomething(a,start,p-1);
            doSomething(a,p 1,end);
        }
    }
    private static int core(int[] a,int start,int end)
    {
        int x=a[end];
        int i=start;
        for(int j=start;j<=end-1;j  ){
            if(a[j]>=x){
                swap(a,i,j);
                i  ;//交换了几次 
            }
        }//把最大的放到最后
        swap(a,i,end);//把最大的放到i的位置 
        return i;
    } 

    private static void swap(int[] a,int i,int j) 
    {
        int tmp=a[i];
        a[i]=a[j];
        a[j]=tmp;
    }
} 

A、找到最大值 B、找到最小值 C、从大到小的排序 D、从小到大的排序

解析

思想类似于快速排序,总是以最后一个数作为分界岭,比它大的放前面,比它小的放后面,然后递归分界岭左右两个区间。

参考答案

C

下面哪个不属于 HttpServletResponse 接口完成的功能?

A、设置 HTTP 头标 B、设置 cookie C、读取路径信息 D、输出返回数据

解析

设置 HTTP 头标:setHeader()

设置 cookieaddCookie()

读取路径信息是 request 的功能。

输出返回数据 getOutputStream().write()

参考答案

C

ServletConfig 接口默认是哪里实现的?

A、Servlet B、GenericServlet C、HttpServlet D、用户自定义 servlet

解析

参考答案

B

以下表达式中,正确的是()

A、byte i = 128 B、boolean i = null C、long i = 0xfffL D、double i = 0.9239d

解析

对于 A,byte 其范围是 -128 ~ 127,所以 A 越界。

对于 B,boolean 的值只有 truefalse

对于 C,使用十六进制表示,未越界,所以是可以的。

对于 D,为了区分 floatdouble 的区别,我们一般推荐在 double 类型的数值之后加上 d 字母。

参考答案

C、D

下面关于面向对象的一些理解哪些是错误的( )

A、面向对象的最重要的特性是支持继承、封装和多态

B、系统设计应该遵循开闭原则,系统应该稳定不不可修改,但应支持通过继承、组合等方式进行扩展

C、函数式的语言必然是面向对象的语言

D、面向对象设计时,每个类的职责应该单一,不要再一个类中引入过多的接口

E、过程式语言和面向对象的语言各有其优势,过程式语言更加灵活,面向对象语言更加强调抽象和封装

F、Java 和 C 都是静态类型的面向对象编程语言

解析

面向对象的三大特性:继承、封装、多态

动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。

静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型。

C/C 是静态类型语言的典型代表,其他的静态类型语言还有 C#、JAVA 等。

参考答案

C

总结

以上所有题目整理自牛客网

0 人点赞