admin管理员组

文章数量:1794759

Java开发面试中遇到的题

Java开发面试中遇到的题

2022年就要毕业了,但是一不小心错过秋招了。本来理论知识就不行还没项目,所以现状就是大公司别提了,小公司更过不去。现在就是记录一下自己遇到的一些面试题吧,当然这些很多我也不会就是看别人的回答整理的。可能整理的比较乱,因为记不太清楚,见谅。

最简单也是最常见的问题equals和==的区别 首先,equals 是方法,而 = = 是操作符。 其次,= = 对于基本类型来说是值比较,对于引用类型来说是比较的是引用,equals 默认情况下是引用比较。 int和integer的区别 Integer是int的包装类,int则是java的一种基本数据类型 Integer变量必须实例化后才能使用,而int变量不需要 Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 Integer的默认值是null,int的默认值是0 原创发布php中文网 java常用的集合,它们之间的区别 list、set、map list和set有相同的父类,所以大致相同。list可以重复,set不可以重复。 map采用键值对的方式存储,键不可以重复,值可以重复。 list和set运用广泛,map用处小点。 Arraylist和Linklist的区别 ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构 增删操作时,Linklist更好只需要对指针进行修改即可,Arraylist要移动数据来填补被删除的对象的空间 随机访问get和set,ArrayList更好可以随机定位,LinkedList要移动指针一步一步的移动到节点处 java的所有类的父类是什么 Object类 Object的方法 clone():另存一个当前存在的对象 hashCode():获取对象的哈希值 toString():返回一个String对象,用来标识自己 getClass():返回一个Class对象 wait():让当前线程失去操作权限,当前线程进入等待序列 notify():随机通知一个持有对象的锁的线程获取操作权限 notifyAll():通知所有持有对象的锁的线程获取操作权限 final 在 java 中的作用 final 修饰的类叫最终类,该类不能被继承 final 修饰的方法不能被重写 final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改 数据库事务的四大特性 原子性、一致性、持久性、隔离性 数据库事务隔离性的隔离级别 读未提交、读已提交、可重复读、串行化 我个人感觉就是每提升一级就解决前面的问题。 数据库事务的特性参考地址 索引的优缺点 优点 加快数据的检索速度 唯一性索引保证数据库表中每一行数据的唯一性 加速表和表之间的连接 可以显著减少查询中分组和排序的时间 缺点 索引需要占物理空间 更新数据速度慢,降低了数据的维护速度 常见的索引 普通索引:最基本的索引 全文索引:解决针对文本的模糊查询效率较低的问题 唯一索引: 列值唯一,可以有null 主键索引:列值唯一,不可以有null,表中只有一个 组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并 索引最左前缀问题 如果对三个字段建立联合索引,如果第二个字段没有使用索引,第三个字段也使用不到索引了 索引的参考地址 线程的创建方式 继承Thread类 实现Runnable接口 使用Callable和Future 使用线程池 线程和进程的区别 进程是操作系统资源调度的基本单位,线程是任务的调度执行的基本单位 线程共享本进程的地址空间,而进程之间是独立的地址空间 何时使用多进程,何时使用多线程) 对资源的管理和保护要求高,不限制开销和效率时,使用多进程。(钱多要求高用多进程) 要求效率高,频繁切换时,资源的保护管理要求不是很高时,使用多线程。 JVM生命周期 创建阶段(Creation)、应用阶段(Using)、不可视阶段(Invisible)、不可到达阶段(Unreachable)、可收集阶段(Collected)、终结阶段(Finalized)与释放阶段(Free) spring bean生命周期 实例化、属性填充、初始化和销毁 注入bean的方法 在XML中配置:属性注入(通过set方法)、构造函数注入和工厂方法注入 注解注入:@Autowired、@Resource、@Required ssm框架 ssm框架原理是:将Spring、SpringMVC、MyBatis整合在一起 SpringMVC的生命周期 发起请求到前端控制器(DispatcherServlet) 前端控制器请求HandlerMapping(处理器映射器)查找 Handler可以根据xml配置、注解进行查找 处理器映射器HandlerMapping向前端控制器返回Handler 前端控制器调用处理器适配器去执行Handler 处理器适配器去执行Handler Handler执行完成给适配器返回ModelAndView 处理器适配器向前端控制器返回ModelAndView,ModelAndView是springmvc框架的一个底层对象,包括 Model和view 前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp) 视图解析器向前端控制器返回View 前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域 前端控制器向用户响应结果 springMVC的生命周期 mybatis特点 简单易学、减少sql与程序代码的耦合、提供映射标签,支持对象与数据库的orm字段关系映射、提供对象关系映射标签,支持对象关系组建维护、提供xml标签,支持编写动态sql。 mybatis流程 初始化、 接收调用请求、处理调用请求、返回处理结果将最终的处理结果返回

这些问题比较杂乱也可能不是很难,主要是因为我基础很差,问我基本都不太会,所以也没在面试中坚持太久,把这些整理下其实主要是梳理一下,然后希望下次面试成功吧! 暂时不打算更新了,虽然本来内容就少。就是今天面试官指点了一下,我也终于不打算继续面试碰运气了,打算春招前努力学学吧,那就祝看到的大家面试成功!

本文标签: java