这些JVM 多线程 网络编程面试大厂必问的Java面试题,你都刷了吗?

2023-05-16

目录

面试常问spring

不同版本的 Spring Framework 有哪些主要功能?

Spring Framework 有哪些不同的功能?

什么是 Spring 配置文件?

使用 Spring 有哪些方式?

可以通过多少种方式完成依赖注入?

spring bean 容器的生命周期是什么样的?

什么是 spring 装配

自动装配有什么局限?

spring DAO 有什么用?

列举 spring 支持的事务管理类型

描述一下 DispatcherServlet 的工作流程

解释不同方式的自动装配

你可以在 Spring 中注入一个 null 和一个空字符串吗?

在 Spring 框架中如何更有效地使用 JDBC?

在 Spring 框架中如何更有效地使用 JDBC?

JVM常见面试题集锦

什么情况下会发生栈内存溢出。

JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么 要分为Eden和Survivor?

你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包 括原理,流程,优缺点:

JVM内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存:

简单说说你了解的类加载器,可以打破双亲委派么,怎么打破:

怎么打出线程栈信息:

强引用、软引用、弱引用、虚引用的区别?

 多线程面试题集锦

在了解不同的IO之前先了解:同步与异步,阻塞与非阻塞的区别

什么是BIO?

什么是AIO ?

什什么Netty?

BIO和NIO、AIO的区别?

什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什 么区别?在实现序列化接口是时候一般要生成一个serialVersionUID字段,它叫做什么,一般有什么用?

什么是内核空间?

Java中流类的超类主要有那些?

为什么图片、视频、音乐、文件等 都是要字节流来读取?

BIO编程会出现什么问题?

多线程解决BIO编程会出现的问题?

  网络编程面试题 

什么是网络编程?

网络协议是什么?

为什么要对网络协议分层 ?

建立连接可以两次握手吗?为什么?

如果已经建立了连接,但客户端出现了故障怎么办?

为什么不能把服务器发送的ACK和FIN合并起来,变成三次挥手(CLOSE_WAIT状态意义是什 么)?

什么是Http协议?

什么是http的请求体?

一次完整的HTTP请求所经历几个步骤?

常用HTTP状态码是怎么分类的,有哪些常见的状态码?

cookie和session对于HTTP有什么用?

什么是TCP/IP和UDP?

TCP和UDP的应用场景:

运行在TCP 或UDP的应用层协议分析:

什么是ARP协议 (Address Resolution Protocol)?

用现实理解三次握手的具体细节 :

来自小编的福利

喜欢小编的文章可以点赞三连哦


前言

说实话,我只能隐约想起并发、JVM、分布式、TCP/IP协议这些个关键字,具体的问题真的是几乎都没记住。而且就算我记住了,也告诉你了,你也背会了,但我觉得,在面试中,你被问到一模一样问题的可能性依然很小。

甚至,就算你运气好被问到了,你也照着背下来了,也不一定就能对你的面试起到正面的作用,因为面试官万一多问一句,你可能就露馅了,那还不如干脆点说不会更好。

对于能有3-5年经验的这部分人中,每个人的经历又都不同,所擅长的点也不一样,因此这就会导致每个人的问题和范围都不太一样。

很少说有哪个知名的互联网公司,比如BAT、京东、360、搜狐、网易等这些公司,其社招面试还有固定的问题和模式,让你可以像应届生面试一样,在面试前靠临时抱佛脚度过这一关。

大部分公司在社招的时候,不光是阿里,其它公司也都一样(因为我在一年多前也参加过很多其它知名互联网公司的面试,基本上都分为两个阶段的提问。

  • 第一个阶段是主语言本身以及它的高级特性。

  • 第二个阶段是讲述自己的项目,并在中间穿插着问题。

接下来小编分享一些精选的面试题供大家参考参考

面试常问spring

还在机械地打代码?只知道如何使用,却不知道做了什么,那么你注定只能是一个码农。Spring 框架几乎集成一半 Javaweb 开发的江山,但是你只知道如何写,不知道为什么要这么写,也不知道要如何优化。小编下面整理了一些spring面试相关的面试你,你可以收藏好好看看能不能都答出来!

  • 不同版本的 Spring Framework 有哪些主要功能?

  • Spring Framework 有哪些不同的功能?

  • 什么是 Spring 配置文件?

  • 使用 Spring 有哪些方式?

  • 可以通过多少种方式完成依赖注入?

  • spring bean 容器的生命周期是什么样的?

  • 什么是 spring 装配

  • 自动装配有什么局限?

  • spring DAO 有什么用?

  • 列举 spring 支持的事务管理类型

  • 描述一下 DispatcherServlet 的工作流程

  • 解释不同方式的自动装配

  • 你可以在 Spring 中注入一个 null 和一个空字符串吗?

  • Spring 框架中如何更有效地使用 JDBC?

  • Spring 框架中如何更有效地使用 JDBC?

 
上述面试题已经整理成文档,有需要的可以  点击进入 查看领取资料。

JVM常见面试题集锦

相信越来越多的同学在面试中都会被问过有没有 JVM 调优的问题,随着 IT人员越来越多,面试也越来越难,JVM 的知识无疑是难点之一,如果能够回答上相关问题,肯定能大大提高面试的通过率。不少同学肯定也看过 JVM 相关的文章、书籍,但是在实际工作中可能不会触碰到这一块,所以小编也会结合一些常见的面试题来给大家分析和总结。

  • 什么情况下会发生栈内存溢出。

思路: 描述栈定义,再描述为什么会溢出,再说明一下相关配置参数, OK 的话可以给面试官手写是一 个栈溢出的demo
我的答案:
栈是线程私有的,他的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储 局部变量表,操作数栈,动态链接,方法出口等信息。局部变量表又包含基本数据类型,对象引用类型 如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflflowError异常,方法递 归调用产生这种结果。 如果Java虚拟机栈可以动态扩展,并且扩展的动作已经尝试过,但是无法申请到足够的内存去完成 扩展或者在新建立线程的时候没有足够的内存去创建对应的虚拟机栈,那么Java 虚拟机将抛出一 个OutOfMemory 异常。 ( 线程启动过多 ) 参数 -Xss 去调整 JVM 栈的大小
 
  • JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么 要分为EdenSurvivor?

思路: 先讲一下 JAVA 堆,新生代的划分,再谈谈它们之间的转化,相互之间一些参数的配置(如:
XX:NewRatio –XX:SurvivorRatio 等),再解释为什么要这样划分,最好加一点自己的理解。
我的答案:
1 )共享内存区划分
共享内存区 = 持久带 +
持久带 = 方法区 + 其他
Java = 老年代 + 新生代
新生代 = Eden + S0 + S1
2 )一些参数的配置
默认的,新生代 ( Young ) 与老年代 ( Old ) 的比例的值为 1:2 ,可以通过参数 –XX:NewRatio 配置。 默认的,Edem : from : to = 8 : 1 : 1 ( 可以通过参数 –XX:SurvivorRatio 来设定 ) Survivor区中的对象被复制次数为 15( 对应虚拟机参数 -XX:+MaxTenuringThreshold)
3) 为什么要分为 Eden Survivor? 为什么要设置两个 Survivor 区?
如果没有 Survivor Eden 区每进行一次 Minor GC ,存活的对象就会被送到老年代。老年代很快被 填满,触发Major GC. 老年代的内存空间远大于新生代,进行一次 Full GC 消耗的时间比 Minor GC 长得多, 所以需要分为 Eden Survivor 。 Survivor的存在意义,就是减少被送到老年代的对象,进而减少 Full GC 的发生, Survivor 的预筛选 保证,只有经历16 Minor GC 还能在新生代中存活的对象,才会被送到老年代。 设置两个Survivor 区最大的好处就是解决了碎片化,刚刚新建的对象在 Eden 中,经历一次 MinorGC, Eden 中的存活对象就会被移动到第一块 survivor space S0 Eden 被清空;等 Eden 区再满 了,就再触发一次Minor GC Eden S0 中的存活对象又会被复制送入第二块 survivor space S1(这个过程非常重要,因为这种复制算法保证了 S1 中来自 S0 Eden 两部分的存活对象占用连续的内存空间,避免了碎片化的发生)
 
  • 你知道哪几种垃圾收集器,各自的优缺点,重点讲下cmsG1,包 括原理,流程,优缺点:

  • JVM内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存:

  • 简单说说你了解的类加载器,可以打破双亲委派么,怎么打破:

  • 怎么打出线程栈信息:

  • 强引用、软引用、弱引用、虚引用的区别?

 多线程面试题集锦

Java I/O 是以流为基础进行数据的输入输出的,所有数据被串行化 ( 所谓串行化就是数据要按顺序进行输入输出) 写入输出流。简单来说就是 java 通过 io 流方式和外部设备进行交互。 在Java 类库中, IO 部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据传输流 ,字符串流,对象流等

  • 在了解不同的IO之前先了解:同步与异步,阻塞与非阻塞的区别

  • 什么是BIO?

  • 什么是AIO ?

  • 什什么Netty?

  • BIONIOAIO的区别?

  • 什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什 么区别?在实现序列化接口是时候一般要生成一个serialVersionUID字段,它叫做什么,一般有什么用?

  • 什么是内核空间?

  • Java中流类的超类主要有那些?

  • 为什么图片、视频、音乐、文件等 都是要字节流来读取?

    
  • BIO编程会出现什么问题?

  • 多线程解决BIO编程会出现的问题?

  网络编程面试题 

  • 什么是网络编程?

  • 网络协议是什么?

  • 为什么要对网络协议分层

  • 建立连接可以两次握手吗?为什么?

  • 如果已经建立了连接,但客户端出现了故障怎么办?

  • 为什么不能把服务器发送的ACKFIN合并起来,变成三次挥手(CLOSE_WAIT状态意义是什 么)?

  • 什么是Http协议?

  • 什么是http的请求体?

  • 一次完整的HTTP请求所经历几个步骤?

  • 常用HTTP状态码是怎么分类的,有哪些常见的状态码?

  • cookiesession对于HTTP有什么用?

  • 什么是TCP/IPUDP?

  • TCPUDP的应用场景:

  • 运行在TCP UDP的应用层协议分析:

  • 什么是ARP协议 (Address Resolution Protocol)

  • 用现实理解三次握手的具体细节

来自小编的福利

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料(spring、mybatis、jvm,Zookeeper,分布式等)和 2020最新阿里面试真题,有40多套PDF文档面试题

资料获取方式:关注小编  点我 点我 免费领取 获取上述资料

部分资料图片:

喜欢小编的文章可以点赞三连哦

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这些JVM 多线程 网络编程面试大厂必问的Java面试题,你都刷了吗? 的相关文章

随机推荐

  • Matlab-数字图像处理-基础实验-图片展缩(最近邻、双线性插值)

    Matlab 数字图像处理 基础实验 图片展缩 xff08 使用最近邻 双线性插值 xff09 Problem Statement 1 使用MATLAB开发环境来实现缩放转换 开发一个函数 xff0c 可以实现通过最近邻插值的图像缩放 xf
  • grub.cfg使用说明

    grub 参数设置参考说明 一 grub cfg详解 说明 xff1a grub cfg默认为只读 xff0c 需要个性化配置文件的 xff0c 建议不要直接修改grub cfg xff0c 请参考链接的pdf文档和google文档 set
  • Element-Ui组件(二)Icon 图标

    Element Ui组件 xff08 二 xff09 Icon 图标 本文参考Element官方文档 xff1a http element cn eleme io zh CN component 基本用法 Element内置丰富的图标库 x
  • Element-Ui组件(三)Button 按钮

    Element Ui组件 xff08 三 xff09 Button 按钮 本文参考Element官方文档 xff1a http element cn eleme io zh CN component 基础用法 el button经常与ico
  • Element-Ui组件(四)Link 文字链接

    Element Ui组件 xff08 四 xff09 Link 文字链接 本文参考Element官方文档 xff1a http element cn eleme io zh CN component 基础用法 el link比较简单 xff
  • px4 pixhawk v2 使用flash isp烧写固件

    为啥不用qgc xff0c 因为使用数据线连接飞控与电脑后 xff0c 电脑无法检测到飞控板的端口存在的 xff0c 应该是某次烧写造成飞控成了板砖 xff0c 只能从源头解决问题 正常在使用pix4中 xff0c bootloader是在
  • 安装FlightPlot+错误解决办法

    安装jdk xff1a sudo apt get install openjdk 7 jdk 安装ant xff1a sudo apt get install ant 下载FlightPlot xff1a git clone recursi
  • 基于单目的Opencv的线径、像素尺寸、线宽、目标尺寸计算

    引言 想法起源于控制3d打印机初始线径 xff0c 能够监控平台首层高度是否合理 经过实际测量 xff0c 不同的高度 xff0c 精度需求为0 01mm xff0c 即程序应该能够区分之分辨率 96 96 96 python load e
  • 使用inception模型进行迁移学习

    迁移学习相关知识可以参考 xff1a 庄福振 罗平 何清 等 迁移学习研究进展 J 软件学报 2015 26 1 26 39 本文涉及内容主要有 xff1a 1 如何使用现有模型进行分类 2 如何得到样本的transfer values 3
  • tensorflow 模型保存与加载

    http cv tricks com tensorflow tutorial save restore tensorflow models quick complete tutorial 什么是TF模型 xff1a 在训练一个神经网络模型后
  • docker配置proxy

    Control and configure Docker with systemd Estimated reading time 3 minutes Many Linux distributions use systemd to start
  • Nginx部署vue项目配置

    Nginx部署vue项目配置 记录一下 Nginx部署vue项目 user root worker processes 1 error log home hongtu web logs error log error log logs er
  • 一个脚本打比赛之SMP WEIBO 2016

    一个脚本打比赛之SMP WEIBO 2016 前言 xff1a 如何对用户进行精准画像是社交网络分析的基础问题 本文就如何对weibo用户网络提取特征发表一点小的想法 xff0c 还请尽管拍砖 数据来源 xff1a SMP WEIBO 20
  • SMP_WEIBO_2016 微博用户画像 可视化(未完成)

    这个数据集标注的用户有4467位 xff0c 通过筛选 xff0c 将网络范围缩小到标注用户以及与标注用户具有关注关系的用户 xff0c 筛选后网络节点数量为445150个节点 首先观察网络的形态 工具 xff1a gephi 节点颜色 x
  • aircrack-ng进行WPA2无线网络密码强度测试使用心得

    硬件 xff1a 电脑 树莓派 ALFA AWUS036NH 某宝140元 软件 xff1a 按照http kamilslab com 2017 04 10 how to crack wpa2 wifi networks using the
  • win7安装dlib

    只需要conda环境 xff0c 完全不需要vs xff0c cmake xff0c 气人 python版本 xff1a 3 6 方法一 xff1a xff08 容易与tensorflow xff0c matplotlib等冲突 xff09
  • 随便看看数据科学比赛的感慨

    biendata中的比赛 xff1a 感觉比赛难点并没有增加 xff0c 更多的是工程化的问题 各个比赛仍然是一个学习实践的好机会 xff0c 可以快速的了解当前新的方向 xff0c 在某一个领域内学习非常多的解决方案 很想继续参加 xff
  • 嵌入式和单片机的关系

    华清远见的老师说 xff1a 单片机属于嵌入式的一种 网友说 单片机是典型的嵌入式系统 波哥说 xff1a 以前的单片机都是裸机 xff0c 没有操作系统 现在的单片机都安装了操作系统 嵌入式操作系统包括Linux和等等
  • 电子版证件照怎么制作并改大小

    在我们平时的生活中 xff0c 经常会使用到电子版证件照 xff0c 比如一些考试报名或者电子简历制作等 我们都知道 xff0c 不同用途的证件照尺寸也各有不同 xff0c 那么除了去照相馆重新拍摄外 xff0c 可不可以自己修改尺寸大小呢
  • 这些JVM 多线程 网络编程面试大厂必问的Java面试题,你都刷了吗?

    目录 面试常问spring 不同版本的 Spring Framework 有哪些主要功能 xff1f Spring Framework 有哪些不同的功能 xff1f 什么是 Spring 配置文件 xff1f 使用 Spring 有哪些方式