• 面试(2,3)


    线程和进程的区别

    • 进程是运行中的程序,线程是进程的内部的一个执行序列

    • 进程是资源分配的单元,线程是执行单元

    • 进程间切换代价大,线程间切换代价小

    • 进程拥有资源多,线程拥有资源少

    • 多个线程共享进程的资源

    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种常见的异常类型:

    1. NullPointerException: 空指针异常。

    2. ClassCastException: 类型强制转换异常。

    3. ArrayIndexOutOfBoundsException: 数组下标越界异常。

    4. ArithmeticException:算术运算异常。

    5. NumberFormatException: 数字格式异常。

    &和&&的区别

    &:逻辑与 &&:短路与

    大家都是同为真才为真

    对于:& -- > 不管怎样,都会执行"&"符号左右两边的程序

    对于:&& -- > 右边的程序,只有当符号"&&"左边程序为真(true)后,才会执行符号

    ==和equals的区别?

    ==:

    • 基本数据类型:比较的是他们的是否相同

    • 引用数据类型:比较的是他们在内存中的存放地址,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。因为每new一次,都会重新开辟堆内存空间。

    equals:

    • 默认是比较的地址值

    • but,通常重写equals()方法,用来比较对象的成员变量值是否相同

    osi七层模型分别是什么?

     

    数据库字段约束类型有哪些?

    主要有5种:唯一性和主键约束、外键约束、检查约束、空值约束、默认值约束

    UNIQUE和Primary Key, Foreign Key, CHECK, NOT NULL, DEFAULT

  • 相关阅读:
    第六周作业:《人月神话》对我做项目实践的启示(一)
    第五周作业:网站的初步设计
    关于做团队项目时需求分析工作中所学的一部分知识
    软件工程学生的编程能力与编程语言是中文或英文有关系吗?
    面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?请根据自己的理解简明扼要的回答。
    当下大部分互联网创业公司为什么都愿意采用增量模型来做开发
    1+X Web前端开发(中级)理论考试样题(附答案)
    1+X Web前端开发(初级)理论考试样题(附答案)
    vi 和vim 的区别
    Linux查看日志三种命令
  • 原文地址:https://www.cnblogs.com/bzbz/p/11546101.html
Copyright © 2020-2023  润新知