Java研发岗位面试归类(附答案)

题目来自http://www.codeceo.com/article/201-java-interview-qa.html,答案自己网上找的,如有疏漏,欢迎斧正。一起学习,共同进步。

一.Java基础

1. String类为什么是final的。

2. HashMap的源码,实现原理,底层结构。

3. 说说你知道的几个Java集合类:list、set、queue、map实现类咯。

4. 描述一下ArrayList和LinkedList各自实现和区别。

5. Java中的队列都有哪些,有什么区别。

6. 反射中,Class.forName和classloader的区别。

7. Java7、Java8的新特性(baidu问的,好BT)。

8. Java数组和链表两种结构的操作效率,在哪些情况下(从开头开始,从结尾开始,从中间开始),哪些操作(插入,查找,删除)的效率高。

9. Java内存泄露的问题调查定位:jmap,jstack的使用等等。

10. string、stringbuilder、stringbuffer区别。

11. hashtable和hashmap的区别。

13.异常的结构,运行时异常和非运行时异常,各举个例子。

14.String a= “abc” String b = “abc” String c = new String(“abc”) String d = “ab” + “c” .他们之间用 == 比较的结果。

15. String 类的常用方法。

16. Java 的引用类型有哪几种。

17. 抽象类和接口的区别?

接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。另外,接口和抽象类在方法上有区别:
    (1) 抽象类可以有构造方法,接口中不能有构造方法。
    (2) 抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。Java 8里的接口可以有default方法。
    (3) 抽象类中可以有普通成员变量,接口中没有普通成员变量。
    (4) 抽象类中的抽象方法的访问类型可以是public,protected和默认类型。
    (5) 抽象类中可以包含静态方法,接口中不能包含静态方法。
    (6) 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
    (7) 一个类可以实现多个接口,但只能继承一个抽象类

二者在应用方面也有一定的区别:接口更多的是在系统架构设计方法发挥作用,主要用于定义模块之间的通信契约。而抽象类在代码实现方面发挥作用,可以实现代码的重用,例如,模板方法设计模式是抽象类的一个典型应用,假设某个项目的所有Servlet类都要用相同的方式进行权限判断、记录访问日志和处理异常,那么就可以定义一个抽象的基类,让所有的Servlet都继承这个抽象基类,在抽象基类的service方法中完成权限判断、记录访问日志和处理异常的代码,在各个子类中只是完成各自的业务逻辑代码。

18. java的基础类型和字节大小。

Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。8 中类型表示范围如下:

byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。

short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。

int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。

 long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。

 float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。

double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。

 boolean:只有true和false两个取值。

char:16位,存储Unicode码,用单引号赋值。

Java决定了每种简单类型的大小。这些大小并不随着机器结构的变化而变化。这种大小的不可更改正是Java程序具有很强移植能力的原因之一。下表列出了Java中定义的简单类型、占用二进制位数及对应的封装器类。

19. Hashtable,HashMap,ConcurrentHashMap底层实现原理与线程安全问题?

可参考的文章:Hashmap实现原理浅析:http://www.cnblogs.com/lzrabbit/p/3721067.html

ConcurrentHashMap原理分析:http://www.cnblogs.com/ITtangtang/p/3948786.html

20.如果不让你用Java Jdk提供的工具,你自己实现一个Map,你怎么做。说了好久,说了HashMap源代码,如果我做,就会借鉴HashMap的原理,说了一通HashMap实现。

21.Hash冲突怎么办?哪些解决散列冲突的方法?

22.HashMap冲突很厉害,最差性能,你会怎么解决? 从O(n)提升到log(n),用二叉排序树的思路说了一通。
   23.rehash。
   24.hashCode() 与 equals() 生成算法、方法怎么重写。

二.Java IO

1.讲讲IO里面的常见类,字节流、字符流、接口、实现类、方法阻塞。
  2.讲讲NIO。
  3.String 编码UTF-8 和GBK的区别?
  4.什么时候使用字节流、什么时候使用字符流?
  5.递归读取文件夹下的文件,代码怎么实现。

三.Java Web

1.session和cookie的区别和联系,session的生命周期,多个服务部署时session管理。
  2.servlet的一些相关问题。
  3.webservice相关问题。
  4.jdbc连接,forName方式的步骤,怎么声明使用一个事务。举例并具体代码。

参考文章:http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html

5.无框架下配置web.xml的主要配置内容。
  6.jsp和servlet的区别。

时间: 2024-12-22 02:27:40

Java研发岗位面试归类(附答案)的相关文章

Java研发岗位面试归类B(附答案)

本文承接上文:Java研发岗位面试归类A(附答案): http://www.cnblogs.com/wp5719/p/5870243.html 答案自己网上找的,如有纰漏或错误,烦请指教. 七.数据库MySql 1.MySql的存储引擎的不同. MyISAM:拥有较高的插入,查询速度,但不支持事务. InnoDB:5.5版本后Mysql的默认数据库,事务型数据库的首选引擎,支持ACID事务,支持行级锁定. BDB:源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLB

Java集合相关面试问题和答案

Java集合相关面试问题和答案 面试试题 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用,Java1.2提出了囊括所有集合接口.实现和算法的集合框架.在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久.它还包括在Java并发包中,阻塞接口以及它们的实现.集合框架的部分优点如下: (1)使用核心集合类降低开发成本,而非实现我们自己的集合类.

华为java研发实习面试经验

技术面: 自我介绍 项目介绍 xml的使用 多线程的使用,使用场景 sleep和wait的区别 servlet和cgi的区别 索引的实现 内存结构 跟别人比,你的优势 综合面:略...

千回百折:百度Java研发offer斩获记和经验分享

起因 面试过程 等待offer的过程中悟道 Java面试常考知识点个人总结 过程 百度——作为国内互联网的巨头之一,最近的一些风波对其褒贬不一,但是类似事件不是第一次发生,也绝对不是最后一次,对于真的找工作的人没有丝毫影响,反而更激发了加入百度的决心,毫不夸张的说,bant(n=网易)……可谓是诸多相关专业应届学生的向往之地,本人一直有bat情节,其中偏偏独爱作为世界互联网公司排名第四,国内头三把交椅的大百度…… 而自从去年百度全面冻结hc,停止社招之后,今年陆续又缩小了实习生的招聘规模,每个部

2018支付宝春招(java研发)实习面试

首先感叹一下大厂的效率,果然是杠杠的,头天投了内推简历,第二天直接电话面试.投的岗位是阿里的java研发工程师,之后是支付宝给的电话一面,面试的一位声音磁性的男技术面试官. 面试问的挺基础的,奈何自己基本都忘记了,有志向进大厂的一定要好好准备. 面试的基本流程:首先是 让做下自我介绍(介绍自己的项目经历和实习经历),我大致说了下自己之前做的一个小web项目 没有实习经历,面试官问了下项目中的一些小细节,自己负责的那部分内容的一些知识.问了项目用了什么框架.项目中存在的一些问题,我做的是连锁药店的

Java高级开发:美团实拍面试题(内附答案)

春节长假转眼已过,即将迎来的是一年一度的金三银四跳槽季. 假如你准备在金三银四跳槽的话,那么作为一个Java工程师,应该如何利用这不到1个月的时间,快速的为即将到来的面试进行充分的准备呢? 面试官考察候选人的时候主要是从技术广度.技术深度.基础功底.系统设计.项目经验几个角度来进行的. 今天小编也准备美团内推(一面+二面+三面)面试题目,小伙伴可以试试.需要答案详解的可以加小编QQ群937053620,获取! 美团一面(电话) 自我介绍 项目介绍 Redis介绍 了解redis源码么 了解red

趣味Java算法题(附答案)

[程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数:    1"); System.out.println("第2个月的兔子对数:    1"

2015年阿里实习生面试Java研发工程师 小记

5月5日,广州,阿里实习生面试,Java研发工程师,完全被虐orz 几乎没有Java项目开发经验,接近零基础,去水了一发,毫无悬念的被刷了..RP也是杠杠的,准备过的题目一个都没被问到,算法题也是一条也没出orz,面试官貌似不知ACM是何物,GG了..不过这次面试收获还是挺大的.. 面试前: 出地铁的时候感觉每个年轻人都是去阿里面试的,快到酒店的时候此感更强烈,果然上电梯的时候就认识了两个从湖南过来面阿里的大三师兄,一个产品一个安卓开发,都好厉害,安卓开发的还已经拿了两个offer,其中一个是小

(转)40个Java集合面试问题和答案

Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点.这里,我列出了一些关于Java集合的重要问题和答案. 另外,码农网之前也整理过一篇关于Java集合面试题的文章:大公司最喜欢问的Java集合类面试题 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使 用,Java1.2提出了囊括所有集合接口.实现和算法的集合框架.在保证线程安全的情