JAVA认证

JAVA高级工程师笔试题及答案

时间:2024-08-30 21:29:37 文圣 JAVA认证 我要投稿
  • 相关推荐

JAVA高级工程师笔试题及答案

  Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。下面是小编收集的JAVA高级工程师笔试题及答案,欢迎大家参考!

JAVA高级工程师笔试题及答案

  JAVA高级工程师笔试题及答案

  1、abstractclass和interface的区别?

  抽象类可以有私有方法和变量,接口中不能有私有方法和变量。

  抽象类可以有方法的实现,接口中不能有方法的实现并且所以的方法都需要实现。

  2、try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?

  Finally代码块中的语句是必须执行的,必须在try代码块执行完之后执行,在return语句后执行。除非代码块中有System.exit();方法,因为终止了虚拟机进程,会不执行。

  3、int和Integer有什么区别?

  Java中提供了两种不同类型:引用类型和原始类型。Int是原始类型,Integer是int的封装类型。

  4、说出ArrayList,Vector,LinkedList的存储性能和特性?

  ArrayList和Vector是按数组的方式存储数据的,此数组的元素大于实际存储的数据,以便于增加和插入元素,它们允许数组按序号索引元素,由于插入数据时涉及到移动等内存操作,所以索引数据快而插入数据慢。Vector由于使用了synchroinzed(安全性),通常性能上较ArrayList差。LinkedList使用双向链表实现存储,按索引序号前向或后向遍历,插入数据时只需要记录本项的前后项即可,所以插入数据速度较快。

  5、描述一下JVM加载class文件的原理机制?

  Java中所有的类必须加装到jvm中才能运行,这个工作是由jvm中的类装载器完成的,类装载器所作工作实质是把类文件读取到内存当中。

  6、STRING与STRINGBUFFER的区别?

  String在追加内容的时候不会在原有的内存区域中追加内容,而是在内存中分配一块内存区域存放追加内容,StringBuffer不会。

  7、List、Map、Set三个接口,存取元素时,各有什么特点?

  List以特定顺序来持有元素,元素可重复。

  Set在内部排序,不允许有重复元素。

  Map保存key-value值,value可有多个值。

  8、谈谈final,finally,finalize的区别

  Final可以修饰变量、方法、类。被final修饰的变量必须初始化并且不能被修改。被final修饰的方法不能被重载。被final修饰的类不能被继承,final不能和abstract同时修饰。Finally是在异常处理是提供的,如果抛出异常,那么相匹配的catch子句就会执行,然后控制就会进入finally中。

  Java允许finalize()方法在垃圾收集器将对象从内存中清除出去之前做垃圾清理工作。这个方法是垃圾收集器在确定对象没有被引用时调用的。Finalize()方法是在删除这个对象之前对这个对象调用的。

  9、sleep()和wait()有什么区别?

  Sleep()是线程类Thread方法,导致该线程在指定的时间内暂停,指定时间之后会自动恢复,该方法不会释放对象锁。

  Wait()是Object类的方法,调用该方法是线程会进入等待状态,直到调用notify或notfyall方法通知恢复状态,该方法会释放对象锁。

  10、GC是什么?为什么要有GC?

  GC是java提供的垃圾回收器。

  有了GC就不需要程序员人工去释放内存空间,当虚拟机发现内存空间紧张时会自动的去清理一些无用变量所占用的内存空间。程序员也可以调用System.gc();强制执行一次清理。

  JAVA笔试题

  1、在java中如果声明一个类为final,表示什么意思?

  答:final是最终的意思,final可用于定义变量、方法和类但含义不同,声明为final的类不能被继承。

  2、父类的构造方法是否可以被子类覆盖(重写)?

  答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不可能一样的。

  3、请讲述String 和StringBuffer的区别。

  答:String 类所定义的对象是用于存放“长度固定”的字符串。

  StringBuffer类所定义的对象是用于存放“长度可变动”的字符串。

  4、如果有两个类A、B(注意不是接口),你想同时使用这两个类的功能,那么你会如何编写这个C类呢?

  答:因为类A、B不是接口,所以是不可以直接继承的,但可以将A、B类定义成父子类,那么C类就能实现A、B类的功能了。假如A为B的父类,B为C的父类,此时C就能实现A、B的功能。

  5、结合Java视频Lesson5(多线程),分析sleep()和wait()方法的区别。

  答: Sleeping睡眠的意思 : sleep() 方法用来暂时中止执行的线程。在睡眠后,线程将进入就绪状态。

  waiting等待的意思: 如果调用了 wait() 方法,线程将处于等待状态。用于在两个或多个线程并发运行时。

  6、谈谈你对抽象类和接口的理解。

  答:定义抽象类的目的是提供可由其子类共享的一般形式、子类可以根据自身需要扩展抽象类、抽象类不能实例化、抽象方法没有函数体、抽象方法必须在子类中给出具体实现。他使用extends来继承。

  接口:一个接口允许一个类从几个接口继承而来,Java 程序一次只能继承一个类但可以实现几个接口,接口不能有任何具体的方法,接口也可用来定义可由类使用的一组常量。其实现方式是interface来实现。

【JAVA高级工程师笔试题及答案】相关文章:

2023计算机二级java考试上机模拟试题及答案02-03

photoshop试题「附答案」01-09

管理沟通试题及答案02-08

情商测试题及答案02-03

CAD基础试题附答案07-17

营养师试题及答案03-09

excel试题2023「附答案」09-12

iq测试题及答案08-07

CAD练习试题「附答案」07-17

cad考试简答试题及答案06-26