本文是根据我的阿里面试经验,为大家整理Java程序猿所需的知识体系。(陆续补充中ing)
第一部分:计算机基础 互联网大厂都相当重视程序员的基本功,也就是计算机基础知识。一个程序员能走多远、爬多高,很大程度上取决于基本功是否扎实。对于应届生而言,大都比较缺乏实战项目经验,虽然会有一定的项目经验,但这些课程设计、实验室项目的质量与公司实际的项目有着巨大的差距。因此,基础知识便成为面试考量的一大重点,而且基础扎实的程序员可塑性比较高,做什么都能比较容易快速上手。 计算机基础包含如下几门课程,相信计算机专业的同学肯定都已经学过。但互联网公司面试的考点可能和你们期末考试的考点有一些不同,我都做了整理。 1. 计算机网络 大学课程中的计算机网络一般都按照OSI七层参考模型介绍,然而由于互联网公司的特性,他们更加关注日常开发所涉及到的传输层和应用层,所以需要重点掌握传输层和应用层中所涉及到的所有知识点。 【考点】
第一部分:计算机基础 互联网大厂都相当重视程序员的基本功,也就是计算机基础知识。一个程序员能走多远、爬多高,很大程度上取决于基本功是否扎实。对于应届生而言,大都比较缺乏实战项目经验,虽然会有一定的项目经验,但这些课程设计、实验室项目的质量与公司实际的项目有着巨大的差距。因此,基础知识便成为面试考量的一大重点,而且基础扎实的程序员可塑性比较高,做什么都能比较容易快速上手。 计算机基础包含如下几门课程,相信计算机专业的同学肯定都已经学过。但互联网公司面试的考点可能和你们期末考试的考点有一些不同,我都做了整理。 1. 计算机网络 大学课程中的计算机网络一般都按照OSI七层参考模型介绍,然而由于互联网公司的特性,他们更加关注日常开发所涉及到的传输层和应用层,所以需要重点掌握传输层和应用层中所涉及到的所有知识点。 【考点】
- 传输层的作用
- 传输层复用和分用的含义
- 传输层和网络层的区别
- UDP协议的特点
- UDP协议的报文结构
- TCP协议的特点
- TCP协议的报文结构
- TCP三次握手过程
- TCP四次挥手过程
- TCP可靠传输是如何实现的
- 停止等待协议
- 滑动窗口协议
- TCP的流量控制
- TCP拥塞控制
- HTTP协议
- HTTP工作流程
- HTTP请求格式
- HTTP 1.1中的8种请求方式
- HTTP响应格式
- HTTP中重要的请求头和响应头字段
- HTTP常用状态码及其含义
- HTTPS协议
- HTTPS协议与HTTP协议的区别
- HTTPS协议的工作流程
- 计算机网络传输层知识点全覆盖-大闲人柴毛毛的博客
- HTTP详解(1)-工作原理
- HTTP详解(2)-请求、响应、缓存
- HTTP详解(3)-http1.0 和http1.1 区别
- 图解 HTTPS 通信过程
- 一般背包问题
- 最佳合并模式
- 最小代价生成树
- 迪杰斯特拉算法
- 佛洛依德算法
- 最长公共子序列
- 0/1背包问题
- 多段图问题
- n皇后问题
- BFS
- DFS
- 操作系统的四个特性。
- 操作系统的主要功能。
- 进程的有哪几种状态,状态转换图,及导致转换的事件。
- 进程与线程的区别。
- 进程通信的几种方式。
- 进程同步的几种方式
- 用户态和核心态的区别。
- 死锁的概念,导致死锁的原因。
- 导致死锁的四个必要条件。
- 处理死锁的四个方式。
- 预防死锁的方法、避免死锁的方法。
- 进程调度算法。
- 内存连续分配方式采用的几种算法及各自优劣。
- 基本分页储存管理方式。
- 基本分段储存管理方式。
- 分段分页方式的比较各自优缺点。
- 几种页面置换算法,会算所需换页数
- 虚拟内存的定义及实现方式。
- 操作系统面试重难点总结
- 常见面试题整理--操作系统篇(每位开发者必备)
- 什么是索引?
- 索引的分类
- 索引的优缺点分析
- 何时需要使用索引?何时无需使用索引?
- 什么是事务?
- 事务的四大特性
- 数据库三大范式
- 数据库有哪些表连接?
- 数据库索引全面解析
- 数据库事务详解
- 数据库三大范式
- 常见面试题整理--数据库篇(每位开发者必备)
- Java虚拟机内存模型特点和作用
- 程序计数器
- Java虚拟机栈
- 本地方法区
- 堆
- 方法区
- 对象创建过程
- 对象访问过程
- 对象的内存结构
- 垃圾收集算法
- 如何判定哪些对象需要回收?
- 对象内存分配策略
- 分配担保机制
- 垃圾收集器的比较
- Class文件结构
- 类加载的时机
- 类加载过程
- 双亲委派模型
- 深入理解JVM(一)——JVM内存模型
- 深入理解JVM(二)——揭开HotSpot对象创建的奥秘
- 深入理解JVM(三)——垃圾收集策略详解
- 深入理解JVM(四)——对象内存的分配策略
- 深入理解JVM(五)——HotSpot垃圾收集器详解
- 深入理解JVM(六)——JVM性能调优实战
- 深入理解JVM(七)——Class文件结构
- 深入理解JVM(八)——类加载的时机
- 深入理解JVM(九)——类加载的过程
- 深入理解JVM(十)——类加载器
- 什么是死锁?如何避免死锁?
- 什么是重排序?
- volatile有哪些特性?
- 什么是内存可见性?
- volatile为什么能够保证内存可见性?
- 中断机制
- 线程通信有哪些方式?
- 线程池的作用?
- ThreadPoolExecutor如何使用?
- 如何设置线程池的大小?
- 如何保证线程安全?
- JDK 1.6哪些对锁做了哪些优化?
- Java并发编程的艺术(一)——并发编程需要注意的问题
- Java并发编程的艺术(二)——重排序
- Java并发编程的艺术(三)——volatile
- Java并发编程的艺术(四)——线程的状态
- Java并发编程的艺术(五)——中断
- Java并发编程的艺术(六)——线程间的通信
- Java并发编程的艺术(七)——Executors
- Java并发编程的艺术(八)——闭锁、同步屏障、信号量详解
- Java并发编程的艺术(九)——批量获取多条线程的执行结果
- Java并发编程的艺术(十)——线程池(1)
- Java并发编程的艺术(十一)——线程池(2)
- Java并发编程的艺术(十二)——线程安全
- Java并发编程的艺术(十三)——锁优化
- Java并发容器大合集
- Java 集合系列01之 总体框架
- Java 集合系列02之 Collection架构
- Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
- Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)
- Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例
- Java 集合系列06之 Vector详细介绍(源码解析)和使用示例
- Java 集合系列07之 Stack详细介绍(源码解析)和使用示例
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- Java 集合系列09之 Map架构
- Java 集合系列10之 HashMap详细介绍(源码解析)和使用示例
- Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
- Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例
- Java 集合系列13之 WeakHashMap详细介绍(源码解析)和使用示例
- Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
- Java 集合系列15之 Set架构
- Java 集合系列16之 HashSet详细介绍(源码解析)和使用示例
- Java 集合系列17之 TreeSet详细介绍(源码解析)和使用示例
- Java 集合系列18之 Iterator和Enumeration比较
- java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括InputStream)
- java io系列03之 ByteArrayOutputStream的简介,源码分析和示例(包括OutputStream)
- java io系列04之 管道(PipedOutputStream和PipedInputStream)的简介,源码分析和示例
- java io系列05之 ObjectInputStream 和 ObjectOutputStream
- java io系列06之 序列化总结(Serializable 和 Externalizable)
- java io系列07之 FileInputStream和FileOutputStream
- java io系列08之 File总结
- java io系列09之 FileDescriptor总结
- java io系列10之 FilterInputStream
- java io系列11之 FilterOutputStream
- java io系列12之 BufferedInputStream(缓冲输入流)的认知、源码和示例
- java io系列13之 BufferedOutputStream(缓冲输出流)的认知、源码和示例
- java io系列14之 DataInputStream(数据输入流)的认知、源码和示例
- java io系列15之 DataOutputStream(数据输出流)的认知、源码和示例
- java io系列16之 PrintStream(打印输出流)详解
- java io系列17之 System.out.println("hello world")原理
- java io系列18之 CharArrayReader(字符数组输入流)
- java io系列19之 CharArrayWriter(字符数组输出流)
- java io系列20之 PipedReader和PipedWriter
- java io系列21之 InputStreamReader和OutputStreamWriter
- java io系列22之 FileReader和FileWriter
- java io系列23之 BufferedReader(字符缓冲输入流)
- java io系列24之 BufferedWriter(字符缓冲输出流)
- java io系列25之 PrintWriter (字符打印输出流)
- java io系列26之 RandomAccessFile
- 深入分析 Java I/O 的工作机制
- 深入理解java异常处理机制
- Java中关于WeakReference和WeakHashMap的理解
- HashMap在并发下可能出现的问题分析
- 深入分析ConcurrentHashMap
- Java中的Copy-On-Write容器
- Java中有关Null的9件事
- 浅谈常用的几种web攻击方式
- Collections.sort源码分析
- Java8系列之重新认识HashMap
- 深入理解Java中的String
- Arrays.sort()你应该知道的事
- 细数JDK里的设计模式
- Java单例模式中双重检查锁的问题
更多推荐
【干货】Java程序员考点大合集
发布评论