牛客网:Java选择题(3)

1.
在这里插入图片描述

解析:A
Java与C++的区别在于:Java去除了指针的概念,使用引用,并且Java的内存管理不需要程序员来管理,由Java虚拟机来完成对内存的管理

2.
在这里插入图片描述

解析:B
a=b; a,b都将指向同一块地址,但是a,b占据不同的内存空间

3.
在这里插入图片描述

解析:C
基类就是父类,也叫超类。导出类就是子类,也叫派生类。
子类调用父类的构造器使用super(),放在子类构造函数的首行

4.
在这里插入图片描述

解析:A
2^f(n)<=n/2
f(n)<=log2(n/2),近似等于f(n)<=log2(n),取最大值f(n)=log2(n)
则T(n)=O(log2(n))

5.
在这里插入图片描述

解析:C
HashMap可以插入null的key或value,插入的时候,检查是否已经存在相同的key,如果不存在,则直接插入,如果存在,则用新的value替换旧的value,在本题中,第一条put语句,会将key/value对插入HashMap,而第二条put,因为已经存在一个key为name的项,所以会用新的value替换旧的value,因此,两条put之后,HashMap中只有一个key/value键值对。那就是(name,jack)。所以,size为1

6.
在这里插入图片描述

解析:C
A. 接口中的方法默认修饰符有public abstract。
B. Java里类是单继承的,接口是可以多继承的,用关键字extends。
C. JDK8以上,接口可以含有静态方法和默认方法, 接口中的方法也可以有方法体,用default关键字修饰方法。
D. 接口中的成员变量都是public static final的,一般用作常量

7.
在这里插入图片描述

解析:B
在类内部用户可以使用关键字this.构造方法名()调用(参数决定调用的是本类对应的构造方法
在子类中用户可以通过关键字super.父类构造方法名()调用(参数决定调用的是父类对应的构造方法
反射机制对于任意一个类,都能够知道这个类的所有属性和方法,包括类的构造方法

8.
在这里插入图片描述

解析:D
接口所有方法全是抽象方法只能 public abstract修饰 (默认public abstract修饰 ),属性默认public static final修饰。

9.
在这里插入图片描述

解析:B
final修饰的成员变量为基本数据类型时,在赋值之后无法改变;当final修饰的成员变量为引用数据类型时,在赋值后其指向地址无法改变,但是对象内容还是可以改变的。

10.
在这里插入图片描述

解析:C
解决冲突主要有三种方法:定址法,拉链法,再散列法。HashMap是采用拉链法解决哈希冲突的

11.
在这里插入图片描述

解析:A
子类可以继承父类的全部数据域和方法,但是这里继承代表的是“拥有”,即:只是拥有父类的全部数据域和方法,但不具备对某些私有数据域或私有方法的使用权(调用)

12.
在这里插入图片描述

解析:A

13.
在这里插入图片描述

解析:C
Apache就是一个Http服务器,Tomcat是一个web容器,静态的htmlApache还可以处理,但是动态的需要转发给Tomcat去处理了,比如jsp页面,请求先经由Apache转发给Tomcat再由Tomcat解析请求。所以应该是web容器去解析成request对象

14.
在这里插入图片描述

解析:AC
private成员只能在当前类中访问,派生类(子类)可以访问父类的public和protected属性成员。数据成员和函数成员默认是default访问权限,同一个包下的所有类都可以访问,但类B不一定和类A同包

15.
在这里插入图片描述

解析:AB
线程安全问题都是由全局变量及静态变量引起的。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。

16.
在这里插入图片描述

解析:BF
B为double类型
F中的Double的D为大写,指一种封装类,且这里的100为int型

17.
在这里插入图片描述

解析:ACD
A:只是方法名称和参数名称取的比较特殊,java中正确的main方法定义是 public static void main(String[] args){ }
B:接口中不能定义私有方法
C:不显示标明方法的访问修饰符,接口中默认是public
D:get可以作为方法名称

18.
在这里插入图片描述

解析:BC ##复制评论
A. 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器(偏移地址),Java编译过程中产生的字节码有点类似编译原理的指令,程序计数器的内存空间存储的是当前执行的字节码的偏移地址,每一个线程都有一个独立的程序计数器(程序计数器的内存空间是线程私有的),因为当执行语句时,改变的是程序计数器的内存空间,因此它不会发生内存溢出 ,并且程序计数器是jvm虚拟机规范中唯一一个没有规定 OutOfMemoryError 异常 的区域
B. java虚拟机栈:线程私有,生命周期和线程一致。描述的是 Java 方法执行的内存模型:每个方法在执行时都会床创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行结束,就对应着一个栈帧从虚拟机栈中入栈到出栈的过程。 没有类信息,类信息是在方法区中
C. java堆:对于绝大多数应用来说,这块区域是 JVM 所管理的内存中最大的一块。线程共享,主要是存放对象实例和数组
D. 方法区:属于共享内存区域,存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值