我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java日常练习题,每天进步一点点(57)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java日常练习题,每天进步一点点(57)

承蒙各位厚爱,我们一起每天进步一点点!(鼠标选中空白处查看答案)

1、在 JAVA 编程中, Java 编译器会将 Java 程序转换为( )

正确答案: A

字节码

可执行代码

机器代码

以上都不对

题解:
编译器将Java源代码编译成字节码class文件
类加载到JVM里面后,执行引擎把字节码转为可执行代码
执行的过程,再把可执行代码转为机器码,由底层的操作系统完成执行。

2、执行如下代码后输出结果为( )


public class Test {
 public static void main(String[] args) {
     System.out.println("return value of getValue(): " + getValue());
 }
 public static int getValue() {
     int i = 1;
     try {
         i = 4;
     } finally{
         i++;
         return i;
     }
     }
 }

正确答案: C

return value of getValue(): 1

return value of getValue(): 4

return value of getValue(): 5

其他几项都不对

题解:
经过try之后i变成4,在经过finally,i变为5

3、命令javac-d参数的用途是?()

正确答案: A

指定编译后类层次的根目录

指定编译时需要依赖类的路径

指定编译时的编码

没有这一个参数

题解:
javac -d 指定放置生成的类文件的位置
javac -s 指定放置生成的源文件的位置

4、关于Java的抽象类、接口,以下描述错误的是?

正确答案: C

抽象类不一定含有抽象方法,接口中的方法都是抽象方法

一个类只能继承一个抽象类,但可以实现多个接口;一个接口可以继承多个接口

抽象类和接口中的方法都没有方法体

抽象类可以含有私有成员变量,接口不含有私有成员变量

题解:
A:抽象类不一定含有抽象方法,接口中的方法都是抽象方法。
接口中的方法默认修饰符有public abstract。
B:一个类只能继承一个一个抽象类,但可以实现多个接口;一个接口可以继承多个接口。
Java里类是单继承的,接口是可以多继承的,用关键字extends。
C:抽象类和接口中的方法都没有方法体。
抽象类中的方法是可以有方法体的。JDK1.8之后,接口中的方法也可以有方法体,用default关键字修饰方法。
D:抽象类可以含有私有成员变量,接口不含有私有成员变量。
接口中的成员变量都是public static final的,一般用作常量。

5、在JAVA中,假设A有构造方法A(int a),则在类A的其他构造方法中调用该构造方法和语句格式应该为()

正确答案: B

this.A(x)

this(x)

super(x)

A(x)

题解:
this的作用其中一个就是在一个构造方法中调用另一个构造方法,格式为this(参数);
super是调用父类的方法;
A(a)这种形式是在new一个类时使用。

6、下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?

正确答案: B

private

无修饰符

public

protected

题解:
无修饰符就是默认权限,也叫包访问权限,只能被同一包内类访问

7、下列Java代码中的变量a、b、c分别在内存的____存储区存放。

正确答案: C

堆区、堆区、堆区

堆区、栈区、堆区

堆区、栈区、栈区

堆区、堆区、栈区

静态区、栈区、堆区

静态区、栈区、栈区

题解:
a是类中的成员变量,存放在堆区
b、c都是方法中的局部变量,存放在栈区
堆区:只存放类对象,线程共享;
方法区:又叫静态存储区,存放class文件和静态数据,线程共享;
栈区:存放方法局部变量,基本类型变量区、执行环境上下文、操作指令区,线程不共享;

8、以下哪些方法是Object类中的方法

正确答案: A B C D

clone()

toString()

wait()

finalize()

题解:
都是

9、A,B,C,D 中哪些是 setvar的重载?

public class methodover

{

public void setVar(int a, int b, float c) {}

}

正确答案: A C D

private void setVar(int a, float c, int b){}

protected void setVar(int a, int b, float c){}

public int setVar(int a, float c, int b){return a;}

public int setVar(int a, float c){return a;}

题解:
重载是在同一个类中,有多个方法名相同,参数列表不同(参数个数不同,参数类型不同),与方法的返回值无关,与权限修饰符无关,B中的参数列表和题目的方法完全一样了。

10、下面哪些描述是正确的:( )


public class Test {
public static class A {
private B ref;
public void setB(B b) {
ref = b;
}
}
public static Class B {
private A ref;
public void setA(A a) {
ref = a;
}
}
public static void main(String args[]) {
…
start();
….
}
public static void start() { A a = new A();
B b = new B();
a.setB(b);
b = null; //
a = null;
…
}
}

正确答案: B C

b = null执行后b可以被垃圾回收

a = null执行后b可以被垃圾回收

a = null执行后a可以被垃圾回收

a,b必须在整个程序结束后才能被垃圾回收

类A和类B在设计上有循环引用,会导致内存泄露

a, b 必须在start方法执行完毕才能被垃圾回收

题解:
内存如下:
a -> “a(b)”
b -> “b”
a引用指向一块空间,这块空间里面包含着b对象
b引用指向一块空间,这块空间是b对象
A选项,b = null执行后b可以被垃圾回收。这里"b可以被垃圾回收"中的b指的是引用b指向的内存。这块内存即使不被引用b指向,还是被引用a指向着,不会被回收。
B选项,a = null执行后b可以被垃圾回收。从代码中可以看到,a = null是在b = null后执行的,该行执行后,引用a和b都没有指向对象,对象会被回收。
C选项,同理。

答案汇总:

1、正确答案: A

2、正确答案: C

3、正确答案: A

4、正确答案: C

5、正确答案: B

6、正确答案: B

7、正确答案: C

8、正确答案: A B C D

9、正确答案: A C D

10、正确答案: B C

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程网的更多内容!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java日常练习题,每天进步一点点(57)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录