美文网首页Java程序员知识库
Java程序员面试知识大纲

Java程序员面试知识大纲

作者: w黄杨w | 来源:发表于2019-01-31 15:40 被阅读0次

基础算法

  • 排序
  • 查找

操作系统和常用协议

  • 进程、线程、协程
  • 编译原理
  • TCP 协议
    • 三次握手
    • 四次挥手
    • 确认机制、滑动窗口
  • HTTP 协议
    • HTTP Method
    • HTTP Header
    • Keep Alive
    • Websocket
    • HTTPS
    • HTTP2
  • Linux
    • User Space, Kernel Space
    • Shell

程序设计

  • OO, AOP, Functional
  • 封装、多态
  • 面向对象设计六大原则
  • 设计模式
  • 代码风格
  • 代码重构
  • 单元测试

Java 集合框架

  • List: ArrayList, LinkedList
  • Set: HashSet, LinkedHashSet
  • Map: HashMap, LinkedHashMap, ConcurrentHashMap, TreeMap

Java 扩展

  • IO
  • NIO, Netty, Mina
  • Servlet
  • JMX
  • Java 8
    • Lambda
    • Stream

Java 并发

  • volatile, synchronized
  • Thread, ThreadLocal, Runnable, Callable
  • Lock, ReadWriteLock, ReentrantLock, StampedLock
  • CountDownLatch, CyclicBarrier, Semaphore, Exchanger
  • Executor, ExecutorService, Future, CompletableFuture
  • Fork-Join
  • AQS, CAS, ABA 问题
  • Java Memory Model

JVM

  • 虚拟机组成结构
  • 虚拟机堆内存结构
  • 垃圾收集算法、垃圾收集器
  • 虚拟机调优

框架和语言

  • Spring, Spring Boot, Struts
  • MyBatis, Hibernate
  • jQuery, React, Vue.js
  • JavaScript, Node.js, Scala, Python...

数据库相关

  • 表设计经验
  • 事务 ACID 特性、事务四个隔离级别
  • 索引原理以及运用
  • 分页、分库、分表、读写分离
  • 分布式事务的典型处理方式:两阶段型(2PC)、补偿型(TCC)、异步确保型、最大努力通知型

高并发、分布式、中间件、微服务、容器

  • 并发编程模型
  • Map/Reduce,Master/Slave
  • Tomcat
  • Nginx
  • Redis
  • Kafka
  • Dubbo
  • Hadoop, HDFS, Zookeeper, HBase
  • MongoDB
  • Spark, Storm
  • Docker、K8s

应用题

  • 如何用 Java 多线程模拟现实生活中的场景?例如:多辆车自驾旅游,在加油站会和休息,最终又一起达到目的地。
  • 如何实现大文本的敏感词汇过滤功能?
  • 如何实现代码语法高亮功能?
  • 如何实现一个短链接服务?
  • 如何设计下载大量 MP3 歌曲的分布式可容错系统?
  • 如何设计抢红包功能?
  • 如何设计秒杀系统?
  • 如何设计网络爬虫系统?
  • 如何设计存储海量的小文件(大小都是几百K~几M)?
  • 有两个大文本文件,文件中的数据按行存放,如何实现找到两个文件中彼此不相同的行?

软素质

  • 工作习惯
  • 学习习惯
  • 职业规划
  • 兴趣爱好

相关文章

  • Java程序员面试知识大纲

    基础算法 排序 查找 操作系统和常用协议 进程、线程、协程 编译原理 TCP 协议三次握手四次挥手确认机制、滑动窗...

  • Java面试题

    android程序员在面试时都会被问到Java方面的知识,本文整理了部分Java方面的面试题,如下: 0、Java...

  • 阿里面试官整理出面试必问:java面试核心知识原理+框架笔记

    offer来了,Java面试核心知识点精讲(原理篇) 这份文档是对Java程序员面试必备知识点的总结,详细讲解了J...

  • pub哥的2020文章清单

    【Java学习+实战+面试】一份涵盖大部分Java程序员需要掌握的核心知识,从java基础到java组件到项目源码...

  • 银四进大厂,啃透这些Springboot文档,带你手刃面试官

    前言: 随着 Spring Boot 使用越来越广泛,Spring Boot 已经成为 Java 程序员面试的知识...

  • Java面试大纲

    转载:http://url.cn/5yZONtY跳槽时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽...

  • Java面试大纲

    项目介绍 大部分情况,这是一场面试的开门题,面试官问这个问题,主要是考察你的概述能力和全局视野。有的人经常抱怨自己...

  • Java面试大纲

    答案不全,欢迎补充订正~ Java基础 1、List 和 Set 的区别~List允许重复,有序容器,按照存放顺序...

  • Java面试大纲

    01:项目介绍 此乃面试之时第一环节,主要考察你的概述能力和对业务的熟悉程度, 对需求的分析能力,沟通协作能力,产...

  • Java程序员必备:异常的十个关键知识点

    Java程序员必备:异常的十个关键知识点 前言 总结了Java异常十个关键知识点,面试或者工作中都有用哦,加油。 ...

网友评论

    本文标题:Java程序员面试知识大纲

    本文链接:https://www.haomeiwen.com/subject/mpaksqtx.html