线程和进程的区别
进程是运行中的程序, 线程是进程的内部的一个执行序列
进程是资源分配的单元, 线程是执行行单元
进程间切换代价大, 线程间切换代价小
进程拥有资源多, 线程拥有资源少
多个线程共享进程的资源
HashMap 和 HashTable 的区别
继承的父类不同
Hashtable 继承自 Dictionary 类, 而 HashMap 继承自 AbstractMap 类. 但二者都实现了 Map 接口.
线程安全性不同
HashMap 线程不安全, 是非同步的. 可以使用 ConcurrentHashMap 是 map 同步.
HashTable 线程安全, 是同步的.
null 值
HashTable 不允许 null 值, hashMap 的 key 和 value 都可以.
Set 和 List 的区别
List,Set 都是继承自 Collection 接口, Map 则不是
List 特点: 元素有放入顺序, 元素可重复 ,
Set 特点: 元素无放入顺序, 元素不可重复, 重复元素会覆盖掉,(注意: 元素虽然无放入顺序, 但是元素在 set 中的位置是有该元素的 HashCode 决定的, 其位置其实是固定的, 加入 Set 的 Object 必须定义 equals()方法 , 另外 list 支持 for 循环, 也就是通过下标来遍历, 也可以用迭代器, 但是 set 只能用迭代, 因为他无序, 无法用下标来取得想要的值.)
Set 和 List 对比:
Set: 检索元素效率低下, 删除和插入效率高, 插入和删除不会引起元素位置改变.
List: 和数组类似, List 可以动态增长, 查找元素效率高, 插入删除元素效率低, 因为会引起其他元素位置改变.
Map 适合储存键值对的数据
线程安全集合类与非线程安全集合类
LinkedList,ArrayList,HashSet 是非线程安全的, Vector 是线程安全的;
HashMap 是非线程安全的, HashTable 是线程安全的;
StringBuilder 是非线程安全的, StringBuffer 是线程安全的.
String 和 StringBuffer 和 StringBuilder 的区别
速度: StringBuilder> StringBuffer>String
String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
异常的顶级父类是什么? 讲出常见的 5 种异常类型?
Throwable 类是整个异常体系类的父级类, 最终追根溯源到底的父类当然要归于 Object 类.
5 种常见的异常类型:
NullPointerException: 空指针异常.
ClassCastException: 类型强制转换异常.
ArrayIndexOutOfBoundsException: 数组下标越界异常.
ArithmeticException: 算术运算异常.
NumberFormatException: 数字格式异常.
& 和 && 的区别
&: 逻辑与 &&: 短路与
大家都是同为真才为真
对于:& --> 不管怎样, 都会执行 "&" 符号左右两边的程序
对于:&& --> 右边的程序, 只有当符号 "&&" 左边程序为真 (true) 后, 才会执行符号
== 和 equals 的区别?
==:
基本数据类型: 比较的是他们的值是否相同
引用数据类型: 比较的是他们在内存中的存放地址, 除非是同一个 new 出来的对象, 他们的比较后的结果为 true, 否则比较后结果为 false. 因为每 new 一次, 都会重新开辟堆内存空间.
equals:
默认是比较的地址值
but, 通常重写 equals()方法, 用来比较对象的成员变量值是否相同
osi 七层模型分别是什么?
数据库字段约束类型有哪些?
主要有 5 种: 唯一性和主键约束, 外键约束, 检查约束, 空值约束, 默认值约束
UNIQUE 和 Primary Key, Foreign Key, CHECK, NOT NULL, DEFAULT
面试(2,3)
来源: http://www.bubuko.com/infodetail-3203751.html