概述
提示:好多小伙伴反映,直接看到答案不太好,那我把答案的颜色设置为透明,答案位置还是在题目后面,需要鼠标选中才能看见(操作如下图),同时为了手机端的小伙伴(手机端也可以长按选中查看),我还会把所有答案放到文章最下面,希望给每天进步一点点的小伙伴更好的体验。
每天进步一点点!
1、在 JAVA 编程中, Java 编译器会将 Java 程序转换为( )
正确答案: A 你的答案: 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 你的答案: 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 你的答案: A (正确)
指定编译后类层次的根目录
指定编译时需要依赖类的路径
指定编译时的编码
没有这一个参数
题解:
javac -d 指定放置生成的类文件的位置
javac -s 指定放置生成的源文件的位置
4、关于Java的抽象类、接口,以下描述错误的是?
正确答案: C 你的答案: C (正确)
抽象类不一定含有抽象方法,接口中的方法都是抽象方法
一个类只能继承一个抽象类,但可以实现多个接口;一个接口可以继承多个接口
抽象类和接口中的方法都没有方法体
抽象类可以含有私有成员变量,接口不含有私有成员变量
题解:
A:抽象类不一定含有抽象方法,接口中的方法都是抽象方法。
接口中的方法默认修饰符有public abstract。
B:一个类只能继承一个一个抽象类,但可以实现多个接口;一个接口可以继承多个接口。
Java里类是单继承的,接口是可以多继承的,用关键字extends。
C:抽象类和接口中的方法都没有方法体。
抽象类中的方法是可以有方法体的。JDK1.8之后,接口中的方法也可以有方法体,用default关键字修饰方法。
D:抽象类可以含有私有成员变量,接口不含有私有成员变量。
接口中的成员变量都是public static final的,一般用作常量。
5、在JAVA中,假设A有构造方法A(int a),则在类A的其他构造方法中调用该构造方法和语句格式应该为()
正确答案: B 你的答案: B (正确)
this.A(x)
this(x)
super(x)
A(x)
题解:
this的作用其中一个就是在一个构造方法中调用另一个构造方法,格式为this(参数);
super是调用父类的方法;
A(a)这种形式是在new一个类时使用。
6、下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?
正确答案: B 你的答案: B (正确)
private
无修饰符
public
protected
题解:
无修饰符就是默认权限,也叫包访问权限,只能被同一包内类访问
7、下列Java代码中的变量a、b、c分别在内存的____存储区存放。
class A {
private String a = “aa”;
public boolean methodB() {
String b = “bb”;
final String c = “cc”;
}
}
正确答案: C 你的答案: C (正确)
堆区、堆区、堆区
堆区、栈区、堆区
堆区、栈区、栈区
堆区、堆区、栈区
静态区、栈区、堆区
静态区、栈区、栈区
题解:
a是类中的成员变量,存放在堆区
b、c都是方法中的局部变量,存放在栈区
堆区:只存放类对象,线程共享;
方法区:又叫静态存储区,存放class文件和静态数据,线程共享;
栈区:存放方法局部变量,基本类型变量区、执行环境上下文、操作指令区,线程不共享;
8、以下哪些方法是Object类中的方法
正确答案: A B C D 你的答案: 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 你的答案: 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 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
以上部分题解来自牛客评论区,感谢评论区大佬的解释。
每天进步一点点!
不进则退!
版权声明:
原创博主:牛哄哄的柯南
博主原文链接:https://keafmd.blog.csdn.net/
看完如果对你有帮助,感谢点击下面的一键三连支持!
[哈哈][抱拳]
加油!
共同努力!
Keafmd
最后
以上就是怕孤独泥猴桃为你收集整理的日常Java练习题(每天进步一点点系列)的全部内容,希望文章能够帮你解决日常Java练习题(每天进步一点点系列)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复