您的位置:首页 > 职场人生

java遇到的面试题目

2018-04-01 03:03 344 查看
1、session与cookie的区别和联系

当客户端第一次请求时,服务器自动会创建一个session和sessionid与request绑定,用响应对象response来返回sessionid 放到客户端的cookies中存储下来。下次(第二次)发送请求时,请求中携带cookie请求头,通过cookie携带sessionid来检索服务器的会话(每次请求都会将所有的cookies带到服务器端)
区别:
1)、cookie 存放在客户端,而session存放在服务端
2)、Cookie不安全,他人可以分析本地的cookie进行cookie欺骗,session安全
3)、本地浏览器关闭本地session就会消失,但Session会在一定时间内存放在服务器上,会有一个超时时间,一定时间内不访问则会消失.而cookie用户不清除的话会一直存在.
4)、session是通过cookie工作的,服务器辨认是否是同一个用户是根据cookie中的sessionid辨识的
2、ArrayList LinkedList Vector(为何线程安全)
ArrayList(实现动态数组),查询快(随意访问或顺序访问),增删慢。整体清空快,线程不同步(非线程安全)。数组长度是可变的百分之五十延长 LinkedList(实现链表),查询慢,增删快。 Vector(实现动态数组),都慢,被ArrayList替代。长度任意延长。线程安全的原因(同步的类,函数都是synchronized)
3、final finally finalize区别(或者final什么作用)

Final:修饰变量 只能被初始化一次,初始化之后引用对象不能修改,但是可以修改对象的属性值
修饰方法 表示不可以被子类重写,(编译加快,因为是静态绑定的)
修饰类 不能被继承
好处:提升了性能,JVM都会缓存final变量,会对final变量方法类优化,可以在多线程下进行共享
Finally处理异常的时候使用,表示无论是否发生异常或者方法中断放回都要执行,可用来处理数据库连接关闭等操作
Finallize Object的方法,垃圾收集器执行的时候,调用被回收对象的此方法,该方法可以覆盖,提供此类的其他资源回收,比如关闭文件等等,一般处理善后工作
4、Hashtable和HashMap比较

1) 、HashMap支持null键和null值 而HashTable不支持仅仅只是做了throw处理 但并没有多大区别
2) 数据结构基本一致  数组和链表的结合体
3) 实现算法略有差别 初始容量大小不同
a. Hashtable初始11 每次扩充 2n+1  为素数、奇数---->故而结果会更均匀
b. HashMap初始16  每次扩充时翻倍大小(2的幂次方) -->为偶数 故而查找会更效率
4) 、线程安全
HashTable内部有同步机制 是线程安全的
而HashMap不是线程安全的
5) Hashtable已经淘汰了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java面试