Java练习题 05

1. 下面关于JAVA的垃圾回收机制,正确的是( )
正确答案: B 你的答案: B (正确)
A.当调用“System.gc()”来强制回收时,系统会立即回收垃圾
B.垃圾回收不能确定具体的回收时间
C.程序可明确地标识某个局部变量的引用不再被使用
D.程序可以显式地立即释放对象占有的内存

java提供了一个系统级的线程,即垃圾回收器线程。用来对每一个分配出去的内存空间进行跟踪。当JVM空闲时,自动回收每块可能被回收的内存,GC是完全自动的,不能被强制执行。程序员最多只能用System.gc()来建议执行垃圾回收器回收内存,但是具体的回收时间,是不可知的。当对象的引用变量被赋值为null,可能被当成垃圾。

2.
在这里插入图片描述
在这里插入图片描述

Java类成员的访问控制权限:
public > protected > 同包(default) > private

在这里插入图片描述

Java标识符命名规范是:
1)只能包含字母a-zA-Z,数字0-9,下划线_和美元符号$;
2)首字母不能为数字;
3)关键字和保留字不能作为标识符。

3. 下面代码的运行结果是( )
public class Arraytest
{
int a[] = new int[6];
public static void main ( String arg[] ) {
System.out.println ( a[0] );
}
}
正确答案: C 你的答案: A (错误)
A.null
B.0
C.编译出错
D.运行出错

Java静态 方法不能访问 非静态变量

4. 下面有关JVM内存,说法错误的是?
正确答案: C 你的答案: B (错误)
A.程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的
B.虚拟机栈描述的是Java方法执行的内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的
C.方法区用于存储JVM加载的类信息、常量、静态变量、以及编译器编译后的代码等数据,是线程隔离的
D.原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的

方法区在JVM中也是一个非常重要的区域,它与堆一样,是被 线程共享 的区域。 在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。

5.
包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法。注意,抽象类和普通类的主要有三点区别:
1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。
2)抽象类不能用来创建对象;
3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。

在其他方面,抽象类和普通的类并没有区别。

6.
方法重写严格把握五点:
三同、一大、一小。具体内容以及与方法重载的区别见下:
方法重写
参数列表必须完全与被重写方法的相同;
返回类型必须完全与被重写方法的返回类型相同;
方法名相同;
以上为三同

访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
此为一大

父类的成员方法只能被它的子类重写。
声明为final的方法不能被重写。
声明为static的方法不能被重写,但是能够被再次声明。
子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。

重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。

此为一小

构造方法不能被重写。
如果不能继承一个方法,则不能重写这个方法。

方法重载
被重载的方法必须改变参数列表(参数个数或类型或顺序不一样);
被重载的方法可以改变返回类型;
被重载的方法可以改变访问修饰符;
被重载的方法可以声明新的或更广的检查异常;
方法能够在同一个类中或者在一个子类中被重载。
无法以返回值类型作为重载函数的区分标准。

7.
ArrayLists和LinkedList的区别,下述说法正确的有?
正确答案: A B C D 你的答案: A B C D (正确)
A.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。

B.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。

C.对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。

D.ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间。

8 下面哪些赋值语句是正确的()
正确答案: A B D 你的答案: A B D (正确)
A.long test=012
B.float f=-412
C.int other =(int)true
D.double d=0x12345678
E.byte b=128

A:012默认是int类型,赋给long类型没错。 正确
B:-412默认也是int类型,赋给float没错。 正确
C:很明显布尔类型不能强转成其他数值类型。 错误
D:0x12345678默认应该是int类型,赋给double没错。 正确
E:128 > 127默认是int类型,byte默认范围是(-128 ~ 127)。错误

9.
堆区:只存放类对象,线程共享;
方法区:又叫静态存储区,存放class文件和静态数据,线程共享;
栈区:存放方法局部变量,基本类型变量区、执行环境上下文、操作指令区,线程不共享;

.class :编译后的Java文件
.java :是未编译的程序
.jsp :是页面程序
.xml : 配置程序
.jar是 :. calss的集合
( .jar一种压缩包格式,常用来打包 Java 类库。)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值