2019年Java 最常见的 面试题


Posted in 面试题 onOctober 19, 2016

1、java中Static关键字有哪些特点???

答:

1)、static成员变量

静态变量:属于类,内存中只有一个复制,所有实例都指向同一个内存地址,只要类被加载,静态变量就会本分配空间,调用方式有两种。类.静态变量 和 对象.静态变量

实例变量:属于对象,只有对象被创建,实例对象才会被分配空间,调用方式:对象.实例变量

2)、static成员方法

静态方法:属于类,不需要创建对象,就可以被调用。调用方式:类.静态方法 和 对象.静态方法

非静态方法:属于对象,只能在对象被创建出来之后才可以被使用。

注意:static方法中,不能使用this和super关键字,不能调用非static方法,只能访问所属类的静态成员变量和静态成员方法。

2、java中length属性与length()方法有什么区别???

答:length属性属于数组,用来获取数组的长度;而length()方法属于String 用来计算字符串长度。

3、java中Collections框架是什么???

答:Collection是整个集合框架的基础,它里面存储了一组对象,用于表示不同类型的Collections.主要有一下三种,其特点如下。

1)、set 主要特点集合中元素不能重复。

2)、list有序的Collection,按照对象的进入顺序保存对象,可以重复。

3)、map提供了从键映射到值得数据结构,值可以重复单键必须唯一。

4、java中ArrayList 、Vector 、LinkedList有什么区别???

答:ArrayList 、Vector 、LinkedList类均在java.util包,均为可伸缩数组,即可以动态改变长度的数组。

ArrayList 、Vector 都是基于数组来实现的,数据存储是连续的,支持下标访问元素,查询快,插入慢。

区别在于:ArrayList提供的方法都不是同步的,且线程不安全,但效率高。Vector大部分方法都是同步的,且线程安全,效率低。

LinkedList 采用双向链表来实现,因此访问效率低,插入效率高,且该容器是非线性安全的。

5、java中HashTable与HashMap有什么区别???

答:

1、父类不同:

HashMap是继承自AbstractMap类,而HashTable是继承自Dictionary。但都是实现了Map方法。

2、null值不同:

HashMap可以允许存在一个为null的key和任意个null的value,但是HashTable中的key和value都不允许为null。

3、线程安全性:

hashtable是线程安全的,hashmap不之初线程同步,不是线程安全的

11、同步与异步的区别???

答:所谓的同步,就是发出一个功能调用时,在没有得到结果之前,该调用就不会放回,或继续执行后续操作。简单来说,同步就是必须一件一件的来做,等前一件事做完了,才能做下一件事。



6. throw 和 throws 的区别?

throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型。

75. final、finally、finalize 有什么区别?

  • final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。

  • finally一般作用在try-catch代码块中,在处理异常的时候,通常我们将一定要执行的代码方法finally代码块中,表示不管是否出现异常,该代码块都会执行,一般用来存放一些关闭资源的代码。

  • finalize是一个方法,属于Object类的一个方法,而Object类是所有类的父类,该方法一般由垃圾回收器来调用,当我们调用System的gc()方法的时候,由垃圾回收器调用finalize(),回收垃圾。


7. try-catch-finally 中哪个部分可以省略?

答:catch 可以省略

原因:

更为严格的说法其实是:try只适合处理运行时异常,try+catch适合处理运行时异常+普通异常。也就是说,如果你只用try去处理普通异常却不加以catch处理,编译是通不过的,因为编译器硬性规定,普通异常如果选择捕获,则必须用catch显示声明以便进一步处理。而运行时异常在编译时没有如此规定,所以catch可以省略,你加上catch编译器也觉得无可厚非。

理论上,编译器看任何代码都不顺眼,都觉得可能有潜在的问题,所以你即使对所有代码加上try,代码在运行期时也只不过是在正常运行的基础上加一层皮。但是你一旦对一段代码加上try,就等于显示地承诺编译器,对这段代码可能抛出的异常进行捕获而非向上抛出处理。如果是普通异常,编译器要求必须用catch捕获以便进一步处理;如果运行时异常,捕获然后丢弃并且+finally扫尾处理,或者加上catch捕获以便进一步处理。

至于加上finally,则是在不管有没捕获异常,都要进行的“扫尾”处理。

8. try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

答:会执行,在 return 前执行。



Tags in this post...

面试题 相关文章推荐
PHP如何调用MYSQL存储过程
May 30 面试题
PHP经典面试题
Sep 03 面试题
什么是java序列化,如何实现java序列化
Nov 14 面试题
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
May 09 面试题
Can a struct inherit from another struct? (结构体能继承结构体吗)
Sep 25 面试题
什么是虚拟内存?虚拟内存有什么优势?
Feb 09 面试题
linux面试题参考答案(10)
Oct 26 面试题
Shell编程面试题
May 29 面试题
测试驱动开发的主要步骤是什么
Dec 10 面试题
软件测试有哪些?什么是配置项?
Feb 12 面试题
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
Jun 22 面试题
Java servlet面试题
Mar 04 面试题
2019年Java面试必问之经典试题
Sep 12 #面试题
金讯Java笔试题目
Jun 18 #面试题
某公司Java工程师面试题笔试题
Mar 27 #面试题
JAVA代码查错题
Oct 10 #面试题
怎么处理XML的中文问题
Mar 26 #面试题
一套Java笔试题
Aug 20 #面试题
某个公司的Java笔面试题
Mar 11 #面试题
You might like
mysql 中InnoDB和MyISAM的区别分析小结
2008/04/15 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
javascript innerHTML使用分析
2010/12/03 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
jquery搜索框效果实现方法
2015/01/16 Javascript
jquery中change()用法实例分析
2015/02/06 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
2015/08/31 Javascript
javascript适合移动端的日期时间拾取器
2015/11/10 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
js匿名函数使用&传参(实例)
2017/09/08 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
微信小程序实现运动步数排行功能(可删除)
2018/07/05 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
JS实现骰子3D旋转效果
2019/10/24 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
Nuxt配置Element-UI按需引入的操作方法
2020/07/06 Javascript
Python的Flask框架中集成CKeditor富文本编辑器的教程
2016/06/13 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
python利用tkinter实现屏保
2019/07/30 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
jupyter notebook oepncv 显示一张图像的实现
2020/04/24 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
采购类个人求职的自我评价
2014/02/18 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
预备党员转正考核材料
2014/06/03 职场文书
2014年计生标语
2014/06/23 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers