在此将网络收集的高频问题总结发布,希望帮助各位快速达到面试状态,本帖持续更新,敬请期待,觉得形式ok的请点赞、收藏喔,有意见和建议欢迎评论区留言~
- 进程和线程的区别?
- 进程的调度算法有哪些?(主要)
- 常用 IO 模型?
- select、poll 和 epoll 的区别?epoll 的底层使用的数据结构。
- 进程的通信方式有哪些?线程呢?
- fork 函数的作用?
- 协程的概念?
- linux 进程和线程?
- 通过进程id查看占用的端口,通过端口号查看占用的进程 id?
- 如何查看占用内存比较多的进程?
- 僵尸进程产生的原因?
- 孤儿进程产生的原因?
- 讲一下虚拟内存。虚拟内存和物理内存的关系是什么?
- 分段和分页讲一下?以及对应的场景?
- 讲一下用户态和内核态?所有的系统调用都会进入到内核态吗?
- 平常用什么 linux 命令比较多?如何打开文件并进行查找某个单词?怎么在某个目录下找到包含 txt 的文件?
- 用过 ping 命令么?简单介绍一下。TTL 是什么意思?
- 怎么判断一个主机是不是开放某个端口?
- 说一下你最用的比较多得模式(我说的工厂模式和观察者模式),再实现一个单例模式。
- 排序算法哪些是稳定的,为什么直接插入排序是稳定的,各种排序算法的时间复杂度和空间复杂度?
- 如何进行二叉树的各种遍历的非递归算法实现?简要讲述。
- 硬链接和软链接?
- 中断的分类?
- 软中断和硬中断?
- 红黑树和平衡二叉树?
- StringBuilder 和 StringBuffer
- Java实现连续空间的内存分配?
- 创建对象的方式有哪几种?
- 接口和抽象类有什么区别?
- 深拷贝和浅拷贝区别?
- 讲一讲封装,继承,多态(重要)。
编译时多态
运行时多态 - 泛型是什么?类型擦除?
- 如何实现静态代理?有啥缺陷?
- 动态代理的作用?在哪些地方用到了?(AOP、RPC 框架中都有用到,面试笔试中经常要求手写一个动态代理)
- JDK 的动态代理和 CGLIB 有什么区别?
- 谈谈对 Java 注解的理解,解决了什么问题?
- Java 反射?反射有什么缺点?你是怎么理解反射的(为什么框架需要反射)?
- 为什么框架需要反射技术?
- 获取 Class 对象的两种方式
- 内存泄露和内存溢出的场景。
内存泄露的场景
内存溢出场景 - 讲一下,强引用,弱引用,软引用,虚引用。
- 一个对象是否有虚引用的存在,不会对其生存时间造成影响,也无法通过虚引用 得到一个对象。
- 讲一下 Java 的 NIO,AIO, BIO?
- Java 中 finalize()方法的使用?
- GC Root 对象有哪些
- Java 中 Class.forName 和 ClassLoader 的区别?
- 讲一下 CopyOnWriteArrayList 和 CopyOnWriteArraySet?
CopyOnWrite 容器:
CopyOnWrite 的缺点 - 单例模式(重要)
- Java 中>>和>>>的区别
- 为什么网络要分层?
- TCP/IP 4 层模型了解么?
- HTTP 是哪一层的协议?http常见的状态码
- HTTP 和 HTTPS 什么区别?
- 讲一下对称加密算法和非对称加密算法?
- HTTP2.0讲一下
- HTTP报文详解?详细说一下请求报文,以及HTTP和TCP的区别
- TCP三次握手的过程,以及三次握手的原因?
- TCP四次挥手的过程,以及四次挥手的原因?
- TCP滑动窗口是干什么的?TCP的可靠性体现在哪里?拥塞控制如何实现的?
- TCP和UDP有什么区别?及其适用的场景。
- Mac 地址和 ip 地址的区别?既然有了 Mac 地址,为什么还要 ip 地址呢?
- 当你打开一个电商网站,都需要经历哪些过程?分别用到了什么协议。
- 电子邮件的发送过程?
- DNS解析过程,DNS劫持了解吗?
- GET和POST有什么不一样?
- session和cookie的问题?
- HTTP是不保存状态的协议,如何保存用户状态?
- Arp协议?
- DDos攻击了解吗?
- ArrayList的扩容机制?
- HashMap 的底层实现、JDK 1.8 的时候为啥将链表转换成红黑树?HashMap 的负载因子
- ConcurrentHashMap的底层实现
- 什么 ConcurrentHashMap 的读操作不需要加锁?
- HashMap,LinkedHashMap,TreeMap 有什么区别?HashMap ,TreeMap,
- 有哪些集合是线程不安全的,又有哪些集合是线程不安全的?怎么解决呢? 线程安全的集合类.
- 什么是快速失败(fail-fast)、能举个例子吗?什么是安全失败(fail-safe)呢?
- HashMap 多线程操作导致死循环问题异常
- 在多线程情况下如何保证线程安全。
- 写一个死锁的例子
- 讲一下volatile关键字的作用。
- synchronized 作用,讲一讲底层实现。
- ReetrantLock 和 synchronized的区别
- 说说 synchronized关键字和 volatile关键字的区别
- ReetrantLock实现方式
- interrupt,interrupted与isInterrupted方法的区别? 如何停止一个正在运行的线程
- 线程池作用?Java 线程池有哪些参数?阻塞队列有几种?拒绝策略有几种?线程池的工作机制?
- 线程池拒绝策略分别使用在什么场景?
- 线程死锁,解除线程死锁有哪几种方式?(两次栽倒这题上了,时间太久又忘记了,如何解决很重要)
- ThreadLocal 是什么,应用场景是什么,原理是怎样的?
- ThreadLocal类为什么要加上private static修饰?
- ThreadLocal有什么缺陷?如果线程池的线程使用ThreadLocal会有什么问题?
- 介绍一下 Java 有哪些锁
- 乐观锁和悲观锁讲一下,哪些地方用到。
面试题答案
好了各位, 本文到这里就结束了! 关于面试题答案为什么没有直接写出来,我想说的是把面试题写下来会显得文章很长,(现在已经很长了…)这样就影响文章的可读性。
本文分享给需要面试刷题的朋友,也祝愿大家顺利拿到自己想要的offer,这份资料主要包含了Java基础,数据结构,jvm,多线程等等,由于篇幅有限,以下只展示小部分面试题,有需要完整版的朋友可以点一点链接跳转领取,链接:戳这里免费下载答案,获取码:CSDN