Java实习生面试题汇总

Java实习生面试题汇总大三学生实习面试题真题汇总

Java实习生面试题汇总

简介

本人是二本大三学生,下半年大四。暑假在上海这边找实习工作,面了几家公司,所问到的问题记录在下面。

因为是在校生,没任何实习经历,一般找我面试的都是小公司,一般问的比较简单,甚至还有看了简历叫我直接去上班不用面试的(因为在学校获得了一些竞赛的证书而且没毕业,面试官问也就是CRUD的工作觉得没意思)。一般过去都是先做一套题目,或者叫你写几个接口,然后再开始面试问些问题。问的问题Java基础比较多。

主要提供题目,答案仅供参考。

Java基础

String类可以被继承吗

不能,String类被final修饰。

String类有哪些方法?

valueOf(),substring(),indexOf(),startsWith(),split(),toCharArray(),equals(),toUpperCase(),toLowerCase()…

StringBulider、StringBuffer、String的区别

String底层数组实现,拼接字符串很慢并且耗性能。

StringBulider与StringBuffer效率很高,StringBulider>StringBuffer>String

StringBulider非线程安全,StringBuffer线程安全

final关键字作用

用final修饰一个类的时候,表示这个类不能被继承,要注意的是被final修饰的类,它的成员方法也都会被隐式的指定为final方法。

用final修饰一个方法的时候,该方法不能被重写

用final修饰一个变量时,这个变量不能被更改。该变量必须在定义的时候被初始化。如果修饰的成员变量是引用数据类型,表示引用地址不能改变,但是引用所指向的对象的里面的内容还是可以改变的。

Map如何遍历

Map实现类调用entrySet方法获得一个Entry类型的Set,通过遍历这个Set集合获取Entry调用getKey或者getValue获取值

HashMap底层是如何实现的?

数组加链表(1.8以前),1.8之后添加了红黑树,基于hash表的map接口实现,

阈值(边界值)> 8 并且桶位数(数组长度)大于 64,才将链表转换为红黑树,变为红黑树的目的是为了高效的查询。

Map的put方法的是怎么实现的?

通过调用key的hashCode方法获取哈希值找到存放的数组下标,通过遍历此位置的key与插入的key通过equals比较,如果已存在则替换值,不存在则插入进来。

Java里面锁的实现方式有哪些?

synchronized关键字和Lock接口的实现类

Java实现多线程的方法

实现Runable接口、继承Thread类

是否用过线程池?怎么使用的?

JavaWeb

Servlet的生命周期

加载类—>实例化(为对象分配空间)—>初始化(为对象的属性赋值)—>请求响应(服务阶段)—>销毁

Jsp和Servlet的区别

  • Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。
  • 而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。
  • JSP侧重于视图,Servlet主要用于控制逻辑
  • Servlet更多的是类似于一个Controller,用来做控制。

Java框架进阶

SpringMVC的执行流程是怎样的?

img

@RequestMapping是怎么使用的?

在Controller类的方法下使用这个注解,作⽤就是映射URL路径,将http的请求地址映射到控制器。

返回值交给视图解析器解析,如果配合@ResponseBody则返回JSON或者XML数据

SpringBoot如何使用事务?

使用@Transactional注解,可指定隔离等级、传播等级

Kafka是什么?

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。

数据库

MySQL的隔离级别有哪些?

Isolate 隔离级别 * 脏读 不可重复读 幻(虚)读 READ UNCOMMITTED 有 有 有 (读未提交) READ COMMITTED. 无 有 有 (读已提交) REPEATABLE READ 无 无 有 (可重复读) SERIALIZABLE 无 无 无 (串行化 ) 

说说MySQL索引优化

MySQL里面是怎么排序的?

使用order by
<关键字>
asc/desc 默认asc

数据库三范式具体是什么?

第一范式:每个列都不可以再拆分。

第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。

第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。

Redis的数据类型有哪些?

Redis五种数据类型分别是string(字符串),hash(哈希),list(列表),set(集合)及sortset(有序集合

缓存雪崩有了解过吗?

短期内,大量的key过期,导致缓存失效,数据库访问量突增增导致崩溃。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211205.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午10:57
下一篇 2026年3月18日 下午10:58


相关推荐

  • 简单介绍export default,module.exports与import,require的区别联系

    简单介绍export default,module.exports与import,require的区别联系

    2021年7月4日
    101
  • 即梦AI是什么?从零开始掌握即梦AI:功能详解、使用指南与竞品对比

    即梦AI是什么?从零开始掌握即梦AI:功能详解、使用指南与竞品对比

    2026年3月13日
    2
  • css增加横着滚动条_CSS 设置滚动条样式的实现「建议收藏」

    webkit滚动条样式重置1、scrollbar包含scrollbarbuttons和一个track。track进一步细分为trackpieces和thumb。tracepieces为thumb的上半部分和半下部分。2、scrollbarcorner为横向和竖向的交叉角区域3、resize用来设置滚动条的交汇处上用于拖动调整元素大小的小控件组成结构图如下:一旦发现滚动条的自定义样式,浏览器…

    2022年4月8日
    704
  • 解决:Navicat远程连接mysql失败「建议收藏」

    解决:Navicat远程连接mysql失败「建议收藏」一:修改mysql配置文件,允许远程连接sudovi/etc/mysql/mysql.conf.d/mysqld.cnf将bind-address=127.0.0.1注释二:登录mysql,运行命令grantallon.to用户名@”%”identifiedby“密码”;flushprivileges;三:重启mysqlservicemysqlrestart

    2022年10月14日
    4
  • 关于sstream的灵活使用

    关于sstream的灵活使用问题有10000个队伍参加。经过工作人员认真负责的统计,本来已经统计好了这一万个队伍的分数和排名,并按照排名从高到低依次进行了编号(从1到10000)但是由于一个非常偶然的因素,导致其中三个编号的数据丢失,而且剩余编号的顺序也全被打乱了。你需要编写一个程序,根据还保留的统计数据,来判断哪些编号的数据丢失了,并将这些编号按照从小到大的顺序重新拼接为一个新数字,然后计算这个新数字除以11的余数。如…

    2022年6月3日
    36
  • QSettings 介绍

    QSettings 介绍QSettings 类提供了持久的平台无关的应用程序设置 用户通常期望应用程序记住它的设置 窗口大小 位置等 所有会话 这些信息通常存储在 Windows 系统注册表 OSX 和 iOS 的属性列表文件中 在 Unix 系统中 在缺乏标准的情况下 许多应用程序 包括 KDE 应用程序 使用 INI 文本文件 QSettings 围绕这些抽象技术 使我们能够以便携的方式保存和恢复应用程序设置 它还支持自定义存储格式 QSettin

    2026年3月26日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号