做Java开发7年,今年9个月时间圆梦饿了么P7
前言
工作拧螺丝,面试造火箭。我想这是每个程序员比较头疼的事情吧!但是,又必须要经历一个面试流程,尤其是摸不清面试官问的问题,导致面试的时候不知道如何回答。
本文是工作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开发7年,今年9个月时间圆梦饿了么P7的更多相关文章
- 所有做java开发的都是些垃圾
所有做java开发的都是些垃圾,再垃圾的框架,只要有人用,对java程序员来说那就是高性能,高可用,解耦的,非常优秀的一款框架.属于吃屎都吃的津津有味.java里的框架都是垃圾,连一个不错的都没有.比 ...
- java突破------一撸到底(做Java开发,遇到瓶颈是保持现状还是寻求突破?)
java突破------一撸到底(做Java开发,遇到瓶颈是保持现状还是寻求突破?) 很多人做Java开发2.3年之后,都会觉得自己遇到了瓶颈.什么都会又什么都不会,如何改变困境,为什么很多人写了7. ...
- 使用Eclipse-Maven-git做Java开发(3)--Eclipse的安装和配
使用Eclipse-Maven-git做Java开发(3)--Eclipse的安装和配 https://my.oschina.net/songxinqiang/blog/474530
- 大学同学做Java开发比我多5K,八年老Android只会crud该转Java吗?
最近在网上看到这样一个帖子: 做了八年Android开发,感觉这块做着也挺没意思,日常工作就是做一些架构优化,质量数据监控,改一改构建脚本,最主要的是业务负责人没有一个是做客户端的,都是后端的人. 最 ...
- 转载:做Java开发这一年 (火龙果软件)
转载:http://www.uml.org.cn/success/201410205.asp 从去年到现在,从.NET转向Java开发(只是因为项目原因,绝对与平台好坏没有关系)差不多有一年的时间了. ...
- 一个老牌程序员说:做Java开发,怎么可以不会这 20 种类库和 API
- 为什么做java开发的公司需要那么多程序员?
注:文章转载自知乎 透过现象看本质. Java是企业应用市场的王者,如果一家非互联网公司用Java,那么十有八九是做企业应用的. 所以,这个问题本质上是:为什么做企业应用的公司需要那么多Java程序员 ...
- 做JAVA开发的同学一定遇到过的爆表问题,看这里解决
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由净地发表于云+社区专栏 记一次Java线上服务器CPU过载问题的排查过程,详解排查过程中用到的Java性能监测工具:jvisualvm ...
- 这份SpringMVC执行原理笔记,建议做java开发的好好看看,总结的很详细!
什么是SpringMVC? Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供的web模块,包含了开发Web 应用程 ...
随机推荐
- 【数量技术宅 | Python爬虫系列分享】实时监控股市重大公告的Python爬虫
实时监控股市重大公告的Python爬虫小技巧 精力有限的我们,如何更加有效率地监控信息? 很多时候特别是交易时,我们需要想办法监控一些信息,比如股市的公告.如果现有的软件没有办法实现我们的需求,那么就 ...
- 《Java从入门到失业》第五章:继承与多态(5.1-5.7):继承
5.继承与多态 5.1为什么要继承 最近我儿子迷上了一款吃鸡游戏<香肠派对>,无奈给他买了许多玩具枪,我数了下,有一把狙击枪AWM,一把步枪AK47,一把重机枪加特林(Gatling).假 ...
- Solon详解(十)- 怎么用 Solon 开发基于 undertow jsp tld 的项目?
Solon详解系列文章: Solon详解(一)- 快速入门 Solon详解(二)- Solon的核心 Solon详解(三)- Solon的web开发 Solon详解(四)- Solon的事务传播机制 ...
- makefile从入门到入门
makefile文件是用来帮助编译和管理C++项目代码的,需要配合make命令使用.makefile里也可以执行shell操作,具备一部分.sh脚本的功能. makefile格式 makefile内容 ...
- vue显示后端传递的图片流
一.显示部分(组件我使用的vuetify) <template> <v-container fluid> <v-card width="100%" m ...
- JavaScript打印给定区间年份的闰年
要求: 用户输入需要判断的年份区间,开始年份和结束年份,输出该区间内所有的闰年. 代码实现: function isRunYear(year) { // 是闰年返回true,否则返回false var ...
- ASP。NET Web表单模型,部分呈现和事件
下载EventExample.zip - 41.33 KB 下载EventandAjaxExample.zip - 41.94 KB 介绍 通过参考ASP获得Web应用程序环境及其约束的概述.NET ...
- 从字节码层次看i++和++i
关于的Java的i++和++i的区别,初学者可能会混淆,这时候有经验的同学或同事就会告诉你,++在后,就会立马加值, ++在后则会等会儿再加,所以如果i == 0 ,那么i++ == 0,++i == ...
- 左叶子之和(sum-of-left-leaves)
LeetCode题目--左叶子之和(sum-of-left-leaves) 计算给定二叉树的所有左叶子之和. 示例: 3 / \ 9 20 / \ 15 7 在这个二叉树中,有两个左叶子,分别是 9 ...
- 2020年java全套教程,此套java涵盖了pdf,java源码,项目案例,完整视频约3000G的资源
疫情期间,百无聊赖,是不是需要充电一下,让自己更有竞争力呢?学习java一定要快呦! 废话不多说了,网盘已经爆炸了,把2006年-2020年的全部资料都发给爱学习的你吧, 希望可以改变你的命运,或者是 ...