前言

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

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

一、JVM系列面试题

答: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开发7年,今年9个月时间圆梦饿了么P7相关推荐

  1. 在一线做Java开发,月薪达到两万的都是什么水准?

    在一线做Java开发,月薪达到两万的都是什么水准?下面和小编一起来看看吧! 第一个是基础 比如对集合类,并发包,类加载,IO/NIO,JVM,内存模型,泛型,异常,反射,等有深入了解,最好是看过源码了 ...

  2. java要学mysql 吗_做JAVA开发需要把数据库学习到何种程度

    原标题:做JAVA开发需要把数据库学习到何种程度 做JAVA开发需要把数据库学习到何种程度?智递科技小编和大家一起探讨交流: 1.开发人员对DB的掌握,越深入,你能做的事情就越多. 2.完成业务功能, ...

  3. 做Java开发如何月薪达到两万,需要什么技术水平

    都说程序员工资高,作为Java开发程序员,拿到2万的工资,需要什么技术水平,新入门的程序员如何能达到月薪2万呢? 一般来说月薪2万的Java程序员属于中级程序员.就是技术稍好一点,还做不到架构师级别的 ...

  4. 在“北上广深杭”做Java开发如何月薪达到2w,需要技术水平达到什么程度?

    前言: 最近群里有朋友一直在聊就是月薪多少多少,说在北京上海等一线城市做java怎么样可以达到2w块钱的水平,今天就来唠唠这么个话题 首先两万的月薪在BAT实在太普遍了,一般是高级工程师和资深工程师的 ...

  5. 谈谈我在阿里做Java开发三年半的感受和心得

    正好在离职交接空档期,就抽空简单分享自己的一些个人经历给大家,希望对刚毕业不久或者工作三五年的同学能有一些帮助(别问我为什么年终奖不要了,问就是急着回家过年). 个人经历 正文前先来一些简单的自我介绍 ...

  6. 新款M1MacbookPro 16寸到底能不能做JAVA开发

    一.配置介绍 1.首先先给大家看一下我买的2021新款M1MacbookPro的配置 我买的这款就是16英寸的运行内存为16个g的最低配18999, 说实话我觉得16g的作为java开发已经是非常足够 ...

  7. 为什么做 Java 开发的公司需要那么多程序员?

    一 .不是Java开发的公司需要那么多程序员,而是用Java来开发的公司越来越多了 我们班 30 个人,大概 2/3 最后 选择的技术栈都是 Java 路线,因为 Java 的岗位确实多,很多中小公司 ...

  8. 做java开发入职半年。对未来很迷茫,该如何发展?

    这篇文章总结于我们公司十三位使用Java作为开发语言的程序员前辈,方方面面近四千字. 作为十大编程语言榜首的Java,真的太多人学也有太多要学的东西了,以至于后台总有人问Java该怎么学,甚至还有具体 ...

  9. 朋友做Java开发月薪3万,我在国企月薪5千,差距太明显?

    2022年我做了一个决定--从国企转行至互联网,事实证明,我选对了!在虎年最后一个月,我拿到满意的offer. 日月如梭,白驹过隙,从风轻云淡的夏天到数九严寒的隆冬,转瞬间我学习Java半年了. 不想 ...

最新文章

  1. python2.0正式发布时间_终于来了!!Pyston v2.0 发布,解决 Python 慢速的救星
  2. java form 上传文件_JAVA入门[16]-form表单,上传文件
  3. JavaScript--jquery.min.js文件
  4. tensor torch 构造_详解Pytorch中的网络构造
  5. python在原有的字符串的基础上追加列表构成的字符串,并保持格式一致
  6. 我的Markdown的利器——Markdown Here、有道云笔记、iPic
  7. vbs 窗体文字获取文档_MDI类型窗体设置背景图片
  8. 3Y叔的clusterProfiler-book阅读Chapter 3 Universal enrichment analysis
  9. Java内存区域(运行时数据区)
  10. 电子文档秒变手写文字:这个工具绝了!!
  11. 计算机如何远程控制对方手机,如何远程控制别人的电脑【图解】
  12. DTI在早期脑发育研究中的应用
  13. 计算机无法安装蓝牙驱动,电脑没有蓝牙驱动怎么安装具体方法
  14. 计算机安全模式都进不了系统,win10电脑安全模式都进不去怎么办
  15. HMS华为账号登入全部流程加详解流程机制
  16. 2022年西藏最新八大员之(安全员)模拟试题题库及答案
  17. Linux语言和字体的自定义设置
  18. pd.read_excel出现xlrd.biffh.XLRDError: Excel xlsx file; not supported解决方案
  19. 数据管理和计算机网络,计算机网络数据管理
  20. 转转二手交易平台建设高效率循环经济链

热门文章

  1. 使用ModelMapper的一次踩坑经历
  2. c#开发Windows服务程序指南
  3. 多步骤进度,多个提交的实现
  4. 2021-09-11meituan-011.搭配出售
  5. python——replace函数
  6. 长江流域取水工程核查登记工作居然采用的是表格控件SpreadJS???
  7. Layui弹出层取值
  8. 基于Python的旅游管理系统微信小程序设计与实现毕业论文+项目源码及数据库
  9. Android获取一个月前的日期,Android DatePicker Fragment返回一个月前的日期
  10. Redmine4.2.2安装部署