2023年JAVA面试宝典(全网最全未来十年可用)

Posted 赵晓明啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2023年JAVA面试宝典(全网最全未来十年可用)相关的知识,希望对你有一定的参考价值。

基础语法

String 、StringBuilder 、StringBuffer 的区别?

String是只读的字符串,创建了对象后内容是不可被修改的,StringBuilder是单线程使用的,效率比StringBuffer高,StringBuffer是加了锁的,所以线程更加安全.

equals()和==的区别

==号判断的是基本类型的数据是否相等,equals不能比较基本类型,可以比较对象,在我们的自定义类里面如果重写了equals方法的话比较的是数据是否相等,如果没有重写的话调用的是object类的equals方法,比较的是两个对象的地址值.

是否可以继承String类? 为什么用final修饰?

不可以继承String,因为String是被final修饰的类,所以不能被继承,因为用了final修饰,对象的内容才会不可变,为了效率和安全考虑,只有被final修饰才偶遇可能实现字符串池

集合

io流

事务

通信协议

异常

反射

JVM

多线程

JavaWeb

SSM框架(Spring,SpringMvc,Mybatis)

Spring框架

Spring框架指的是Spring Framework,可以提高开发人员的开发效率还有系统的可维护性
Spring 的摸款是:核心容器,数据访问/集成,Web,AOP(面向切面编程),工具,消息和测试模块.

IOC

IOC控制反转这是一种设计思想,就是把对象的创建权交给Spring框架来管理.IOC容器的底层就是一个map类型的键值对,存放的就是各种对象

IOC容器的类型

ClassPathXmlApplicationContext、FileSystemXmlApplicationContext、AnnotationConfigApplicationContext、BeanFactory

ApplicationContext和BeanFactory的区别?

BeanFactory是底层额接口,ApplicationContext是派生的接口,功能更加强大,BeanFactory是懒加载,你用到的时候才会创建对象好处是可以节省内存,当你的内存不够时可以使用这个容器,而ApplicationContext是启动的时候就会加载全部的bean,好处是使用的时候,拿来即用,缺点是启动的时候会比较慢.起始阶段比较耗费内存.

BeanFactory和FactoryBean的区别?

BeanFactory是一个Spring容器,而FactoryBean是一个特殊的Bean,他的作用就是用来创建bean,创建出来的bean会放到容器中去.

Spring中的单例Bean是线程安全的吗?

不是安全的,但是Spring中的Bean是无状态的,也就是说他是不储存数据的,所以从某种情况来说,他是安全的.
有两种解决方法
1.把bean的作用域改为非单例 prototype
2.把共享的变量放入ThreadLocal中,它是线程的私有变量,因为线程之间是隔离的,所以这样也可以解决线程的安全问题.

简单描述下Spring容器中bean的生命周期

1.首先通过设置文件或者注解拿到所有的BeanDefinition,并放到BeanDefinitionMap中
2.从BeanDefinitionMap中拿到bean定义并进行实例化,也就是new一个对象
3.依赖注入,给容器中的bean的属性就行赋值
4.初始化,给属性赋值
5.初始化完成后,bean真正的完成创建,就可以吧bean放到Spring容器中,也就是ConcurrentHashMap中,以后使用的时候直接可以从getBean中来获取bean
6.容器销毁时,bean也会随着销毁

DI

DI就是依赖注入,给容器中的bean的属性赋值就叫做依赖注入

依赖注入的方式

构造器注入和setter注入

AOP

AOP面向切面编程,把公共代码抽取出来,在不改变原始代码的情况下,对代码进行增强或者修改

SpringBoot

SpringCloud

Redis

Mybatis,Mybatis-Plus

mysql

MongoDB

Gateway

Feign

Nacos

Ribbon

Sentinal

ElasticSearch

Kafka

RabbitMQ

JDK1.8新特性

其他

以上是关于2023年JAVA面试宝典(全网最全未来十年可用)的主要内容,如果未能解决你的问题,请参考以下文章

2023最新整理!全网最全Python标准库总结(学习宝典,建议收藏)

全网最全产品经理面试宝典

阿里面试官花近十年整理出来的 Java 面试宝典 PDF

全网最全原理讲解!java集合常用方法

2021年全网最全Java面试总结及答案建议收藏

在GitHub上24小时星标31K+的Java后端学习路线+全网最全面试手册