pursue wind pursue wind
首页
Java
Python
数据库
框架
Linux
中间件
前端
计算机基础
DevOps
项目
面试
书
关于
归档
MacOS🤣 (opens new window)
GitHub (opens new window)
首页
Java
Python
数据库
框架
Linux
中间件
前端
计算机基础
DevOps
项目
面试
书
关于
归档
MacOS🤣 (opens new window)
GitHub (opens new window)
  • 技术面试题篇

  • 面试准备篇

  • 技术面试题自测篇

  • 练级攻略篇

  • 工作篇

  • 面经篇

  • 笑傲Java面试

    • 2-1 导学-Java编程技巧部分
    • 2-2 IDEA Java配置补充
    • 2-4 Java8 Stream 接口:流和并发计算实例
    • 2-5 和面试官聊聊实现管道和流计算的基石:函数式的Monad
    • 2-6 Buffer的原理和使用场景+面试题解读
    • 2-7 补充提问:同步和阻塞、异步和非阻塞等不等价?
    • 2-8 阿里面试题:中文乱码处理和大文件计算词频
    • 2-9 实战场景Coding训练:解读反射+代理+AOP 并结合业务逻辑实现
    • 2-10 注解部分答案
    • 2-11 反射-元编程面试题目合集
    • 2-12 面试必备:Java8-11的新特性和理解的误区
    • 2-13 白板篇-Java编程总结(以及面试题)
      • [](#集合部分)集合部分
      • [](#stream部分)Stream部分
      • [](#buffer)Buffer
      • [](#反射部分)反射部分
      • [](#java新特性)Java新特性
    • 3-1 算法和数据结构导学
    • 3-2 教你面试时不会忘记的5种手写排序
    • 3-3 手写链表算法
    • 3-4 手写栈和队列面试专项
    • 3-5 课后习题+面试题:用栈和队列实现表达式解析
    • 3-6 迷宫伪代码和8皇后问题源代码
    • 3-7 3-7 树部分源代码
    • 3-8 8皇后问题
    • 3-10 动态规划的课前题目
    • 3-11 总结和课后习题:白板篇-数据结构和算法
    • 4-1 解读:并发编程知识体系
    • 4-2 看看你的基础:Java线程状态之间如何转换?
    • 4-3 CAS和原子操作
    • 4-4 同步器(上篇)——面试官问synchronized本质是什么?
    • 4-5 同步器(中)——AbstractQueuedSynchronizer
    • 4-6 面试官:说6个Java的同步器?
    • 4-7 面试官出难题:并发环境下单例怎么写性能最高
    • 4-8 面试官:LinkedBlockingDeque和SynchronousQueue工作原理一样吗?
    • 4-9 面试要点:volatile的简短补充
    • 4-10 给面试官讲讲无锁编程(Lock-Free Programming)
    • 4-11 高阶并发编程Coding训练:N种优化哲学家就餐问题的方法
    • 4-12 并发基础篇:总结和思考题
    • 4-13 并发部分的通关Boss: 生成、发放大量红包并控制资金流速
  • LeetCode

  • 面试
  • 笑傲Java面试
pursuewind
2021-12-13
目录

2-13 白板篇-Java编程总结(以及面试题)

# 白板篇-Java编程总结(以及面试题)

# 集合部分

回答什么集合是什么?诸如此类的问题,首先要理解的是集合内部是什么数据结构——Tree、HashTable、LinkedList、Array、Stack、Queue……具体我们会在下一章继续讨论。

比如TreeMap是一颗二叉搜索树(具体来说是红黑树),查询和插入的时间复杂度分别是多少?——都是 O(logn)——见下一部分。

另一方面,就是侧重他们的抽象机制回答。比如说,ConcurrentHashMap是一种Map,然后Map是一种映射。Map内部有EntrySet(一种Set),Set是一种Collection;Collection可以Iterable。

课后讨论题:HashMap和HashSet的关系是什么?

# Stream部分

Stream部分有很多的Monad操作,比如map\reduce\filter\takewhile,首先你要能够在面试中使用这些操作。建议查阅下资料(https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html (opens new window))了解下所有的操作(英文不好可以开翻译模式)。

另一部分就是Monad的实现,可以说掌握了Monad的实现,就掌握了Stream设计的核心。

课后讨论题:简述下Stream的设计?

# Buffer

缓冲区部分一方面需要理解缓冲区的设计,特别是flip\rewind\clear等几个操作,原理是什么? 另一部分,就是要理解缓冲区是如何提升性能的?

课后讨论题:说说这3个操作flip/rewind/clear?

# 反射部分

反射部分首先要理解如何获取元数据,获取元数据的基本方式和API。在ClassLoader部分我会还会继续讨论。

另一部分就是利用反射做很多事情,比如实现注解;实现AOP、实现代理等。

课后讨论题:Method.invoke慢,为什么慢?如何提速?

# Java新特性

新特性部分,知识比较琐碎,建议读多读1-2遍,加深理解。面试中可能会出现类似:聊聊Java XXX新特性,这样的题目。

课后讨论题:谈谈你对FunctionalInterface这个特性的理解?

注:课后讨论题回答后如果在答疑区讨论,给出你的答案我会抽一部分朋友的点评。

Last Updated: 2023/01/30, 11:01:00
2-12 面试必备:Java8-11的新特性和理解的误区
3-1 算法和数据结构导学

← 2-12 面试必备:Java8-11的新特性和理解的误区 3-1 算法和数据结构导学→

Theme by Vdoing | Copyright © 2019-2023 pursue-wind | 粤ICP备2022093130号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
  • 飙升榜
  • 新歌榜
  • 云音乐民谣榜
  • 美国Billboard榜
  • UK排行榜周榜
  • 网络DJ