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...

面试题 相关文章推荐
Collection和Collections的区别
May 02 面试题
Java提供了哪些企业应用编程接口
Feb 13 面试题
异常和异常类的概念
Sep 12 面试题
计算s=f(f(-1.4))的值
May 06 面试题
分布式数据库需要考虑哪些问题
Dec 08 面试题
哪些情况下不应该使用索引
Jul 20 面试题
DataReader和DataSet的异同
Dec 31 面试题
结构和类有什么异同
Jul 16 面试题
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
Jul 23 面试题
linux面试题参考答案(6)
Jun 23 面试题
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
Mar 23 面试题
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
Nov 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
日本十大最佳动漫,全都是二次元的神级作品
2019/10/05 日漫
上海永华YH-R296(华普R-96)12波段立体声收音机的分析和打理
2021/03/02 无线电
傻瓜化配置PHP环境――Appserv
2006/12/13 PHP
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
PHP生成word文档的三种实现方式
2016/11/14 PHP
asp批量修改记录的代码
2008/06/25 Javascript
JavaScript Memoization 让函数也有记忆功能
2011/10/27 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
2015/02/27 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
2015/06/18 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
2017/05/25 jQuery
VUE使用vuex解决模块间传值问题的方法
2017/06/01 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
Scala解析Json字符串的实例详解
2017/10/11 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python enumerate遍历数组示例应用
2008/09/06 Python
Python递归遍历列表及输出的实现方法
2015/05/19 Python
python批量获取html内body内容的实例
2019/01/02 Python
Python Django框架单元测试之文件上传测试示例
2019/05/17 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
英国领先的在线高尔夫商店:Scottsdale Golf
2019/08/26 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
银行内勤岗位职责
2014/04/09 职场文书
python元组打包和解包过程详解
2021/08/02 Python