Bootstrap

JAVA最新面试题(面试必问)

目录

基础篇 

一、Java面向对象编程有四个特征? 

1.接口和接口的实现。                                                               

2.类和类的继承。                                                                   

3. 重载:重载发生在同一个类中,在该类中如果存在多个同名方 

4. 重写:重写发生在子类继承父类的关系中,父类中的方法被子 

四、Hashtable与HashMap的区别? 

Map 

2、从地址栏 

十、JVM的内存结构? 

十一、内存泄露和内存溢出? 

十二、Session和Cookie的区别? 

十三、字节流与字符流的区别? 

一、java的基本数据类型 

二、冒泡排序 

三、时间类型转换 

四、单例 

框架篇-SSM 

Spring 

Springmvc 

2、处理器映射器HandlerMapping(不需要程序员开发) 

3、处理器适配器HandlerAdapter 

4、处理器Handler(需要程序员开发) 

5、视图解析器 ViewResolver(不需要程序员开发) 

6、视图View(需要程序员开发jsp) 

MyBatis 16

一、 什么是MyBatis?MyBatis的好处是什么? 

二、Mybatis一级缓存和二级缓存的原理? 

四、Mybatis中#与$有什么区别? 

十一、Mybatis中怎么解决读写分离? 

SpringBoot 

二十五、SpringBoot中如何使用缓存? 

Springcloud 

一、 什么是 spring cloud? 

二、 spring cloud 的核心组件有哪些? 

三、 SpringCloud和Dubbo? 

四、 SpringBoot和SpringCloud区别? 

五、 微服务之间是如何独立通讯的? 

六、 负载均衡的意义是什么? 

七 什么是服务熔断?什么是服务降级? 

数据库篇 

一、 数据库中间件? 

二、 数据库三范式 

三、 数据库事务 

四、 存储过程(特定功能的 SQL 语句集) 

五、 触发器(一段能自动执行的程序) 

六、 数据库并发策略 

乐观锁 

悲观锁 

时间戳 

七、数据库锁

答:行级锁 

表级锁 

页级锁 

七、 基于 Redis 分布式锁 

八、 分区分表 

九、 数据库缺点

十、 非关系型数据库和关系型数据库的区别 

关系型数据库的优势 

十一、 varchar和char的使用场景? 

十二、 索引的优缺点? 

十三、 MySQL B+Tree索引和Hash索引的区别?

十四、 事务的并发问题?

十五、 数据库优化?

软优化:

优化子查询 

使用索引:

分解表: 

硬优化:硬件三件套:

十六、 防sql注入? 

十七、 答:针对防sql注入,我们通常是这样做的: 

十八、 mysql的执行计划 

十九、 mysql索引结构?

十九、主键索引和唯一索引的区别?

Redis篇(分布式) 

一、 什么是redis? Reids的特点?

二、使用redis有哪些好处?

三、redis数据结构?

拆分: 

服务化:

消息队列:

数据异构:

限流 

切流量 

可回滚 

2. 三阶段提交: 

3. 柔性事务:

4. 消息最终一致性解决方案之RabbitMQ实现:

·三次握手

 ·四次挥手

基础篇

一、Java面向对象编程有四个特征?

答:面向对象编程有四个特征:抽象,封装,继承,多态。

封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者 对象操作,对不可信的进行信息隐藏。

继承是指使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。

继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组 合”(Composition)来实现。在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情 况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。

多态有四种体现形式:JAVA多态的具体体现

1. 接口和接口的实现。

2. 类和类的继承。

3. 重载:重载发生在同一个类中,在该类中如果存在多个同名方

法,但是方法的参数类型和个数不一样,那么说明该方法被重

载了。

4. 重写:重写发生在子类继承父类的关系中,父类中的方法被子

类继承,方法名,返回值类型,参数完全一样,但是方法体不

一样,那么说明父类中的该方法被子类重写了。

二、Get和Post的区别?

答:1.get是从服务器上获取数据,post是向服务器传送数据,

 2.get传送的数据量较小,不能大于2KB;post传送的数据量较大,一般被默认为不受限制。

 3.get安全性非常低,post安全性较高。但是执行效率却比Post方法好。

 4.在进行文件上传时只能使用post而不能是get。

三、StringBuffer StringBuilder String 三者的区别

答:String        字符串常量   不可变  使用字符串拼接时是不同的2个空间

StringBuffer  字符串变量   可变   线程安全  字符串拼接直接在字符串后追加

StringBuilder 字符串变量   可变   非线程安全  字符串拼接直接在字符串后追加

;