关于java内存区域下列说法不正确_2019年12月13日 java2

题目1 考点:修饰符混用

下列关于修饰符混用的说法,错误的是( )

A abstract不能与final并列修饰同一个类

B abstract类中不应该有private的成员

C abstract方法必须在abstract类或接口中

D static方法中能直接调用类里的非static的属性

解析显示答案/隐藏答案正确答案: D

abstract类中的确不应该有private的成员,但是是可以有的

题目2 考点:求余运算

以下代码段执行后的输出结果为

1

2

3

4

5

6

7public class Test{

public static void main(String args[]){

int x = -5;

int y = -12;

System.out.println(y % x);

}

}

A -1

B 2

C 1

D -2

解析显示答案/隐藏答案正确答案: D

Y(被除数) % X(除数) 当除数与被除数的符号相同时,取余和取模的结果是完全相同的; 当除数与被除数的符号不相同时,结果不同。具体说,取余结果的符号与%前面的数的符号(被除数)相同;

题目3 考点:java只有值传递

关于Java中参数传递的说法,哪个是错误的?

A 在方法中,修改一个基础类型的参数不会影响原始参数值

B 在方法中,改变一个对象参数的引用不会影响到原始引用

C 在方法中,修改一个对象的属性会影响原始对象参数

D 在方法中,修改集合和Maps的元素不会影响原始集合参数

解析显示答案/隐藏答案正确答案: D

题目4 考点:多态 编译看左边 运行看右边

下列代码输出结果为( )

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22class Animal{

public void move(){

System.out.println("动物可以移动");

}

}

class Dog extends Animal{

public void move(){

System.out.println("狗可以跑和走");

}

public void bark(){

System.out.println("狗可以吠叫");

}

}

public class TestDog{

public static void main(String args[]){

Animal a = new Animal();

Animal b = new Dog();

a.move();

b.move();

b.bark();

}

}

A 1

2

3动物可以移动

狗可以跑和走

狗可以吠叫

B1

2

3动物可以移动

动物可以移动

狗可以吠叫

C 运行错误

D 编译错误

解析显示答案/隐藏答案正确答案: D

题目5 考点:

假设num已经被创建为一个ArrayList对象,并且最初包含以下整数值:[0,0,4,2,5,0,3,0]。 执行下面的方法numQuest(),最终的输出结果是什么?

1

2

3

4

5

6

7

8

9

10

11

12private List nums;

//precondition: nums.size() > 0

//nums contains Integer objects

public void numQuest(){

int k = 0;

Integer zero = new Integer(0);

while (k < nums.size()) {

if (nums.get(k).equals(zero))nums.remove(k);

k++;

}

}

A [3, 5, 2, 4, 0, 0, 0, 0]

B [0, 0, 0, 0, 4, 2, 5, 3]

C [0, 0, 4, 2, 5, 0, 3, 0]

D [0, 4, 2, 5, 3]

解析显示答案/隐藏答案正确答案: D

List中的 get ( i )指的是获取下标(索引)为 i 的元素,也就是第 i+1 个元素

本题:

zero==0,如果get(k)==0,执行remove(k); ;

size==8 ; k==0 , 因此第一次remove(0) ,删除索引为0的元素也就是第一个元素0,然后k++, size()—;

此时集合元素为 :[0,4,2,5,0,3,0]

size==7; k==1,因此get(1)==4 !=0 , 不执行remove(); k++,因没有删除元素,size()不变,

此时集合元素为:[0,4,2,5,0,3,0]

size==7;k==2,k++;

size==7;k==3,k++;

size==7;k==4,get(4)==0,remove(4) ; k++, size()—;

此时集合元素为: [0,4,2,5,3,0]

size==6;k==5,get(5)==0,remove(5);k++, size()—;

此时集合元素为: [0,4,2,5,3]

size==5; k==6 ;退出循环;最终输出此时集合元素为 [0,4,2,5,3] ;

一般更改删除集合元素,使用iterator()迭代器,不推荐使用这种;

此方法的目地就是排除重复元素

题目6 考点:Math.round四舍五入 舍变小入变大

Math.round(11.5) 等于多少 (). Math.round(-11.5) 等于多少 ( ).

A 11 ,-11

B 11 ,-12

C 12 ,-11

D 12 ,-12

解析显示答案/隐藏答案正确答案: C

floor : 意为地板,指向下取整,返回不大于它的最大整数

ceil : 意为天花板,指向上取整,返回不小于它的最小整数

round: 意为大约,表示”四舍五入”,而四舍五入,入是往数值大数的方向入。

Math.round(11.5)的结果为12,12>11.5

Math.round(-11.5)的结果为-11。-11>-11.5

题目7 考点:Log4j

下列语句哪一个是不正确的()

A Log4j支持按分钟为间隔生成新的日志文件

B Log4j是一个打印日志用的组件

C Log4j支持按年为间隔生成新的日志文件

D Log4j的日志打印级别可以在运行时重新设置

解析显示答案/隐藏答案正确答案: D

Log4j在运行期间不可重置

题目8 考点:默认构造器

It is an important feature of the Java language that it always provides a default constructor to a class.

A FALSE

B TRUE

解析显示答案/隐藏答案正确答案: A

只有在不显示声明构造方法时,系统才提供默认无参构造方法

题目9 考点:线程安全集合

下面哪些具体实现类可以用于存储键,值对,并且方法调用提供了基本的多线程安全支持:()

A java.util.ConcurrentHashMap

B java.util.Map

C java.util.TreeMap

D java.util.SortMap

E java.util.Hashtable

F java.util.HashMap

解析显示答案/隐藏答案正确答案: AE

线程安全的map

HashTable,

SynchronizedMap,

ConcurrentHashMap

题目10 考点:java内存区域

关于Java内存区域下列说法不正确的有哪些

A 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器,每个线程都需要一个独立的程序计数器.

B Java虚拟机栈描述的是java方法执行的内存模型,每个方法被执行的时候都会创建一个栈帧,用于存储局部变量表、类信息、动态链接等信息

C Java堆是java虚拟机所管理的内存中最大的一块,每个线程都拥有一块内存区域,所有的对象实例以及数组都在这里分配内存。

D 方法区是各个线程共享的内存区域,它用于存储已经被虚拟机加载的常量、即时编译器编译后的代码、静态变量等数据。

解析显示答案/隐藏答案正确答案: BC

B错误. java虚拟机栈没有类信息,类信息是在方法区中

C错误. java堆线程共享,主要是存放对象实例和数组

题目11 考点:编译原理 循环优化

下列哪些方法是针对循环优化进行的

A 强度削弱

B 删除归纳变量

C 删除多余运算

D 代码外提

解析显示答案/隐藏答案正确答案: ABD

常见的代码优化技术有:复写传播,删除死代码, 强度削弱,归纳变量删除

有空了解一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值