面试 Java 基础八股文第五期

面试 Java 基础八股文第五期

作者:程序员小白条,编程日记

相信看了本文后,对你的面试是有一定帮助的!

⭐点赞⭐收藏⭐不迷路!⭐

1)常见的 Exception 有哪些?

常见的 Exception 包括:

NullPointerException:当引用类型变量为 null 时,调用其方法或访问其属性会抛出该异常。 ArrayIndexOutOfBoundsException:当访问数组越界时抛出该异常。 ClassCastException:当尝试将一个对象强制转换为不兼容的类型时抛出该异常。 ArithmeticException:当发生数学运算异常,如除以零时抛出该异常。 IOException:当发生输入输出异常时抛出该异常。 FileNotFoundException:当尝试访问不存在的文件时抛出该异常。

2)Error 和 Exception 的区别?

Error 和 Exception 都是 Java 中的异常类,但它们有以下区别:

Error 是指由于 JVM 内部错误或系统错误导致的异常,一般无法通过代码处理,比如 OutOfMemoryError、StackOverflowError,它们表示程序无法继续执行。 Exception 是指由于程序错误或异常情况导致的异常,可以通过代码进行处理,比如 NullPointerException、ArrayIndexOutOfBoundsException。

3)运行时异常和非运行时异常介绍一下

运行时异常(RuntimeException):是指在程序运行期间可能出现的异常,不需要显式地捕获或声明,编译器不会强制要求进行处理。常见的运行时异常包括 NullPointerException、ArrayIndexOutOfBoundsException、ArithmeticException。 非运行时异常(非RuntimeException):是指在程序运行期间可能出现的异常,必须显式地捕获或声明,编译器会强制要求进行处理。常见的非运行时异常包括 IOException、ClassNotFoundException、SQLException。

4)throw 和 throws 的区别?

throw 关键字用于抛出一个异常对象,可以在方法内部使用。 throws 关键字用于声明一个方法可能抛出的异常,用于告知调用者需要处理该异常,可以在方法声明处使用。

5)守护线程是什么?

守护线程(Daemon Thread)是一种在后台运行的线程,它的任务是为其他线程提供服务。当所有的非守护线程结束时,守护线程会自动结束。守护线程通常用于执行一些后台任务,如垃圾回收、自动保存等。可以通过设置线程的 setDaemon(true) 方法将线程设置为守护线程。

1)什么是跨域?

跨域问题是指在浏览器中,由于同源策略的限制,不同域名、不同端口或不同协议之间的页面无法直接进行数据交互。换句话说,当一个页面的脚本试图访问另一个域的资源时,就会出现跨域问题。

2)跨域问题怎么解决?

1)JSONP(JSON with Padding):利用<script>标签的src属性不受同源策略限制的特性,通过动态创建<script>标签,将要获取的数据作为参数传递给服务器,服务器将数据包装在回调函数中返回给客户端。

2)CORS(Cross-Origin Resource Sharing):通过在服务器端设置响应头,允许指定的域名访问资源。服务器可以在响应头中添加Access-Control-Allow-Origin字段,指定允许访问的域名。

3)代理服务器:在同源策略下,服务器端没有跨域限制,可以通过在服务器端设置代理,将客户端的请求转发到目标域名上,然后将响应返回给客户端。

3)设计接口要注意什么?

1)接口的设计要符合RESTful风格,合理命名和划分资源,使用HTTP动词表示对资源的操作。

2)接口的参数要合理设计,遵循最小化原则,只传递必要的参数,避免冗余和不必要的数据传输。

3)接口的返回结果要统一规范,使用合适的HTTP状态码表示请求的结果,返回的数据格式要统一,建议使用JSON格式。

4)过滤器和拦截器的区别?

过滤器和拦截器是Web开发中常用的两种组件,它们的作用是在请求到达控制器之前或之后进行处理。

过滤器是在Servlet容器中定义的组件,可以对请求进行预处理和后处理。过滤器可以对请求进行拦截,修改请求或响应的内容,以实现一些通用的功能,如身份验证、日志记录、编码转换等。

拦截器是在Spring框架中定义的组件,它基于AOP(面向切面编程)的思想,可以对请求进行拦截和处理。拦截器可以更加灵活地定义拦截的范围和逻辑,并可以通过注解、注入等方式方便地与其他组件进行集成。

5)对接第三方接口要考虑什么?

1)了解第三方接口的文档和要求,包括接口的URL、请求方法、参数、返回结果等。

2)根据第三方接口的要求,进行接口的鉴权和认证,包括生成签名、获取访问令牌等。

3)处理第三方接口的异常情况,如网络超时、请求失败等,需要进行适当的重试和错误处理。

4)对第三方接口的请求和响应进行合理的日志记录,方便排查问题和追踪数据。

5)考虑第三方接口的并发性和性能,合理设置超时时间和连接池等参数,避免请求阻塞和资源浪费。

学习路线规划、简历辅导、求职指南请私信,感谢对八股文传道之路的持续支持!

#春招##八股文#
八股传道之路 文章被收录于专栏

八股传道之路,定期发发文章,免费!

全部评论

相关推荐

昨天 00:04
已编辑
门头沟学院 Java
约面的挺突然。。狠下心接了1.自我介绍2.讲讲JAVA的反射3.可以继续讲讲AOP,动态代理[&nbsp;因为讲反射不小心吟唱到了例如AOP的动态代理,但是这块记忆的非常不熟,结果磕磕绊绊&nbsp;]4.项目我看你写了AOP和注解,具体怎么实现滑动窗口限流的[&nbsp;梦到什么说什么,吟唱八股发散千万不要散到自己不熟悉的区域&nbsp;]5.也讲讲为什么另一个项目选择令牌桶,具体流程6.&nbsp;OK,讲讲&nbsp;Redis&nbsp;的数据类型?还有吗?就了解这五种嘛[&nbsp;把5个的基础类型从应用对比到历届底层全都吟唱了一遍。一句还有吗直接没力气了,简历就写了理解5种,别的我是真一点没看TT&nbsp;]7.讲讲Redission分布式锁实现8.这个指数退避怎么实现的9.在这里有考虑去保障幂等性嘛10.这里为什么使用指数退避呢?&nbsp;什么时候用均匀重传[已经晕过去了说不了解,刚说了后就意识到,估计应该说指数退避能缓解压力防止下游服务器雪崩之类的]11.ok,那讲讲JMM12.讲讲RocketMQ如何保证的不丢消息13.讲讲RocketMQ延迟消息原理14.讲讲项目Redis实现会话记忆这一块15.如果ai调用function&nbsp;calling出现幻觉,有考虑怎么解决吗?[&nbsp;不了解,面试官说什么接口幂等化,高危操作人工防护,没在听,感觉人已经飞升了TT&nbsp;]16.mcp了解嘛?和function&nbsp;calling有什么区别[&nbsp;依旧不了解,只能说了个前者规范架构抽象解耦,后者耦合高只能算个工具调用]17.AI生成代码的代码质量怎么保障,那平时如何review的呢18.算法。lc215&nbsp;&nbsp;数组中最大第k个元素19.打算考研还是本科就业20.反问1️⃣有哪里不足,有哪些需要提高的部分。[主要说知识广度不够,多刷算法,让我别太紧张]2️⃣部门业务会做什么人生第二次面试。感觉大厂面试官的气场压力很大应该凉了不过这次面试非常锻炼心态,多面试,多面试。
Luxlord:面经太硬核了
点赞 评论 收藏
分享
03-10 16:08
武汉大学 Java
面试时间:2026-3-10面试部门:QQ后台(QQ空间?)面试时间:14:30-15:30面试方式:&nbsp;&nbsp;面呗上来手撕:非Hot100,十进制大数字符串转二进制字符串(取模求余算法)面试(有点不对口,该部门主要用C++/Go)做非web后端个人感觉挺难的,主要是问的都不是准备的哎哎一、基础操作系统:1.操作系统内存分配2.32位机器和64位机器区别(???)3.为什么需要分页,为什么需要分段(???)4.虚拟页表了解吗,干什么的?5.32位机器最大内存(???)计算机网络(悲)1.滑动窗口算法了解吗2.流量控制3.拥塞控制是什么,区别于流量控制4.滑动窗口什么时候更改尺寸(???)二、进入项目(也没咋问具体业务)1.Linux用过吧,常用命令2.Redis自己怎么用(答本地Redis+RedisInsight管理,port:6379)3.Redis集群用过吗(没)4.好我们来聊Redis集群(主从,哨兵,集群)项目怎么选?(???)5.AP架构讲一讲(难啊)6.RAG流程。7.RAG分片怎么做?如何优化8.RAG检索怎么优化,多路召回讲一讲9.RAG的幻觉怎么降低的三、其他问题1、第一次实习?(解释了原因)2.如何保证到岗,base深圳3.平时用什么大模型,不同的效果分析4、反问个人感觉有点非常规,准备的没咋问,冷门408问题有点好久没看了。。。问了面试官业务负责,和对自己评价,面试官建议多看基础。。。5分钟后官网过,等二面邮件中。
奋进的小羊:ai的那些八股去哪看啊,学了springai但是不知道咋背
查看22道真题和解析
点赞 评论 收藏
分享
评论
4
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务