![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
文章平均质量分 83
devp_yang
当你觉得太累的时候,说明...你正走在上坡路,坚持走过去,就会有进步,每一步,都会到达一个新高度。目光所及,每一处,都有新风景。轻松,是留给走下坡路的人,不要在本该奋斗的年纪,选择了安逸,你爬得高,走得远,不是为了让世界看到,而是为了,看到更广阔的世界。
展开
-
Spring面试题
推荐博客:https://blog.csdn.net/a745233700/article/details/809597161. Spring是什么Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。主要包括以下七个模块:Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);Spring Core:核心类库,所有功能都依赖于该类库,提供IOC和原创 2021-07-23 07:36:15 · 15189 阅读 · 1 评论 -
redis面试题
1. redis支持的数据类型有哪些String(字符串)格式:set key value一个键最大能存储512MB是二进制安全的,意思是string可以包含任何数据,比如jpg图片或者序列化的对象Hash(哈希)格式:hmset name key1 value1 key2 value2是一个键值(key=>value)对集合是一个string类型的field和value的映射表,特别适合用于存储对象List(列表)格式:lpush name value列表是简单原创 2021-07-23 07:35:37 · 331 阅读 · 0 评论 -
mysql 面试题
1. 数据库的三范式是什么?什么是反范式?第一范式(1NF):数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性。第二范式(2NF):满足1NF后要求表中的所有列,都必需依赖于主键,而不能有任何一列与主键没有关系(例如订单表只能存储订单信息,商品表只能存储商品信息,订单表要是存储了商品信息,则违反了第二范式)。第三范式(3NF):满足2NF后,要求:表中的每一列都要与主键直接相关,而不是间接相关(表中的每一列只能直接依赖于主键,其它非主键列不能相互依赖)范式可以避免数据冗余原创 2021-07-23 07:32:18 · 1199 阅读 · 1 评论 -
Mybatis面试题
推荐博客:https://blog.csdn.net/a745233700/article/details/809771331. 什么是Mybatis(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,加载驱动、创建连接、创建statement等繁杂的过程,开发者开发时只需要关注如何编写SQL语句,可以严格控制sql执行性能,灵活度高。(2)作为一个半ORM框架,MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的原创 2021-07-23 07:31:56 · 241 阅读 · 1 评论 -
JVM面试题
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K55lVLAd-1626996601169)(D:/%25E6%259D%25A8%25E6%2596%25B9%25E8%25B6%2585/java-skill-tree/Java%2520%25E6%258A%2580%25E8%2583%25BD%25E6%25A0%2591.assets/20210425101434404.png)]1. 详解JVM内存模型程序计数器:用来存放指向下一条指令的执行地址,如果执行的原创 2021-07-23 07:30:12 · 302 阅读 · 2 评论 -
并发编程面试题
1. 进程和线程有什么区别进程:进程是程序的一次动态执行过程,是操作系统进行资源分配和调度的一个独立单元,由程序、数据和进程控制块组成。线程:线程是程序执行中一个单一的顺序控制流程,是程序执行流线程是程序执行的最小单位,进程是操作系统分配资源的最小单位进程由一个或者多个线程组成,线程是一个进程中代码的不同执行路线进程之间相互独立,但同一个进程下的线程共享程序的内存空间及一些进程级别的资源线程上下文切换要比进程上下文切换快很多2. 并发和并行并发:是指两个或多个事件在同一时原创 2021-07-23 07:29:50 · 567 阅读 · 1 评论 -
RabbitMQ 面试题
1. RabbitMQ的优点和缺点优点解耦:系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码异步:将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度削峰:并发量大的时候,请求可以先转发到消息队列中,然后MQ再处理请求缺点系统可用性降低:如果MQ出问题,导致业务系统出问题系统复杂性增加:要多考虑很多方面的问题,比如一致性问题、如何保证消息不被重复消费,如何保证保证消息可靠传输等2. RabbitMQ基础概念介绍Broker:rabbitmq原创 2021-07-13 12:59:14 · 248 阅读 · 0 评论 -
面试123
JVM并发编程MySQLMySQL 数据类型1. 整数类型类型大小范围(有符号)范围(无符号)用途TINYINT1 byte(-128,127)(0,255)小整数值SMALLINT2 byte(-32 768,32 767)(0,65 535)大整数值MEDIUMINT3 byte(-8 388 608,8 388 607)(0,16 777 215)大整数值INT或INTEGER4 byte(-2 147 483 648,原创 2021-07-06 19:13:16 · 501 阅读 · 0 评论 -
并发编程系列面试题
什么是可重入锁可重入锁又名递归锁,是指同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁,前提是锁对象得是同一个对象,不会因为之前已经获取过锁还没释放而阻塞。Java中 显示锁ReentrantLock 和 隐式锁Synchronized 都是可重入锁,它的好处是可一定程度避免死锁。/** * @Description: 同步代码块演示可重入锁 * @date Date : 2021年06月06日 10:58 */public class ReEnterLockTest {原创 2021-06-06 16:52:11 · 148 阅读 · 0 评论 -
千里之行,始于足下
2021-05-11事务是什么?作为单个逻辑工作单元执行的一系列操作,这一系列操作要么全部执行成功,要么全部执行失败。事务的四大特性(ACID)?原子性(Atomicity):事务是一个不可分割的逻辑工作单元,事务中的一系列操作要么全部成功,要么全部失败。一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态。我们假设用户A和用户B两个人的账户加起来有5000块钱,那么不管A和B之间如何转账,事务结束后两个人的账户加起来还得是5000块钱,这就是一致性状态。隔离原创 2021-05-11 19:22:12 · 260 阅读 · 0 评论 -
每天进步一点点 2020/09/24
面试三连1、ArrayList 和 Vector 的区别是什么?Vector 是线程安全的,ArrayList 是非现场安全的,因此性能上 ArrayList 高发生扩容时,ArrayList 扩容1.5倍,Vector 扩容2倍2、进程 和 线程 的区别?进程:指系统中正在运行的一个程序,拥有独立的内存单元,系统进行资源分配和调度的基本单位线程:是CPU调度和分派的基本单位,包含在进程中,是进程实际运作单位,一个进程至少有一个线程3、什么是守护线程?守护线程是程序运行的时候在后台原创 2020-09-24 18:16:49 · 252 阅读 · 0 评论 -
每天进步一点点 2020/09/23
面试三连1、String、StringBuffer、StringBuilder 的区别是什么?String 是字符串常量,每次操作都会生产新的对象,会对系统性能产生影响,适用于少量字符串操作的情况;StringBuilder 是字符串变量,非线程安全,推荐单线程环境下使用StringBuffer 也是字符串变量,线程安全,推荐多线程环境下使用2、String str=“dog” 与 String str=new String(“dog”) 一样吗?不一样,因为内存的分配方式不一样。Str原创 2020-09-23 17:36:16 · 231 阅读 · 0 评论 -
每天进步一点点 2020/09/22
面试三连1、Java 中数据类型有哪些?基本数据类型:整型(byte,short,int,long)、浮点型(float,double)、字符型(char)、布尔型(boolean)引用数据类型:数据、类、接口2、JDK 和 JRE 有什么区别?JDK:Java 开发工具包,包含jre、编译器javac和其它一些开发工具,主要给Java程序员使用的JRE:Java 运行时环境,包含jvm和java基础类库,运行java程序使用的3、Java 中 final 关键字的作用是什么?fi原创 2020-09-22 17:12:09 · 196 阅读 · 0 评论 -
每天进步一点点 2020/09/21
面试三连1、 Java 面向对象的特征有哪些?封装:隐藏对象的属性和实现细节,对外提供访问方法,提高了数据的安全性。抽象:从众多的事物中抽取出共同的、本质性的特征继承:子类可以拥有父类的属性和方法,提高代码的复用性多态:一个接口,多种不同的实现方式2、== 与 equals 的区别?==:变量是基本类型的时候,比较的是值,变量是引用类型的时候,比较的是引用equals:默认情况下比较的是引用,重写了之后,比较的是值3、HashMap 和 HashTable 的区别?句子三连W原创 2020-09-20 22:30:59 · 165 阅读 · 0 评论 -
每日⑤题 2020/8/20
什么是分布式系统一个业务分拆多个子业务,部署在不同的服务器上。 然后通过一定的通信协议,能够让这些子业务之间相互通信。什么是CAP理论指的是一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。Consistency 一致性:指的是所有节点在同一时间的数据完全一致。一致性可以根据一致的程度不同,分为强、弱、最终一致性三类。强一致性:对于数据库而言就是数据更新之后能立马同步到其它数原创 2020-08-20 15:31:04 · 210 阅读 · 0 评论 -
每日⑤题 2020/8/14
说一说mvcc中的隐藏字段InnoDB存储引擎在每行数据的后面添加了三个隐藏字段:DB_TRX_ID(6字节):表示最近一次对本记录行作修改(insert | update)的事务ID。至于delete操作,InnoDB认为是一个update操作,不过会更新一个另外的删除位,将行表示为deleted。并非真正删除。DB_ROLL_PTR(7字节):回滚指针,指向当前记录行的undo log信息DB_ROW_ID(6字节):随着新行插入而单调递增的行ID。理解:当表没有主键或唯一非空索引时,inno原创 2020-08-14 13:42:42 · 158 阅读 · 0 评论 -
每日⑤题 2020/8/13
SpringBoot 自动配置的原理是什么SpringBoot的启动类上有一个@SpringBootApplication ,这是SpringBoot核心注解,是一个复合注解它里面有一个重要注解 @EnableAutoConfiguration 开启自动配置,也是一个复合注解@EnableAutoConfiguration里面有一个关键注解@Import(AutoConfigurationImportSelector.class)导入AutoConfigurationImportSelector类,原创 2020-08-13 19:24:07 · 129 阅读 · 0 评论 -
每日⑤题 2020/8/12
说一说sql优化查询优化,尽量避免全表扫描,首先考虑在查询条件和排序字段上添加索引避免select *,需要哪些字段就返回哪些字段尽量避免设置可空列,这会使MySQL难以优化引用了可空列的查询,它会使索引、索引统计和值更加复杂使用模糊查询时,避免以%开头,否则该列索引将失效。若不以%开头,该列索引有效不要使用列号,否则会增加不必要的解析时间如果业务上不需要去重,优先使用UNION ALL,否则使用UNION,UNION ALL只是将结果简单的合并,UNION会将各查询子集的记录做比较,效率上U原创 2020-08-12 11:21:57 · 137 阅读 · 0 评论 -
每日⑤题 2020/8/11
面向对象的特征封装:隐藏内部实现细节,对外提供操作方法,有利于提高程序的安全性和可维护性继承:类的复用,只能单继承,单可以多重继承,构造方法和private修饰的不能继承多肽:父类引用指向子类对象抽象:定义规范,可以多实现如何适当的添加索引频繁作为查询条件且过滤性好的字段应该创建索引更新频繁的字段不应该创建索引排序字段应该添加索引关联查询的关联字段添加索引对聚合函数的聚合字段添加索引,可以提高聚合函数的效率== 和 equals 的区别是什么== 对于基本类型比较的是值,对原创 2020-08-11 18:30:11 · 158 阅读 · 0 评论 -
每日⑤题 2020/8/10
sleep和wait的区别sleep是Thread类中方法;wait是Object类中的方法sleep不会释放锁;wait会释放锁并且会加入到等待队列中sleep不依赖于synchronized同步监视器;wait需要依赖synchronized同步监视器sleep不需要被唤醒;wait如果不指定时间需要被别人唤醒进程和线程的区别进程是操作系统资源分配的最小单位,线程是CPU调度的最小单位一个进程可以有多个线程,但至少有一个线程同一进程的线程共享本进程的地址空间和资源,而进程之间的地址原创 2020-08-10 17:30:26 · 142 阅读 · 0 评论 -
每日⑤题 2020/8/8
HashMap 底层原理是什么HashMap是一个键值对形式的集合,源码中每一个键值对用Node<K,V>表示,Node<K,V>是一个内部类,实现了Map.Entry<K,V>,Node内部类中有4个属性,分别是hash、key、value、next,key是键,value是值,next存储的是下一个元素的引用HashMap的数据结构是 数组+(链表或红黑树),数组查询效率高,增删效率低,链表查询效率低,增删效率高,HashMap使用这两种相结合,使增删查的效率都原创 2020-08-08 16:17:42 · 163 阅读 · 0 评论 -
面试题系列(一):多线程
写在前面,本文记录 Java 中多线程相关的面试题,方便日后面试的时候复习1、线程是什么?线程是操作系统能够进行运算调度的最小单位,它是进程的子集,是进程中实际运作的单位。2、进程是什么?进程是指系统中正在运行的一个应用程序3、进程和线程的区别是什么?进程是操作系统资源分配的基本单元,线程是任务调度和执行的基本单位;线程是进程的子集,一个进程可以有一个或多个线程;每个进程都有自己的内存空间,进程之间切换,开销比较大;一个进程中的多个线程共享内存空间,每个线程都有自己的栈内存和程序计数器,线程原创 2020-06-05 08:07:30 · 283 阅读 · 0 评论 -
MySQL 面试题(2020)
1. MySQL 常用的存储引擎有哪些?区别是什么?常用的有 MyISAM 和 InnoDB,区别:MyISAM 不支持事务处理,适合查询比较频繁的应用,支持表锁,不会出现死锁,适合小数据,低并发;InnoDB 支持事务处理,适合插入和更新比较频繁的应用,支持行锁,适合大数据,高并发。2. Mysql 数据库表的类型有哪些?BDB:Berkeley DB(BDB)表是支持事务处理的表,它提供事务控制。HEAP:HEAP表是MySQL中存取数据最快的表。这是因为他们使用存储在动态内存中的一个散列索引,原创 2020-05-29 14:29:40 · 574 阅读 · 0 评论 -
2020最新Java面试题(常见面试题及答案汇总)
Java基础篇1. JDK 和 JRE 的区别是什么?JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。总结: JDK 包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含...原创 2020-02-18 09:19:53 · 103017 阅读 · 17 评论