java开发技术面试心得

Java的数据结构有哪些?Map与Set的本质区别是什么?

分析:Java常见的数据结构有Collection和Map,其中Collection接口下包括List和Set接口,其下又有多个实现类如List下有ArrayList、LinkedList和Vector等实现类,Set下有HashSet、LinkedSet等实现类和SortedSet接口,HashSet下有LinkedHashSet子类,SortedSet接口下有TreeSet实现类。Map接口下有HashMap(有

LinkedHashMap子类)、HashTable(有Properties子类)实现类和SortedMap接口(有TreeMap实现类)。 JAVA的数据结构主要有List、Set、Map、ArrayList、HashSet、HashMap、Properties等。

Map与Set的本质区别有:Set不能包含重复的元素,最多有一个空值,继承自Collection接口,底层是Map实现机制。Map不能包含重复的键,每个键最多对应一个映射的值,不能有空值键。两接口提供的方法不完全一样。 Java中的Annotation的工作原理是什么?

Annotation提供一种机制,将程序的元素如:类,方法,属性,参数,本地变量,包和元数据联系起来。这样编译器可以将元数据存储在Class文件中。这样虚拟机和其它对象可以根据这些元数据来决定如何使用这些程序元素或改变它们的行为。

Http协议工作过程、?文件上传时,进度条的设计原理是什么?

Http协议即超文本传输协议,属于应用层的面向对象的协议。它支持客户/服务器模式,简单快速、灵活、无连接和无状态。http请求由请求行、消息报头、请求正文组成,http响应由状态行、消息报头和响应正文组成。 文件上传时进度条的设计原理:在java中主要用到I/O原理,已上传的数据值除以文件总大小的比值即实时进度的值。通过File类获取文件的总大小,在读取或写出文件时加一个进度计算的步骤,每读取或写出一次就计算进度值,更新进度条。

Spring整合ORM框架时,事务管理用哪个类?是Spring控制事务的提交还是ORM框架控制?同一事务中执行两个更新操作,它的工作原理是怎样的?

Spring整合ORM框架时事务管理用的是相应ORM框架的事务管理器类如Hibernate对应于

HibernateTransactionManager,JPA对应于JpaTransactionManager等。整合过后可配置由Spring控制事务的提交。事务提交前执行两个更新操作。其工作原理是采用AOP编程的原理来进行控制。

分层架构中,Dao层的作用是什么?如果不要DAO层,能不能实现有Dao层时的优点?

Dao层又叫数据访问对象层, 封装数据库的底层操作细节如数据库的连接及对数据的CRUD等操作,它不但屏蔽了数据存储最终介质的不同,也屏蔽了具体实现技术的不同。一般在其上还会有Service层来封装业务操作进行进一步的解耦。不用DAO层也能实现Dao层时的优点如自己封装一个类似Dao层功能的数据库操作模板类,可参考Spring的DAO层思想。

HibernateDaoSupport,ActionSupport等类中所指的Support,是不是一种设计模式?若是,那说说你对这种设计模式的理解?

它们用到了IoC和工厂模式,即依赖注入,将程序代码中依赖对象的管理交由相应的容器去管理如在配置文件中进行注入配置。

怎样实现分页显示的?具体原理怎么样?Hibernate的setMaxResults和setFirstResult内部是怎么实现分页查询的?

实现一个分页组件,可自实现或借用相应框架的实现。原理是求出所查数据总记录数,设置每页要显示的记录数,然后计算每页要显示的第一条记录数,根据每页要显示的记录数和总记录数来求出页数等。

Hibernate的setMaxResults和setFirstResult内部是通过SQL语句来实现分页查询的,

Hibernate框架的设计有什么不足的地方?

XML配置麻烦、映射文件可能过于冗余、查询慢、对海量数据无能为力、太对象化限制了查询、级联关系也影响查询速度等。 当然,最新版本的Hibernate采用EJB3注解的方式,大大的提高了它的应用效率。

学习JSF,Richface,JBoss Seam,JBPM该按什么顺序,步骤去学习?

先需要学习JAVA EE 相关技术,如JSF2,EJB3,学完这些技术后,就可以学习Seam技术和Richface.

 

第二篇:java核心技术测试

1、谈谈final, finally, finalize的区别。

2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

3、Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。

4、&和&&的区别。

5、什么是assert。

6、GC是什么? 为什么要有GC? (基础)。

7、HashMap和Hashtable的区别。

8、Collection 和 Collections的区别。

9、String s = new String("xyz");创建了几个String Object?

10、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

11、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

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

13、数组有没有length()这个方法? String有没有length()这个方法?

14、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

15、 Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

16、列举出至少5个最常见到的runtime exception

17、error和exception有什么区别?

18、List, Set, Map是否继承自Collection接口?

19、abstract class和interface有什么区别?

20、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

21、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类

(concrete class)?

22、启动一个线程是用run()还是start()?

23、构造器Constructor是否可被override?

24、是否可以继承String类?

25、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

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

27、用最有效率的方法算出2乘以8等於几?

28、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

29、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

30、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

31、写一个Singleton出来。

32、作用域public,private,protected,以及不写时的区别

33、ArrayList和Vector的区别,HashMap和Hashtable的区别

34、char型变量中能不能存贮一个中文汉字?为什么?

35、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?

36、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?

37、String与StringBuffer的区别。

38、说出一些常用的类,包,接口,请各举5个

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

40、你所知道的集合类都有哪些?主要方法?

41、面向对象的三个基本特征

42、方法重载和方法重写的概念和区别

43、接口和内部类、抽象类的特性

44、文件读写的基本类有哪些

45、串行化的注意事项以及如何实现串行化

46、线程的基本概念、线程的基本状态以及状态之间的关系

47、线程的同步、如何实现线程的同步

48、几种常用的数据结构及内部实现原理。

49、Socket通信(TCP、UDP区别及Java实现方式)

50、Java的事件委托机制和垃圾回收机制

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

52、试举例说明一个典型的垃圾回收算法?

53、请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来.

54、请写一个java程序实现线程连接池功能?

55、给定一个C语言函数,要求实现在java类中进行调用。

56、编一段代码,实现在控制台输入一组数字后,排序后在控制台输出;

57、列出某文件夹下的所有文件

58、实现删除文件的操作

59、实现从文件中一次读出一个字符的操作

60、列出一些控制流程的方法

61、多线程有哪些状态?

62、编写了一个服务器端的程序实现在客户端输入字符然后在控制台上显示,直到输入"END"为止,让你写出客户端的程序。

63、char型变量中能不能存贮一个中文汉字?为什么?

64、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?

65、float型float f=3.4是否正确?

66、介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)?

67、编程:金额转换,阿拉伯数字的金额转换成中国传统的形式如:1001.80 输出:一千零一元零捌角。

68、字节流与字符流的区别

69、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。

70、super()与this()的区别?

71、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?

72、在JAVA中,如何跳出当前的多重嵌套循环?

73、什么是类的返射机制?请列举出类的返射机制中的包及核心类。

74、得到Class的三个过程是什么?

75、如何去小数点前两位,并四舍五入。

76、如何取得年月日,小时分秒?

77、如何取得从19xx年到现在的毫秒数

78、如何获取某个日期是当月的最后一天?

79、如何格式化日期?

80、编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。

81、java中会存在内存泄漏吗,请简单描述。

82、静态变量和实例变量的区别?

83、是否可以从一个static方法内部发出对非static方法的调用?

84、写clone()方法时,通常都有一行代码,是什么?

85、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?

86、冒泡排序法。

87、运行时异常与一般异常有何异同?

88、heap和stack有什么区别?

89、同步和异步有何异同,在什么情况下分别使用他们?举例说明。

90、给定一个字符串,字符串中间用/分隔,有哪些方式可以截取。

91、tcp与udp的区别

92、链表与散列表和数组的区别

93、谈谈文件加密技术

94、请列举出常见的加密算法,并分别说明他们的优缺点。

- 5 -

95、编写java 的GUI程序,通常会导入哪些图形包。

96、如何提升读取数据流的效率。

97、你对现在软件业以及国内软件业的看法

98、有一个文件中存放了一亿条用户信息,包括:用户姓名、手机号。在不使用数据库的情况下,如何快速定位指定的用户的手机号码。

99、软件开发生命周期有哪几个阶段?

100、分别谈谈你对C、C++、Java、C#、python、ruby、JavaScript、PHP常用编程语言的认识。

相关推荐