经常会看到一些零碎的知识点,不足以成文章却害怕自己忘记,因此在这里记录一下.
PS:本文只为零碎的记录,不保证严谨,如果有人不小心看到,切记多看多想,不要当真
Java基础 1. 反射的用途以及实现 Java反射框架提供以下功能:
在运行时判断任意一个对象所属的类。 在运行时构造任意一个类的对象。 在运行时判断任意一个类所具有的成员变量和方法(通过反射设置可以调用private)。 在运行时调用任意一个对象的方法。
总的来说,反射功能可以在运行时动态的获取某个对象的类,实例化某个类的对象,或者调用某个对象的方法,主要应用在编写框架的时候.
2. HTTP请求的GET与POST方式的区别 我认为,GET和POST没有本质的区别,或者说在语法上没有本地的区别,有的仅是语义的区别.
绝大多数的功能,两个方法都可以实现,只是实现方式不同.
在语义的区别上,主要是RESTful风格的问题.
大家默认遵守一个定义,GET方法是幂等的,幂等有多种表现形式,比如,浏览器可以返回,卡了可以多刷几下.之类的.但是本质都是这个借口遵守了规范,对服务端的数据只进行了查询而没有进行修改.
而POST方法,在RESTful风格里用来对数据进行create操作,这无疑不是幂等的.
语义的对应关系:
GET—查找 POST—创建 PUT —更新 DELETE – 删除
3. session和cookie的区别 session数据存储在服务端,cookie数据存储在客户端。 session的大小限制与服务器的内存大小有关,cookie有大小限制和个数限制。 cookie有安全隐患,通过拦截或本地文件找到cookie后可以进行攻击。 dsession在服务器端保存一段时间才会销毁,如果session过多会增加服务器端压力。 4.JDK8的新特性 stream optional 接口的静态方法和默认方法 localdatetime currentHashMap£分段锁换成了cas,hashmap从链表换成红黑树. Java集合类 5.List 和 Set 区别 List内可以有重复元素,Set不可以 List有序,Set无序 6. Arraylist 与 LinkedList 区别 ArrayList使用数组实现,LinkedList使用链表实现 ArrayList查询快,LinkedList添加删除快. 都是线程不安全的 7. ArrayList 与 Vector 区别 Vector可以大概看成同步版的Arraylist,使用synchronized
来保证方法同步. 8.HashMap 和 Hashtable 的区别 HashTable对整个对象加锁来保证线程安全,不建议继续使用. HashMap + 锁 = HashTab 9.HashSet 和 HashMap 区别 HashMap放的是键值对,HashSet是单个的对象 计算hash的时候,HashMap用的是键,HashSet用的是值(他只有值.). 10.HashMap 和 ConcurrentHashMap 的区别 线程安全和不安全的区别 ConcurrentHashMap的实现原理可以看一下 底层的存储两者都一样 11.HashMap 的工作原理及代码实现,什么时候用到红黑树 工作原理在博客里面有 当单个节点的链表长度大于6时,会转成红黑树 12.多线程情况下HashMap死循环的问题 扩容时会有多线程问题 13.ConcurrentHashMap 的工作原理及代码实现,如何统计所有的元素个数 见博客 14. 看过那些Java集合类的源码 List接口的三个实现类,Arraylist,LinkedList,Vector HashMap,ConCurrentHashMap,LinkedHashMap Java线程 ChangeLog 2018-01-25
以上皆为个人所思所得,如有错误欢迎评论区指正。
欢迎转载,烦请署名并保留原文链接。