海盗船|字节内部Java技术岗‘面试真题’泄露,冒死发布!( 三 )

  • 插入删除速度快(因为有next指针指向其下一个节点 , 通过改变指针的指向可以方便的增加删除元素)
  • 内存利用率高 , 不会浪费内存(可以使用内存中细小的不连续空间(大于node节点的大小) , 并且在需要空间的时候才创建空间)
  • 大小没有固定 , 拓展很灵活 。
  • 链表的缺点
    • 不能随机查找 , 必须从第一个开始遍历 , 查找效率低
    5、为什么HashMap中String、Integer这样的包装类适合作为K?
    6、ConcurrentHashMap 和 Hashtable 的区别?
    7、如何边遍历边移除Collection中的元素?
    8、HashMap在JDK1.7和JDK1.8中有哪些不同?HashMap的底层实现
    9、集合和数组的区别
    10、HashMap 与 HashTable 有什么区别?
    11、集合的特点
    12、 什么是Hash算法
    13、使用集合框架的好处
    14、comparable 和 comparator的区别?
    15、多线程场景下如何使用 ArrayList?
    16、HashMap的put方法的具体流程?
    17、HashSet如何检查重复?HashSet是如何保证数据不可重复的?
    18、为什么 ArrayList 的 elementData 加上 transient 修饰?
    19、TreeMap 和 TreeSet 在排序时如何比较元素?Collections 工具类中的 sort()方法如何比较元素?
    20、说一下 HashSet 的实现原理?
    1、Java异常关键字
    • try– 用于监听 。 将要被监听的代码(可能抛出异常的代码)放在try语句块之内 , 当try语句块内发生异常时 , 异常就被抛出 。
    • catch– 用于捕获异常 。 catch用来捕获try语句块中发生的异常 。
    • fifinally– fifinally语句块总是会被执行 。 它主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件) 。 只有fifinally块 , 执行完成之后 , 才会回来执行try或者catch块中的return或者throw语句 , 如果fifinally中使用了return或者throw等终止方法的语句 , 则就不会跳回执行 , 直接停止 。
    • throw– 用于抛出异常 。
    • throws– 用在方法签名中 , 用于声明该方法可能抛出的异常 。
    2、怎么确保一个集合不能被修改?
    3、常见异常处理方式
    直接抛出异常
    • 通常 , 应该捕获那些知道如何处理的异常 , 将不知道如何处理的异常继续传递下去 。 传递异常可以在方法签名处使用throws关键字声明可能会抛出的异常 。
    private static void readFile(String filePath) throws IOException {
    \tFile file = new File(filePath);
    \tString result;
    \tBufferedReader reader = new BufferedReader(new FileReader(file));
    \twhile((result = reader.readLine())!=null) {
    \t\tSystem.out.println(result);
    \t
    \treader.close();

    4、lterator 怎么使用?有什么特点?
    5、HashMap是怎么解决哈希冲突的?
    6、List 和 Set 的区别
    7、ArrayList和LinkedList的区别是什么?
    8、声明异常
    9、说一下HashMap的实现原理?
    10、异常会影响性能
    11、Java异常架构
    12、HashMap的扩容操作是怎么实现的?
    13、如何实现数组和List之间的转换?
    14、类 ExampleA 继承 Exception , 类 ExampleB 继承ExampleA 。
    15、对异常进行文档说明
    16、Java常见异常有哪些
    17、ListSetMap三者的区别?
    18、HashMap 的长度为什么是2的幂次方
    19、Java异常简介
    20、ArrayList 和Vector的区别是什么?
    IV.Linux面试题
    1、 什么是CLI?