第一部分 Java SE基础(2)html
1.8 Session 和 COOKIEjava
1.session 和 cookie 区别数组
cookie 是Web服务器发送给浏览器的一块信息。浏览器会在本地文件中给每个 Web服务器存储 cookie。之后浏览器在给特定的 Web 服务器发请求的时候,同时会发送全部为
该服务器存储的 cookie。下面列出了 session 和 cookie 的区别补充:浏览器
1.不管客户端浏览器作怎么样的设置,session 都应该能正常工做。客户端能够选择禁用cookie,可是,session 仍然是可以工做的,由于客户端没法禁用服务端的 session。安全
2.在存储的数据量方面 session 和 cookies 也是不同的。session 可以存储任意的 Java 对象,cookie 只能存储 String 类型的对象。
1.9 equls 和 == 的区别服务器
注意:equals 方法不能用于基本数据类型的变量,若是没有对 equals 方法进行重写,则比较的是引用类型的变量所指向的对象的地址。cookie
1.10 ArrayList和LinkedList的区别?session
ArrayList底层使用的是数组,LinkedList使用的是链表编码
数组具备索引,查询特定的元素比较快,而插入和删除,修改比较慢 (数组在内存中是一块连续的内存,若是插入或删除时须要移动内存)spa
链表不要求内存时连续的,在当前元素中存放下一个或上一个元素的地址,查询时须要从头开始,一个一个地找,查询效率低,而插入时不须要移动内存,只须要改变引用指向便可。因此插入或删除效率高
ArrayList适用于查询比较多,可是插入和删除比较少的状况。
而LinkedList使用在查询比较少,可是插入和删除比较多的状况。
1.11 HashMap和HashTable的区别?
1.HashMap和HashTable均可以使用来存储key-value的数据。
2.HashMap是能够吧null做为key或者value的,而hashTable是不能够的。
3.HashMap是线程不安全的,效率较高。HashTable是线程安全的,效率较低。
问题:我想线程安全又想效率高?使用CurrentHashMap
经过把整个Map分为N个Segment(相似于HashTable),能够提供相同的线程安全,但效率提高N倍,默认是提高16倍。
1.12 & 和 && 的区别
&运算符有两种用法:(1)按位与;(2)逻辑与。
&&运算符是短路与运算。逻辑与跟短路与的差异是很是巨大的,虽然两者都要求运算符左右两端的布尔值都是true 整个表达式的值才是 true。
&&之因此称为短路运算是由于,若是&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行运算。
不少时候咱们可能都须要用&&而不是&,例如在验证用户登陆时断定用户名不是 null 并且不是空字符串,应当写为 username != null &&!username.equals(""),两者的顺序不能交换,更不能用&运算符,
由于第一个条件若是不成立,根本不能进行字符串的 equals 比较,不然会产生 NullPointerException 异常。
注意:逻辑或运算符(|)和短路或运算符(||)的差异也是如此。
1.13 是否能够继承 String
String 类是 final 类,不能够被继承。
继承 String 自己就是一个错误的行为,对 String 类型最好的重用方式是关联关系(Has-A)和依赖关系(Use-A)而不是继承关系(Is-A)。
1.14 值传递与引用传递
值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.
引用传递通常是对于对象型变量而言的,传递的是该对象地址的一个副本, 并非原对象自己 。通常认为,java 内的传递都是值传递. java 中实例对象的传递是引用传递。
1.15 字节流 字符流
InputStreamReader 类是从字节流到字符流的桥梁:它读入字节,并根据指定的编码方式,将之转换为字符流。
参考文章:与http://www.javashuo.com/article/p-gevfeaxe-mb.html参考相同