Java开发工程师面试题总结

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JAVA开发工程师面试题总结-JAVASE部分

1.谈谈final, finally, finalize 的区别?

•final是Java的一个关键字,用于泄义不能彼继承的类,不能被覆写的方法,常虽

•finally是Java的一个关键字,是异常处理操作的统一出口。

•finalize是Object类中所提供的一个方法,用于在对象回收之前进行收尾操作。

2.请解释Java实现可移植性的原理

•Java程序最终通过字节码文件运行,运行的时候字节码需要JVM的支持,但是在不同的操作系统上有不同JVM,程序不用关系操作系统,只关心JVM,只要JVM 不改变,程序

可以在操作系统间任意移植。

3.请解释path和classpath的区别?

•path是windows的环境属性,用于指泄可执行命令的路径

•classpath是指在java程序执行的时候,用于指左类的加载路径

4.请说明下JAVA中的几个特殊关键字(了解,一般面试面这个问题的都是一些煞笔公司)

•未使用到的关键字:goto、const

•有特殊含义的关键字:nulL true、false

•之后增加了一个assert关键字

•之后增加了一个enum关键字

5.请解释JAVA中的数据类型的划分,并说出其默认值

•基本数据类型:

■ 数值型:

♦榕型:byte、short、int^ long; 9 0

♦浮点型:float、double; T 0

■ 字符型:char T 空字符:Au0000,

■ 布尔型:boolean -> false

引用数据类型:数组、类、接口9 null

6.请解释&和&&、|和||的区别

•& (普通与)和I (普通或)指的是所有条件都进行判断:

•&& (短路与)如果前而的条件不满足,则后而不再进行判断,II (短路或)如果前而的条件满足则后而不再判断;

•在开发之中为了性能的提髙,主要使用短路与和短路或操作:

•&和I除了用于逻借运算之外,也可以进行位运算的操作;

7・请解释String类的两种比较方式

•在String类中可以使用“=”和equalsO两种操作来进行字符串的比较

•“ = ”比较的是两个字符串的内存地址数值,属于数值比较

•equalsO是String类中提供的一个方法,用于字符串内容的比较,最简单的做法就是比较字符串永远使用equalsO方法就行了

8.请解释String对象的两种实例化方式的区别

•首先String对象的实例化方式有两种:一种是直接赋值,另外一种是通过构造方法完成

•直接赋值:只开辟一个堆内存空间,而且采用了共享设计模式,可以自动入池,以备下次对象继续使用

•构造方法:会开辟两快内存空间,其中有一块空间将成为垃圾,而且不会自动入池, 可以使用intcrn()方法进行手工入池

•从开发角度来说,很明显使用直接赋值的方式会更好一些

9・请谈谈方法的重载和覆写的区别

•首先重载和覆写都是面向对象多态性的一个体现

•重载

■单词:OverLoading

■概念:方法名称相同,参数的类型或个数不同

■范围:发生在一个类之中

■权限:重载的时候没有权限的限制

•覆写

■单词:Override

■槪念:方法名称、返回值、参数的个数及类型全部相同

■范围:发生在继承关系中

■权限:子类覆写的方法不能拥有比父类更严格的访问控制权限

•重载的时候可以返回值类型不相同,但是没有任何意义

10.请谈谈this和super的区别

•this

■属性:this.属性表示的是找到本类的属性,如果本类没有找到则继续査找父类

■方法:this方法()表示找到本类的方法,如果本类没有找到则继续查找父类

■构造:必须放在构造方法的首行,不能与super关键字同时岀现

■特殊:表示当前对象

•super

■属性:super.属性直接在子类之中查找父类中的指立属性,不在查找子类本身

■方法:super•方法()直接在子类之中查找父类中的指泄方法,不在査找子类本身

■构造:必须放在构造方法首行,不能与this关键字同时岀现

•在开发之中使用this和super可以明确的划分出子类和父类之间的操作

11.请解释Collection 和Collections 的关系

•两者之间在泄义上没有直接的关系

•Collection是单值集合的操作最大父接口

•Collections只是一个集合的工具操作类

12.为什么构造方法的定义上不写返回值类型,如果不返回写一个void不也可以吗

•如果构造方法上写了void的话,则表示的就是一个普通方法了,普通方法是在对彖实例化之后调用的,而构造方法是在对象实例化的时候同时调用的

13.请解释Error和Exception的区别

•Error:表示的是JVH出错,即,程序还没有运行时所发生的错误,用户无法处理;•Exception:表示程序运行时发生的错误,用户可以处理:

14.请解释String与StringBuffer的区别,分别在什么时候用

•String的内容不能改变(改变的是地址的指向),而StringBuffer的内容是可以改变的•String类和StringBuffer类中泄义的方法可以很好的实现互补

•从开发角度来说,大部分情况使用的都是String类,很少使用StringBuffer,使用StringBuffer 只有一个前提,当字符串的内容需要不断的修改对象的时候

15.请解释throw和throws的区别

•throw表示人为的进行异常抛出,手工抛出异常

•throws表示:用于方法声明上,表示一个方法不处理异常,而是交给被调用处处理

16.使用char型数据能否表示一个汉字

•首先一个汉字占2个字节,而UNICODE编码也是16位的,java又是采用UNICODE 编码,但是保存汉字,语言必须是中文才可以保存

17.是否可以继承String类

•不可以,因为String类是final类,不可以被继承

18.抽象类可以有构造方法吗

•可以有构造方法,而且抽象类中的子类实例化对象的时候也依然符合子类对象实例化的过

相关文档
最新文档