做Java开发7年,今年9个月时间圆梦饿了么P7

Java小叮当 2020-11-07 20:15:21
java 开发 时间 个月 今年


前言

工作拧螺丝,面试造火箭。我想这是每个程序员比较头疼的事情吧!但是,又必须要经历一个面试流程,尤其是摸不清面试官问的问题,导致面试的时候不知道如何回答。
本文是工作7年Java程序员从几十次面试中挑选出来的面试几率比较大的一些题目,保证都是大家被问过的(就是这么自信),希望对大家找工作有所帮助。

 

 

下面的面试题只是我整理出来的一小部分常问的题目,另外本人整理并收藏了20年多家公司面试题知识点合集,以及各种Java核心知识点可以免费分享给大家,下方只是部分资料图展示。
需要的朋友可以点击传送门获取Java面试题资料:https://shimo.im/docs/QyJrRJVRdpptDYgk/ 

 

 

 

一、JVM系列面试题

1、堆里面的分区:Eden,survival (from+ to),老年代,各自的特点。

答:JVM 分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面,

class 类信息常量池(static 常量和 static 变量)等放在方法区

new:①方法区:主要是存储类信息,常量池(static 常量和 static 变量),编译后的代码(字节码)等数据

②堆:初始化的对象,成员变量 (那种非 static 的变量),所有的对象实例和数组都要在堆上分配

③栈:栈的结构是栈帧组成的,调用一个方法就压入一帧,帧上面存储局部变量表,操作数栈,方法出口等信息,局部变量表存放的是 8 大基础类型加上一个应用类型,所以还是一个指向地址指针

④ 本地方法栈:主要为 Native 方法服务

⑤ 程序计数器:记录当前线程执行的行号

2、GC 的两种判定方法:

3、SafePoint 是什么

4、GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?

5、Minor GC 与 Full GC 分别在什么时候发生?

6、JVM 内存分哪几个区,每个区的作用是什么?

7、 如何判断一个对象是否存活?(或者 GC 对象的判定方法)

二、Redis系列面试题

1、Redis 与 memcached 相比有哪些优势?

2、Redis 支持哪几种数据类型?

3、Redis 有哪几种数据淘汰策略?

4、为什么 Redis 需要把所有数据放到内存中?

5、Redis 集群方案什么情况下会导致整个集群不可用?

6、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点 数据?

7、Redis 和 Redisson 有什么关系?

 
 

三、 Mysql系列面试题

1、Mysql 的技术特点是什么?

2、在 Mysql 中 ENUM 的用法是什么?

3、与 Oracle 相比,Mysql 有什么优势?

4、列的字符串类型可以是什么?

5、请简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

6、LIKE 声明中的%和_是什么意思?

7、MyISAM 表格将在哪里存储,并且还提供其存储格式?

四、Netty系列面试题

1、BIO、NIO 和 AIO 的区别?

答:BIO:一个连接一个线程,客户端有连接请求时服务器端就 需要启动一个线程进行处理。线程开销大。

伪异步 IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。

NIO:一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用

器轮询到连接有 I/O 请求时才启动一个线程进行处理。

AIO:一个有效请求一个线程,客户端的 I/O 请求都是由 OS 先完成了再通知服务器应用去启动线程进行处理,BIO 是面向流的,NIO 是面向缓冲区的;BIO 的各种流是阻塞的。而 NIO 是非阻塞的;BIO的 Stream 是单向的,而 NIO 的 channel 是双向的。

NIO 的特点:事件驱动模型、单线程处理多任务、非阻塞 I/O,I/O 读写不再阻塞,而是返回 0、基于 block 的传输比基于流的传输更高效、更高级的 IO 函数 zero-copy、IO 多路复用大大提高了 Java 网络应用的可伸缩性和实用性。基于 Reactor 线程模型。

在 Reactor 模式中,事件分发器等待某个事件或者可应用或个操作的状态发生,事件分发器就把这个事件传给事先注册的事件处理函数或者回调函数,由后者来做实际的读写操作。如在 Reactor 中实现读:注册读就绪事件和相应的事件处理器、事件分发器等待事件、事件到来,激活分发器,分发器调用事件对应的处理器、事件处理器完成实际的读操作,处理读到的数据,注册新的事件,然后返还控制权。

2、TCP 粘包/拆包的原因及解决方法?

3、了解哪几种序列化协议?

4、如何选择序列化协议?

5、Netty 的零拷贝实现?

6、.Netty 的高性能表现在哪些方面?

五、SQL优化系列面试题

1、Mysql 的技术特点是什么?

答:Mysql 数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多线程 SQL 服务器、不同的后端、广泛的应用程序编程接口和管理工具。

2、Heap 表是什么?

3、Mysql 服务器默认端口是什么?

4、与 Oracle 相比,Mysql 有什么优势?

5、区分 CHAR_LENGTH 和 LENGTH?

6、Mysql 中使用什么存储引擎?

六、Duddo系列面试题

1、Dubbo 中 zookeeper 做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?

2、dubbo 服务负载均衡策略?

3、Dubbo 在安全机制方面是如何解决的

4、dubbo 连接注册中心和直连的区别

5、dubbo 服务集群配置(集群容错模式)

6、dubbo 通信协议 dubbo 协议为什么要消费者比提供者个数多:

7、dubbo 通信协议 dubbo 协议适用范围和适用场景

七、设计模式系列面试题

1、请列举出在 JDK 中几个常用的设计模式?

答:单例模式(Singleton pattern)用于 Runtime,Calendar 和其他的一些类中。工厂模式(Factory pattern)被用于各种不可变的类如Boolean,像 Boolean.valueOf,观察者模式(Observer pattern)被用于 Swing 和很多的事件监听中。装饰器设计模式(Decoratordesign pattern)被用于多个 Java IO 类中。

2、什么是设计模式?你是否在你的代码里面使用过任何设计模式?

3、Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式

4、在 Java 中,什么叫观察者设计模式(observer design pattern)?

5、使用工厂模式最主要的好处是什么?在哪里使用?

6、举一个用 Java 实现的装饰模式(decorator design pattern)?它是作用于对象层次还是类层次?

7、举例说明什么情况下会更倾向于使用抽象类而不是接口?

 

总结

针对以上面试题,我总结出了互联网公司Java程序员面试中,涉及到的绝大部分面试题(附答案详解)。编成了文档和PDF格式的资料,免费分享给大家。包括 Dubbo、Redis、Netty、Zookeeper、Spring Cloud、分布式、高并发等架构技术点核心资料),希望能帮助到您面试前的复习并且能找到一个心仪的工作。同时,也节省大家去网上搜索资料浪费的时间来学习,也可以关注我哟以后还会有更多干货分享哒~

 

 

说到这里,想必大家都蠢蠢欲动了吧,由于文章字数原因,完整资料不能全部上传,需要资料的朋友可以点击传送门获取Java面试题资料:https://shimo.im/docs/QyJrRJVRdpptDYgk/ 

 

版权声明
本文为[Java小叮当]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/xiaowan7/p/13941924.html

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云