java经典问题(一)

来源:互联网 发布:数据库的二级映像 编辑:程序博客网 时间:2024/06/08 11:50

问题:

1、介绍你做过的项目中遇到的难点以及你是如何解决的。
2、java中有指针吗?
3、java的垃圾回收机制
4、用过什么框架
5、数据库防守、注入的常用手段
6、list、map
7、arraylist和linkedlist数据结构的区别
8、介绍一下堆排序
9、最近在读哪些书?
10、linux文件系统分为几种?
11、如何对linux文件进行更改权限的操作
12、java中异常的分类,outofmemory异常是在什么情况下产生的?
13、Java中的可以指定进行内存回收吗(垃圾回收机制方面的问题)
其实电话面试并不难,主要是问一些基础性的东西。电面官有点严肃,有点给人心理压力。
14、arraylist的长度是多少?
我的回答以及后期的修正(当时回答的特别差劲,现在的答案是后来思考和查找了一些资料):
1、根据个人的项目经验而异,这个大多数面试中都会被问到。
2、Java中不存在指针,C、C++中有,这是Java和C、C++的区别。C和C++的区别在于他们解决问题的思想不一样。C++是设计这个概念被融入到C++之中,而对于C,更注重的是算法。Java中对于指针进行伪装,概念上弱化和淡化,实际上是有的。
3、对于Java中的垃圾回收机制并没有过多的了解,只知道Java是会自动回收垃圾的,而且回收垃圾对于程序员而言是不可见的,无法预知垃圾回收是否完成。
4、过去所做的项目中几乎都没怎么用框架,之后要开始学习框架的使用。比较熟悉的可能就是MVC设计模式了。
model(模型层)、view(视图层)、controller(控制层)
5、要了解数据库防守,就得对注入有一定的了解。数据库注入的常用手段有,URL地址注入、表单注入和使用注入工具等等。
防守:黑白名单验证、表单验证以及权限控制。
6、list和map的区别。map是键值对的映射,都是属于Java的集合类。
7、arraylist的是使用数组存储 而linkedlist使用的是链表存储。他们存储方式的不同也就导致了他们在插入、查找的时候的效率也不同。
8、堆排序 这是常识了
9、鸟哥的Linux私房菜(答此题要慎重,后面一连串关于Linux的问题由此而来,可是我才看这本书不久)
10、不懂
11、chmod
12、一共分为两大类。所有的异常都继承自java.lang.Throwable类
Throwable有两个直接子类。error和exception
13、当时回答不可以,后来查资料知道是可以的。

0 0