Java面试基础知识提纲

J2SE:

1 、集合

(这个部分的内容是频率高的内容,个人觉得是因为结合了数据结构,还可以结合并发安全考。其实要通关这部分,最好就是把JDK 标准类的源码实现一次):

ArrayList 、 LinkedList、 Vector 的底层实现和区别

HashMap 和 HashTable的底层实现和区别,两者和 ConcurrentHashMap 的区别。

HashMap 的 hashcode 的作用?什么时候需要重写?如何解决哈希冲突?查找的时候流程是如何?

Arraylist 和 HashMap如何扩容?负载因子有什么作用?如何保证读写进程安全?

TreeMap 、 HashMap 、 LinkedHashMap 的底层实现区别。

Collection 包结构的组成, Map、 Set 等内部接口的特点与用法。

 

2 、并发( Executor 框架和多线程基础):

Thread 与 Runable 如何实现多线程

线程同步的方法有什么;锁, synchronized 块,信号量等      点击查看相关资料哦

synchronized锁的等级:对象锁、类锁      点击查看资料

生产者消费者模式的几种实现,阻塞队列实现, sync 关键字实现, lock 实现等

ThreadLocal 的设计理念与作用,  实现分析        内存泄露问题     如何使用

ThreadPool 用法与优势      参考链接

线程池的底层实现和工作原理(建议写一个雏形简版源码实现) 参考链接

几个重要的线程 api ,interrupt , wait , sleep , stop 等等

线程安全问题。 HashMap 是否线程安全,为何不安全。 ConcurrentHashMap,线程安全,为何安全。底层实现是怎么样的。

J.U.C下的常见类的使用。 ThreadPool的深入考察; BlockingQueue的使用。(take,poll的区别,put,offer的区别);原子类的实现。

各种常见锁使用

如果上面这些掌握很好,还可以看看更深一点的 False Sharing,Cache Line,可见性与原子性等;


 

3 、 IO ( IO,NIO,aio)

IO 框架主要用到什么设计模式

NIO 包有哪些结构?分别起到的作用?

NIO 针对什么情景会比 IO 有更好的优化?

 

4 、其他的 java 语言特性 :

反射机制

String 类内部实现,能否改变String 对象内容,比较经典的 String 字面量笔试题

Object 有哪些公用方法?

try catch  块, try 里有 return , finally也有 return ,如何执行这类型的笔试题

Exception 与 Error 的区别

泛型的优缺点

另外就是关注最新版本 jdk 的新特性,例如 Lambda 表达式

 

5 、JVM

自动内存管理机制, GC 算法,运行时数据区结构,可达性分析工作原理,如何分配对象内存

类加载机制,反射机制,双亲委派机制,类加载器的种类

Jvm 内存模型,先行发生原则, violate关键字作用

内存泄漏~

 

CS 基础:

1 、 OS :

进程和线程

死锁的必要条件,怎么处理死锁。

段存储,页存储,段页存储的区别。

进程的几种状态和转换

逻辑地址、物理地址的区别

进程调度算法

进程管理(进程状态、进程同步、进程线程区别、进程调度)

经典的同步问题(生产者消费者、哲学家进餐、读者写着)

死锁的产生原因、必要条件、预防死锁的方法、死锁的检测与解除

存储器管理(分页、分段、段页式)

虚拟存储器(请求分页,页面置换算法)

 

 

2 、网络基础(主要是 TCP 和HTTP )

OSI 与 TCP/IP 各层的结构与功能,协议和作用。

TCP 与 UDP 的区别。

TCP 报文结构。

TCP 的三次握手与四次挥手过程,各个状态名称与含义, TIMEWAIT 的作用。 TCP 的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?

TCP 拥塞控制。

TCP 滑动窗口与回退 N 针协议。

Http 的报文结构。

Http 的常见状态码含义。

Http request 的几种类型

Http1.1 和 Http1.0 的区别

Http 怎么处理长连接。

Cookie 与 Session 的作用于原理

访问 www.xxx.com ,描述一下这个过程发生什么

socket 通信的几个关键函数

IP 地址分类

路由器与交换机区别

了解交换机、路由器、网关的概念,并知道各自的用途

 

数据结构和算法:

剑指 offer

编程之美

Cracking

程序员代码面试指南

 

 后续待补充

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值