前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java面试常见问答

Java面试常见问答

作者头像
呼延十
发布2019-07-01 16:16:13
4660
发布2019-07-01 16:16:13
举报
文章被收录于专栏:呼延

经常会看到一些零碎的知识点,不足以成文章却害怕自己忘记,因此在这里记录一下.

PS:本文只为零碎的记录,不保证严谨,如果有人不小心看到,切记多看多想,不要当真

Java基础

1. 反射的用途以及实现

Java反射框架提供以下功能:

在运行时判断任意一个对象所属的类。 在运行时构造任意一个类的对象。 在运行时判断任意一个类所具有的成员变量和方法(通过反射设置可以调用private)。 在运行时调用任意一个对象的方法。

总的来说,反射功能可以在运行时动态的获取某个对象的类,实例化某个类的对象,或者调用某个对象的方法,主要应用在编写框架的时候.

2. HTTP请求的GET与POST方式的区别

我认为,GET和POST没有本质的区别,或者说在语法上没有本地的区别,有的仅是语义的区别.

绝大多数的功能,两个方法都可以实现,只是实现方式不同.

在语义的区别上,主要是RESTful风格的问题.

大家默认遵守一个定义,GET方法是幂等的,幂等有多种表现形式,比如,浏览器可以返回,卡了可以多刷几下.之类的.但是本质都是这个借口遵守了规范,对服务端的数据只进行了查询而没有进行修改.

而POST方法,在RESTful风格里用来对数据进行create操作,这无疑不是幂等的.

语义的对应关系:

GET—查找 POST—创建 PUT —更新 DELETE – 删除

3. session和cookie的区别

  1. session数据存储在服务端,cookie数据存储在客户端。
  2. session的大小限制与服务器的内存大小有关,cookie有大小限制和个数限制。
  3. cookie有安全隐患,通过拦截或本地文件找到cookie后可以进行攻击。
  4. dsession在服务器端保存一段时间才会销毁,如果session过多会增加服务器端压力。

4.JDK8的新特性

  1. stream
  2. optional
  3. 接口的静态方法和默认方法
  4. localdatetime
  5. currentHashMap£分段锁换成了cas,hashmap从链表换成红黑树.

Java集合类

5.List 和 Set 区别

  1. List内可以有重复元素,Set不可以
  2. List有序,Set无序

6. Arraylist 与 LinkedList 区别

  1. ArrayList使用数组实现,LinkedList使用链表实现
  2. ArrayList查询快,LinkedList添加删除快.
  3. 都是线程不安全的

7. ArrayList 与 Vector 区别

  1. Vector可以大概看成同步版的Arraylist,使用synchronized来保证方法同步.

8.HashMap 和 Hashtable 的区别

  1. HashTable对整个对象加锁来保证线程安全,不建议继续使用.
  2. HashMap + 锁 = HashTab

9.HashSet 和 HashMap 区别

  1. HashMap放的是键值对,HashSet是单个的对象
  2. 计算hash的时候,HashMap用的是键,HashSet用的是值(他只有值.).

10.HashMap 和 ConcurrentHashMap 的区别

  1. 线程安全和不安全的区别
  2. ConcurrentHashMap的实现原理可以看一下
  3. 底层的存储两者都一样

11.HashMap 的工作原理及代码实现,什么时候用到红黑树

  1. 工作原理在博客里面有
  2. 当单个节点的链表长度大于6时,会转成红黑树

12.多线程情况下HashMap死循环的问题

  1. 扩容时会有多线程问题

13.ConcurrentHashMap 的工作原理及代码实现,如何统计所有的元素个数

  1. 见博客

14. 看过那些Java集合类的源码

  1. List接口的三个实现类,Arraylist,LinkedList,Vector
  2. HashMap,ConCurrentHashMap,LinkedHashMap

Java线程

ChangeLog

2018-01-25

以上皆为个人所思所得,如有错误欢迎评论区指正。

欢迎转载,烦请署名并保留原文链接。


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java基础
    • 1. 反射的用途以及实现
      • 2. HTTP请求的GET与POST方式的区别
        • 3. session和cookie的区别
          • 4.JDK8的新特性
          • Java集合类
            • 5.List 和 Set 区别
              • 6. Arraylist 与 LinkedList 区别
                • 7. ArrayList 与 Vector 区别
                  • 8.HashMap 和 Hashtable 的区别
                    • 9.HashSet 和 HashMap 区别
                      • 10.HashMap 和 ConcurrentHashMap 的区别
                        • 11.HashMap 的工作原理及代码实现,什么时候用到红黑树
                          • 12.多线程情况下HashMap死循环的问题
                            • 13.ConcurrentHashMap 的工作原理及代码实现,如何统计所有的元素个数
                              • 14. 看过那些Java集合类的源码
                                • ChangeLog
                            • Java线程
                            相关产品与服务
                            数据保险箱
                            数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档