刷了牛客网1000道题挑选出75道典型题

刷了牛客网1000道题挑选出75道典型题,大家可以看看自己都会吗,博主在群里面有很多的我整理的内部资源:Java题库,大厂面试题,学习大纲,自学课程大纲,简历模板等还有欢迎大家加入博主组建的Java学习技术交流群呀!群号:853665602,有什么问题都可以在里面询问交流,希望欢迎到很多一起学习Java的小伙伴,感谢你们的支持!

正文

1、下列哪个说法是正确的()

A ConcurrentHashMap使用synchronized关键字保证线程安全

B HashMap实现了Collction接口

C Array.asList方法返回java.util.ArrayList对象

D SimpleDateFormat是线程不安全的

D

ConcurrentHashMap 使用segment来分段和管理锁使用ReentrantLock来保证线程安全。

这个是HashMap的源码:

public class HashMap<K,V>
    extends AbstractMap<K,V>
    implements Map<K,V>, Cloneable, Serializable复制Error复制成功

Arrays.asList() 返回 java.util.Arrays.ArrayList 对象,这里的 ArrayList 是 Arrays 私有的内部类;并不是java.util.ArrayList。

SimpleDateFormat没有加同步锁,故不安全。

2、下面代码的运行结果是()

public static void main(String[] args){
    String s;
    System.out.println("s="+s);
}复制Error复制成功

A 代码编程成功,并输出”s=”

B 代码编译成功,并输出”s=null”

C 由于String s没有初始化,代码不能编译通过。

D 代码编译成功,但捕获到NullPointException异常

C

局部变量没有默认值

3、JDK1.8版本之前,抽象类和接口的区别,以下说法错误的是()

A 接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的。

B abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface,实现多重继承。接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用。

C 在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是 static final的,不过在 interface中一般不定义数据成员),所有的成员方法默认都是 public abstract 类型的。

D abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"has-a"关系,interface表示的是"is-a"关系。

D

abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。

接口中:

如果是Java 7以及以前的版本,那么接口中可以包含的内容有:1. 常量;2. 抽象方法 如果是Java 8,还可以额外包含有:3. 默认方法;4. 静态方法 如果是Java 9,还可以额外包含有:5. 私有方法

final变量在使用前必须先赋值

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

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

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

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

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

B C

java虚拟机栈:线程私有没有类信息,类信息是在方法区中

java堆是被所有线程共享的一块内存区域,而不是每个线程都拥有一块内存区域。

6、在java中重写方法应遵循规则的包括()

A 访问修饰符的限制一定要大于被重写方法的访问修饰符

B 可以有不同的访问修饰符

C 参数列表必须完全与被重写的方法相同

D 必须具有不同的参数列表

B C

方法重写要注意的事项: 1.方法重写时, 方法名与形参列表必须一致。 2.方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。 3.方法重写时,子类的返回值类型必须要小于或者等于父类的返回值类型。 4.方法重写时, 子类抛出的异常类型要小于或者等于父类抛出的异常类型。 Exception(大) RuntimeException(小)

A选项的一定要大于错误,而是子类重写方法的访问权限不能低于父类重写方法的访问权限

D 是重载要求

7、要使某个类能被同一个包中的其他类访问,但不能被这个包以外的类访问,可以( )

A 让该类不使用任何关键字

B 使用private关键字

C 使用protected关键字

D 使用void关键字

A

总结:default拒绝一切包外访问;protected接受包外的子类访问

public>protected>default>private

8、枚举(enum)属于原始数据类型(primitive type)?

错误

在Java中,变量有两种类型,一种是原始类型,一种是引用类型。

原始类型一共有8种,它们分别是char,boolean,byte,short,int,long,float,double。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值