news 2026/4/18 2:02:38

面试 Java 基础八股文十问十答第七期

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
面试 Java 基础八股文十问十答第七期

面试 Java 基础八股文十问十答第七期

作者:程序员小白条,个人博客

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

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

1)Tomcat 是什么?

Tomcat 是一个开源的、轻量级的应用服务器,是Apache软件基金会的一个项目。它实现了Java Servlet、JavaServer Pages (JSP)、WebSocket等JavaEE相关规范,可以作为一个Web服务器运行Java Web应用程序。

2)Tomcat 的缺省端口是多少,怎么修改

Tomcat的缺省端口是8080。可以通过修改Tomcat的配置文件server.xml来修改默认端口。在server.xml中找到<Connector>元素,修改其port属性的值即可。

3)tomcat 有哪几种 Connector 运行模式(优化)?

Tomcat有两种Connector运行模式:BIO模式和NIO模式。BIO模式使用传统的阻塞I/O方式处理请求,而NIO模式使用Java NIO库实现非阻塞I/O方式处理请求,可以提供更高的并发性能。

4)Tomcat 有几种部署方式?

Tomcat有两种部署方式:独立部署和嵌入式部署。独立部署是将Tomcat作为一个独立的应用服务器运行,通过配置和部署WAR文件来发布Web应用。嵌入式部署是将Tomcat嵌入到其他Java应用程序中,通过编程方式进行配置和部署Web应用。

5)tomcat 容器是如何创建 servlet 类实例?用到了什么原理?

Tomcat容器在创建servlet类实例时,使用了Java的反射机制。当Tomcat接收到一个请求时,会解析请求并找到对应的servlet类,然后使用反射机制创建该servlet类的实例。反射机制允许在运行时动态地加载类、调用类的方法和访问类的属性。这样就可以根据请求动态创建servlet类的实例,实现了灵活的Web应用开发。

6)序列化是什么?

序列化是指将对象转换为字节流的过程,以便在网络传输或者持久化存储时使用。序列化可以将对象的状态保存下来,以便在需要时重新创建对象。

7)Java 序列化与反序列化的实现?

Java序列化与反序列化通过实现Serializable接口来实现。当一个类实现了Serializable接口后,它的对象可以被序列化和反序列化。序列化可以通过将对象写入到输出流中,而反序列化则可以通过从输入流中读取字节流来重新创建对象。

8)Java 的 List

Java的List是一个接口,它是集合框架中的一种有序、可重复的集合。List允许元素按照插入的顺序进行访问,并且可以包含重复的元素。常用的List实现类有ArrayList、LinkedList和Vector。

9)Java 中线程安全的基础数据结构有哪些?

  • Vector:Vector是一个线程安全的动态数组,它的方法都是同步的,可以被多个线程安全地访问。
  • Hashtable:Hashtable是一个线程安全的哈希表,它的方法都是同步的,可以被多个线程安全地访问。
  • ConcurrentHashMap:ConcurrentHashMap是一个线程安全的哈希表,它使用了分段锁的机制,可以支持多个线程的并发访问。
  • CopyOnWriteArrayList:CopyOnWriteArrayList是一个线程安全的动态数组,它使用了写时复制的机制,在修改时会创建一个新的数组,保证了读写的线程安全性。

10)线程不安全会发生什么?

  • 竞态条件:当多个线程同时访问和修改共享数据时,可能会出现不可预测的结果。例如,多个线程同时对一个变量进行自增操作,可能会导致结果不正确。
  • 数据一致性问题:当多个线程同时修改共享数据时,可能会导致数据的不一致。例如,一个线程正在读取一个数据,而另一个线程正在修改该数据,可能会导致读取到的数据不正确。
  • 死锁:当多个线程同时竞争多个资源,并且每个线程都在等待其他线程释放资源时,可能会导致死锁的发生,使得所有线程都无法继续执行。
  • 性能下降:线程不安全的代码可能需要使用同步机制来保证线程安全,这会带来额外的开销,降低程序的性能。

前后端项目 Gitee & Github 累计 3000+ Star,10W+浏览量!⭐点赞⭐收藏⭐不迷路!⭐

智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend

智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend

GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:32:39

017-RSA:贝壳网登录(参数password)

案例地址&#xff1a;贝壳网登录 找加密参数加密位置 这里有四个密文&#xff0c;但是不是所有密文都需要js逆向&#xff08;不是所有参数都是js代码中的&#xff09;&#xff1a; 我们可以先清空所有接口数据然后开着控制台重新刷新网页然后到我们要的接口触发&#xff0c;说…

作者头像 李华
网站建设 2026/4/17 14:40:02

快速理解USB-Blaster驱动在Quartus中的配置流程

从零搞定USB-Blaster&#xff1a;让Quartus顺利识别你的FPGA下载器你有没有遇到过这样的场景&#xff1f;辛辛苦苦写完Verilog代码&#xff0c;综合布局布线全部通过&#xff0c;时序也收敛了——终于可以烧进板子验证功能了。结果打开Quartus Programmer&#xff0c;点击“Har…

作者头像 李华
网站建设 2026/4/16 22:44:06

Gerber文件转PCB:新手必看反向流程

从Gerber到PCB&#xff1a;逆向工程实战全解析你有没有遇到过这样的情况&#xff1f;手头有一块老旧的电路板&#xff0c;设备还在用&#xff0c;但原厂早已停产&#xff0c;资料也无从查找。想修——没图纸&#xff1b;想复制——没源文件。这时候&#xff0c;如果能从这块板子…

作者头像 李华
网站建设 2026/4/18 1:33:12

洛谷 P5143 攀爬者 - 详细解题思路

题目蒟蒻的解题步骤第一步&#xff1a;理解核心需求这本质上是一个排序问题。既然要按照高度爬&#xff0c;那就必须先把所有点按z坐标排序。但有个细节要注意——如果两个点高度一样咋办&#xff1f;题目没说&#xff0c;我就自己定了规则&#xff1a;z相同看y&#xff0c;y相…

作者头像 李华
网站建设 2026/4/18 0:10:50

mptools v8.0日志导出与分析操作指南

mptools v8.0日志导出与分析实战指南&#xff1a;从采集到洞察的完整闭环你有没有遇到过这样的场景&#xff1f;系统突然告警&#xff0c;服务无响应&#xff0c;而你面对几十台设备的日志文件束手无策——不知道该看哪个、从哪查起。手动翻日志像大海捞针&#xff0c;脚本拼接…

作者头像 李华