Java有哪些笔试题

这篇文章主要讲解了“Java有哪些笔试题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java有哪些笔试题”吧!

站在用户的角度思考问题,与客户深入沟通,找到福绵网站设计与福绵网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广、申请域名虚拟主机、企业邮箱。业务覆盖福绵地区。

下面有关JVM内存,说法错误的是?

A、程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的。

B、虚拟机栈描述的是Java方法执行的内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的。

C、方法区用于存储JVM加载的类信息、常量、静态变量、以及编译器编译后的代码等数据,是线程隔离的。

D、原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的。

点击下方空白区域查看答案解析!

正确答案:C

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

下列关于构造方法不正确的是:( )

A、类的构造方法和类同名

B、一个类可以有多个构造方法

C、在实例化对象时必须调用类的构造方法

D、构造方法可以和该类其他方法一样被该类对象调用

点击下方空白区域查看答案解析!

正确答案:D

答案解析: 构造方法是用来构造对象实例的。而成员方法是用来执行某种功能的,需要对象实例来调用。所以顺序是:构造方法执行得到对象实例,对象实例调用成员方法。构造在前,实例对象在后,不可能调用!

【多选】实现或继承了Collection接口的是()

A、Map

B、List

C、Vector

D、Iterator

E、Set

点击下方空白区域查看答案解析!

正确答案:BCE

答案解析:

1、A中的Map接口以键值对(key—value)的形式存放对象,其中键(key)对象不可以重复,值(value)对象可以重复,排序方式为按照自身内部的规则。

2、B中的List接口继承了Collection接口,List接口允许存放重复的对象,排序方式为按照对象的插入顺序。

3、C中的Vector实现了List接口,即间接实现Collection接口。

4、D中的Iterator,所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,没有实现Collection接口。

5、E中的Set接口继承了Collection接口,Set接口不允许存放重复的对象,排序方式为按照自身内部的排序规则。


好了,还是得多说几句,关于上面三道题的一点小扩展

一、关于线程隔离和线程共享

JVM中线程隔离的有:

程序计数器:

一小块内存空间,单前线程所执行的字节码行号指示器。字节码解释器工作时,通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。

JVM虚拟机栈:

Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息。是线程私有的。

本地方法栈:

为JVM用到的Native方法服务,SunHotSpot 虚拟机把本地方法栈和JVM虚拟机栈合二为一。是线程私有的。

JVM中线程共享的有:

方法区:

用于存储JVM加载的类信息、常量、静态变量、即使编译器编译后的代码等数据。

运行时常量池:

是方法区的一部分,用于存放编译器生成的各种字面量和符号引用,这部分内容将在类加载后存放到方法取得运行时常量池中。具备动态性,用的比较多的就是String类的intern()方法。

JVM堆:

存放所有对象实例的地方。

新生代,由Eden Space 和大小相同的两块Survivor组成

旧生代,存放经过多次垃圾回收仍然存活的对象

二、关于Java中的反射和构造方法

A和B没有疑问,C的话因为有反射,这里可能有朋友会采坑。反射虽然没有New对象,但一样依赖类的构造方法。获取想要操作类的java.lang.Class对象。每个类被加载后,系统就会为该类生成一个对应的Class对象,class对象就可以访问java虚拟机中的这个类。

获取Class有三种方法:

1、调用某个对象的getclass()方法.

例如:person person=new person();Class cla=person.getclass()调/2、用某个类的class属性来获取该类对应的class对象

例如:Class cla=Person.class;

3、使用class类的forName()静态方法例

如:class cla=Class.ForName(“com.amuxia.person”)

调用其构造方法,这里举几种例子:

1、getConstructor(class[]params)作用:

     返回此class对象所表示的类的指定的public构造方法。
     例如:Constructorc=cla.getConstructor(string.class,String.class,Integer.class)
2、getConstructors作用:

     返回此class对象所表示的类的所有public构造方法。
     例如:Constructor[]arrc=cla.getConstructors()
3、getDeclaredConstructor(class[]params)作用:

    返回此class对象所表示的类的指定的构造方法,与构造方法的访问级别无关。
     例如:Consteuctorc=cla.getDeclaredconstructor(string.class,string.class,Integer.class)
4、getDeclaredConstructors()作用:

     返回此class对象所表示的类的全部构造方法。
     例如:Constructor[]arrc=cla.getDeclaredConsteructors();

感谢各位的阅读,以上就是“Java有哪些笔试题”的内容了,经过本文的学习后,相信大家对Java有哪些笔试题这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


当前名称:Java有哪些笔试题
本文网址:http://scyanting.com/article/jjjhsd.html