计算机类面试题

1.Java面向对象特点有哪些,多态具体指什么

特点:继承、多态、封装。

继承:子类可以复现父类的方法

封装:将方法或字段放在一个类中供接口调用

多态:一个对象具有多个状态,分别为编译多态和运行多态。编译多态也是方法重载,即同一个类中,相同的方法有不同的参数类型、顺序或者个数。运行多态也是方法重写,即子类实现了一个与父类在方法声明上完全相同的一个方法。

 

2.访问修饰符public,private,protected,以及不写(默认)时的区别?

public对所有类公开,protected对当前包类和子类公开。private仅能在当前类中调用。默认是dafult,仅能在当前类和同包中调用

 

3.&和&&的区别?

&是按位与,即使符号前边的表达式为false仍然会继续判断后边表达式。而&&在前面的表达式flase时会直接结束判断。

 

4.解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法。

对象保存在堆中,变量保存在栈中

 

5.用最有效率的方法计算2乘以8?

将2的二进制左移三位即可

 

6.数组有没有length()方法?String有没有length()方法?

数组的长度是一个字段,所以没有length(),有length属性,String有length()方法。

 

7.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

不对,因为equals比较的是对象的哈希码

 

8.String和StringBuilder、StringBuffer的区别?

String无法被修改,StringBuilder、StringBuffer可以被修改。

String和StringBuffer是线程安全的,stringbuff加了同步锁,性能稍差。Stringbuilder是不安全的性能稍好。

 

9.重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?

重载是同一类中方法名相同,但参数的个数、类型或顺序不同。(参数类型不同、参数个数不同或者二者都不同)

重写是子类复现父类的相同方法。

重载对返回类型没有要求。

 

10.描述一下JVM加载class文件的原理机制?

.java文件经编译后变成.class文件,再由类加载器加载到JVM中运行

类加载器包括根加载器(BootStrap)、扩展加载器(Extension)、系统加载器(System)和用户自定义类加载器(java.lang.ClassLoader的子类)

采用双亲委派原理,即优先使用系统加载器,再使用用户自定义加载器。

 

11.抽象类(abstract class)和接口(interface)有什么异同?

同:抽象类和接口都无法被实例化,都可以被继承,都可以包含方法声明

异:抽象类可能有构造方法和静态方法,但接口里没有方法。

 

12.Java 中会存在内存泄漏吗,请简单描述。

一般不会,因为Java有垃圾回收机制。

 

13.阐述静态变量和实例变量的区别。

静态变量是被static修饰的变量,它属于类,不属于类中的任一对象。实例变量必须创建对象后才能通过这个对象使用。

 

14.GC是什么?为什么要有GC

GC是垃圾回收机制,可以有效的防止内存泄漏,有效的利用内存,更好的回收或分配内存

 

15.Java 中的final关键字有哪些用法?

修饰类,则该类无法被继承。修饰方法,则该方法无法被重写。修饰变量,则该变量赋值后无法被修改。

 

16.Error和Exception有什么区别?

error出现后程序会立即停止运行。而exception被捕获后程序可以继续运行。

 

17.try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?

会执行,在return之前执行。

 

18.列出一些你常见的运行时异常?

算数、数组下标越界、空指针、内存溢出、

 

19.阐述final、finally、finalize的区别。

final修饰符一般用来修饰方法、类或变量

finally一般在try。。。catch后构造代码块,且总是能运行。

finalize是垃圾回收机制中的一个方法。

 

20.List、Set、Map是否继承自Collection接口?

List、Set是,Map不是。

List是有序的,按照存放顺序有序,可重复

Set是无序的、不可重复

Map是储存键值对(key-value)

 

21.阐述ArrayList、Vector、LinkedList的存储性能和特性。

ArrayList使用数组方式存储,支持随机访问,线程不安全

Vector使用数组方式存储数据,线程安全,性能较ArrayList差

LinkedList使用双向链表实现存储,可以快速在链表中插入或删除元素,线程不安全。

ArrayListLinkedListed可以通过SynchronizedList方法转换成线程安全

ArrayListLinkedListed异:对元素的增删和查的代价不同,数组查询方便,而链表增删方便。

 

22.List、Map、Set三个接口存取元素时,各有什么特点?

List可以有重复元素

Set不能存放重复元素

Map保存键值对。

 

23.编写多线程程序有几种实现方式?

实现Runnable接口、实现Callable接口、继承Thread类、用线程池

 

24.Java中如何实现序列化,有什么意义?

序列化的类需要实现Serializable接口。序列化可以将对象转换成字节序列,方便存储和运输。

 

25.Java中有几种类型的流?

字节流和字符流。

字节流继承于InputStream、OutputStream,

字符流继承于Reader和Writer

 

26.在进行数据库编程时,连接池有什么作用?

连接池事先创建若干连接置于连接池中,需要时直接从连接池中获取,结束时归还连接池而不必关闭连接,可以提升系统访问数据库的性能,

 

27.事务的ACID指什么?ACID也是四个特性

原子性(Atomic) 事务中的各项操作,要么全部执行,要么都不执行

一致性(Consistent) 事务结束后系统状态是一致的

隔离性(Isolated):并发执行的事务彼此无法看到对方的中间状态

持久性(Durable):事务完成后所做的改动会被持久化,就算执行失败,也不会对数据造成影响

 

28.获得一个类的类对象有哪些方式?

1.类型.class

2.对象.getClass()

3.Class.forName()

 

29.如何通过反射创建对象?

1.通过类对象调用newInstance()方法,例如:String.class.newInstance()

2.通过Constructor类的newInstance()方法获取

 

30.简述一下面向对象的"六原则一法则"

单一职责原则:一类只做它该做的事

开闭原则:软件实体应该对扩展开放,对修改关闭。

依赖倒转原则:面向接口编程

里式替换原则:任何时候都可以用子类型替换父类型

接口隔离原则:接口要小而专

合成聚合复用原则:优先使用聚合或合成关系复用代码。

迪米特法则:一个对象应对其他对象有尽可能少的了解

 

31.简述一下你了解的设计模式。

23种设计模式,包括:Factory Method(工厂方法模式),Singleton(单例模式);Adapter(适配器模式),Flyweight(享元模式),Decorator(装饰模式);Proxy(代理模式);Command(命令模式);Observer(观察者模式),Strategy(策略模式)

 

 

32.排序算法原理

冒泡:比较相邻元素,将大的浮起,小的沉下,每次都从第一对开始比较,最后元素使最大数

选择:每次从待排元素中选出最小(或最大)的元素,放在序列的起始位置,再从剩余待排元素继续寻找,以此类推。

插入:从第二个元素开始将数组中的元素拿出,依次和前面已排好的元素相比较,如果拿出的元素比排好的元素小,则交换位置,直到和全部元素比较过后为止。

归并:将长度为n的输入序列分成两个n/2的子序列,再对两个子序列进行归并排序,最后将两个排序好的子序列合并成一个最终排序序列

快速:在数组中默认选首个元素,数组中小于等于此数的放在左边,大于此数的放在右边,再对数组两边递归调用快速排序,重复这个过程。

希尔排序:先将整个待排序的序列分割成若干子序列并分别进行直接插入排序,待整个序列中的记录基本有序时,再对全体进行依次直接插入排序。(步长如何选择

基数排序:先将元素按照低位排序,然后收集,再按照高位排序,再收集,依次类推。低位是不是指个位,高位十位百位千位这样

堆排序:先将数组构建成一个大顶堆,也就是类似二叉树的结构,然后令堆首成为该堆的最大值,再将堆首放到堆的最下层并固定。重复该步骤。

 

33.深拷贝和浅拷贝区别。

浅拷贝只复制对象的引用

深拷贝新建一个对象,将待拷贝对象所有属性都赋给此对象

 

34.数组和链表数据结构描述,各自的时间复杂度

数组是连续的,查方便,增删不方便。链表是不连续的,增删方便,查不方便。

 

35.说一说你对 java.lang.Object 对象中 hashCode 和 equals 方法的理解。在什么场景下需要重新实现这两个方法。

equals是比较对象的hashCode

如果需要按某种方式比较对象,就需要重新实现这俩方法。

 

36.JDK 和 JRE 有什么区别?

JDK提供Java的开发和运行环境

JRE为java提供运行环境

 

37.synchronized 和 volatile 的区别是什么?

Syn是一个方法或代码块的修饰符,变成了线程安全。Java编译时会指令重排,volatile是一个变量修饰符,保证按代码顺序执行

 

38.简单说说你了解的类加载器。

根加载器、系统加载器等等

双亲委派模型,系统会先使用系统加载,系统加载处理不了再使用自定义加载

 

39.在一个静态方法内调用一个非静态成员为什么是非法的?

静态方法是类方法,可以通过类名直接访问。非静态成员是对象的成员,需要创建对象才能调用。

 

40.静态方法和实例方法有何不同?

在外部调用静态方法无需创建对象,可以使用类名.方法名的方法,也可以使用对象名.方法名,而实力方法只能用对象名.方法名的方法。

静态方法在访问本类成员时,只允许访问静态成员变量和方法,而不允许访问实例成员变量和方法,而实例方法无此限制。

 

41.面向对象和面向过程的区别

面向对象是分析解决问题所需的步骤

面向对象强调的对象,由对象去调用完成结果。

面向对象易维护、易复用、易扩展,

面向过程性能较高,在维护复用扩展方面则比面向对象稍差

 

42.成员变量与局部变量的区别有哪些?

成员变量在类中方法外面,在堆中,随着对象的创建而存在,随着对象的消失而消失,有默认值。

局部变量在方法定义中或者方法声明上,在栈中(不是对象在堆变量在栈吗),随着方法的调用而存在,随着方法调用完毕而消失,没有默认值。

 

42.构造方法有哪些特点?是否可被 override?

构造方法没有返回值。方法名和类名相同。构造方法可以没有,也可以有多个构造方法。构造方法无法被继承。构造方法无法被手动调用。

构造方法无法被继承,因此无法被重写。

 

43.Java 序列化中如果有些字段不想进行序列化,怎么办?

不想被序列化的变量,使用transient关键字修饰

 

44.反射的原理,反射创建类实例的三种方式是什么。

反射原理是:在运行状态中,对于任意一个类,都能知道这个类的所有属性和方法,对任意对象都能调用它的任意方法

通过类的字节码,可以获取到对象的方法、字段,即使是private修饰的也可以调用,降低了性能,

三种方式:通过getClass(),通过类名.class,通过Class.forname

 

45.JVM了解吗

说对象在堆里,变量保存在栈里,然后说了解垃圾回收算法,有标记-清除、标记-整理、复制、分代收集。元空间、永久代

JDK8之前对于动态生成类的情况会出现永久代的内存溢出,JDK8之后该用元空间,永久代使用虚拟内存,元空间使用本地内存,

 

 

 

数据库

1.删除一条记录、删除一个表、删除数据库如何写

删除一条记录:delete from table_name where 条件

删除一个表:drop table table_name

删除一个数据库:drop database

 

2.truncate和delete区别

delete可以条件删除,可以被回滚,truncate只能删除整个表,无法回滚

 

3.分页查询用什么语句

select*from table_name limit 0,5 意思是取前5条数据

 

4.表太大,查询特别慢怎么办

1.合理建立索引

2.对关键字段建立水平分区

3.利用缓存将查询慢的数据缓存一段时间

4.建立粗粒度数据表

根据查询建立对应的表,定时对重复的记录进行压缩转存至新表,粒度变大,数据记录变少。

 

5.mysql中有哪几种锁

表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,锁冲突概率最高,并发度最低

行级锁:开销大,加锁慢,会出现死锁。锁定粒度最低,锁冲突概率最低,并发度最低

页面锁:开销和加锁时间居中,会出现死锁。锁定粒度中等,并发度一般

 

6.Mysql中有几种存储引擎,一般问MyISAMINNODB区别,还有默认是哪种引擎

InnoDB、MyISAM、MEMORY、MERGE、NDB。

MySQL 5.5之前是MyISAM,5.5后默认引擎是InnoDB

MyISAM不是事务安全的,不支持外键,只支持表级锁

InnoDB是事务安全的,支持外键、行级锁。

 

7.Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?

四个隔离级别分别是:读到未提交数据、脏读、可重读、串行事务

 

8.你怎么看到为表格定义的所有索引?

 

9.BLOB和TEXT有什么区别?

blob是二进制字符串

text是非二进制

 

10.MYSQL支持事务吗?

innodb是支持事务的,MyISAM不支持事务

 

11.MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?

a. 设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。

b. 选择合适的表字段数据类型和存储引擎,适当的添加索引。

c. mysql库主从读写分离。

d. 找规律分表,减少单表中的数据量提高查询速度。

 

12.有哪些索引,它们的用途是什么,什么时候会用到这些索引,优缺点是什么

普通索引、唯一索引、主键索引、组合索引、全文索引

 

13.什么是最左匹配原则

在检索数据时从联合索引的最左边开始匹配

 

14.数据库中的事务是什么?

事务是数据库管理系统执行过程中的一个逻辑单位。

 

15.说说对SQL语句优化有哪些方法?

1Where子句中:where表之间的连接必须写在其他Where条件之前,那些可以过滤掉最大数量记录的条件必须写在Where子句的末尾.HAVING最后。

2)用EXISTS替代IN、用NOT EXISTS替代NOT IN

3 避免在索引列上使用计算

4)避免在索引列上使用IS NULLIS NOT NULL

 

16.为什么使用数据索引能提高效率

使用索引可以避免在查询数据时遍历所有数据。

 

17.B+树索引和哈希索引的区别

 

 

18.MySQL联合索引

19.什么情况下应不建或少建索引

20.四种隔离级别

 

21.sql和noosql的区别,sql是关系型,有三种约束,nosql是非关系型,它们的区别是什么

sql是关系型,NoSQL一般是非关系或分布式

SQL数据存在表中,NoSQL则可以存在文档、键值对或图形等

SQL的数据结构必须先定义好,NoSQL的数据是动态无结构的。

SQL的负载能力依赖硬件,NoSQL可以通过增加数据库服务器的数量来增加

SQL是使用SQL语言对数据进行定义和操作的,NoSQL无结构查询语言

 

22.mysqljoin,关联查询

 

 

Spring

1. 什么是spring?

它是一个轻量级开源框架,用于提高开发人员的开发效率和系统的可维护性。

依赖注入、不必创建对象

AOP、面向切面编程

控制反转

 

2.Spring由哪些模块组成?

spring core 。基础,spring其他所有功能都依赖于该类库,主要 提供IOC功能

Spring。 Aspects 为AspectJ的集成提供支持

AOP。提供面向切面的编程

JDBC。Java数据库连接

JMS。Java消息服务

ORM。支持mybatis等ORM工具

Web。为创建Web应用程序提供支持

Test。提供对JUnit和TestNG测试的支持。

 

3.解释AOP模块

全称面向切面编程,将影响多个类的公共行为封装到一个可重用的模块中,利用AOP可以对业务逻辑各个部分进行隔离,提高程序可重用性和开发效率,主要场景包括日志记录、性能统计和异常处理等。

 

4.解释JDBC抽象和DAO模块。

Spring提供一个简化JDBC API操作的Spring JDBC框架,使得JDBC、Mybatis等数据技术更容易以一种统一的方式工作。

 

5.谈谈自己对于Spring IOC和AOP的理解

IOC(Inversion Of Controll,控制反转)是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由给Spring框架来管理。将对象之间的相互依赖关系交给IOC容器来管理,并由IOC容器完成对象的注入。在实际开发中,通过使用@Autowired注解就不需要再new对象了,这也是IOC优点。

AOP(Aspect-Oriented Programming,面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可扩展性和可维护性

 

6.Spring中的单例bean的线程安全问题了解吗?

单例bean存在线程安全问题,主要是因为当多个线程操作同一个对象的时候,对这个对象的非静态成员变量的写操作会存在线程安全问题。

解决方案为:在类中定义一个ThreadLocal成员变量,将需要的可变成员变量保存在ThreadLocal中

 

7.说说自己对于Spring MVC的了解?

MVC分别是model、view、controller。model层主要是操作数据库,controller介于MV之间,用于将数据传给前台。View层用于前台展示。

 

8.Spring框架中用到了哪些设计模式

工厂、代理、单例、模板、包装器、观察者、适配器

 

9.Spring事务管理的方式有几种?

编程式事务和声明式事务,推荐用声明式,在方法前用@transaction注解。

 

10什么是Spring中的依赖注入?

依赖注入,是 IOC 的一个方面,是个通常的概念,它有多种解释。这概念是说你不用创建对象,而只需要描述它如何被创建。你不在代码里直接组装你的组件和服务,但是要在配置文件里描述哪些组件需要哪些服务,之后一个容器(IOC 容器)负责把他们组装起来。

 

11.Spring bean是什么?

Spring Beans是构成Spring应用程序主干的Java对象。它们由Spring IoC容器实例化,组装和管理。这些bean是使用提供给容器的配置元数据创建的,

 

12.如何为Spring容器提供配置元数据?

基于XML的配置文件。基于注释的配置。基于Java的配置。

 

13.主类上的关键注解是什

开始运行Spring项目的注解,@ApplicationContext

 

 

 

SpringBoot

1.Spring Boot、Spring MVC 和 Spring 有什么区别?

spring MVC是基于Spring的一个MVC框架,SpringBoot是基于Spring的一套快速开发整合包,因为spring和springMVC需要配置大量参数十分不方便,SpringBoot可以解决这个问题它实现了自动配置,降低了项目搭建的复杂度。

 

2.Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?(和上面13题对照)

启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,

 

3.你如何理解 Spring Boot 中的 Starters?

Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring 及其他技术,而不需要到处找示例代码和依赖包。

 

Mybatis

1.什么是Mybatis?

Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,加载驱动、创建连接、创建statement等繁杂的过程,开发者开发时只需要关注如何编写SQL语句,可以严格控制sql执行性能,灵活度高。

 

2.Mybaits的优缺点:

优点:编程灵活,代码量较少,对数据库影响较少,SQL语句写在XML中,利于统一管理,兼容性好

缺点:SQL语句编写工作量较大,数据库移植性较差

 

3.#{}和${}的区别是什么?

${}是字符串替换,#{}是预处理;

Mybatis在处理${}时,就是把${}直接替换成变量的值。而Mybatis在处理#{}时,会对sql语句进行预处理,将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;

使用#{}可以有效的防止SQL注入,提高系统安全性。能用#{}尽量不用${}

 

4.通常一个mapper.xml文件,都会对应一个Dao接口,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?

一个实例类对应一个mapper.xml文件,然后在文件中写sql,对应的sql ID对应java中的方法名称。

 

5.Mybatis是如何进行分页的?分页插件的原理是什么?

Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页。

 

 

 

Vue

1.vue优点?

轻量级框架,只关注视图层,国人开发,简单易学,

双向数据绑定,数据操作简便

 

2.vue父组件向子组件传递数据?

答:通过props

 

3.子组件像父组件传递事件?

答:$emit方法

 

4.v-show和v-if指令的共同点和不同点?

答: 共同点:都能控制元素的显示和隐藏;

不同点:实现本质方法不同,v-show本质就是通过控制css中的display设置为none,控制隐藏,只会编译一次;v-if是动态的向DOM树内添加或者删除DOM元素,若初始值为false,就不会编译了。而且v-if不停的销毁和创建比较消耗性能。

 

5.如何让CSS只在当前组件中起作用?

在组件中的style前面加上scoped

 

6.<keep-alive></keep-alive>的作用是什么?

:keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。

 

7.如何获取dom?

答:ref="domName" 用法:this.$refs.domName

 

8.说出几种vue当中的指令和它的用法?

答:v-model双向数据绑定;

v-for循环;

v-if v-show 显示与隐藏;

v-on事件;v-once: 只绑定一次。

 

9.为什么使用key?

答:需要使用key来给每个节点做一个唯一标识,Diff算法就可以正确的识别此节点。

 

10.axios?

前后台交互用的,封装了ajax

 

11.v-modal的使用。

答:v-model用于表单数据的双向绑定,这个背后就做了两个操作:

v-bind绑定一个value属性;

v-on指令给当前元素绑定input事件。

 

12..分别简述computed和watch的使用场景

答:computed:当一个属性受多个属性影响的时候就需要用到computed,场景是购物车商品结算的时候

watch:当一条数据影响多条数据的时候就需要用watch,场景:搜索数据

 

13.v-on可以监听多个方法吗?

答:可以,

 

14.vue组件中data为什么必须是一个函数?

答:因为JavaScript的特性所导致,在component中,data必须以函数的形式存在,不可以是对象。

 

15..Vue中双向数据绑定是如何实现的?

答:vue 双向数据绑定是通过 数据劫持 结合 发布订阅模式的方式来实现的, 也就是说数据和视图同步,数据发生变化,视图跟着变化,视图变化,数据也随之发生改变;

 

16.单页面应用和多页面应用区别及优缺点

答:单页面应用(SPA),通俗一点说就是指只有一个主页面的应用,浏览器一开始要加载所有必须的 html, js, css。所有的页面内容都包含在这个所谓的主页面中。但在写的时候,还是会分开写(页面片段),然后在交互的时候由路由程序动态载入,单页面的页面跳转,仅刷新局部资源。多应用于pc端。

多页面(MPA),就是指一个应用中有多个页面,页面跳转时是整页刷新

单页面的优点:

用户体验好,快,内容的改变不需要重新加载整个页面,基于这一点spa对服务器压力较小;前后端分离;页面效果会比较炫酷(比如切换页面内容时的专场动画)。

单页面缺点:

不利于seo;导航不可用,如果一定要导航需要自行实现前进、后退。(由于是单页面不能用浏览器的前进后退功能,所以需要自己建立堆栈管理);初次加载时耗时多;页面复杂度提高很多。

 

17.vue的两个核心点

答:数据驱动、组件系统

数据驱动:ViewModel,保证数据和视图的一致性。

组件系统:应用类UI可以看作全部是由组件树构成的。

 

18.什么是 vue 生命周期?有什么作用?

8个过程,分别是什么意思

beforeCreate

created

beforeMount

mounted

beforeUpdate

updated

beforeDestroy

destroyed

 

19.mvvm 框架是什么?

MVVM是Model-View-ViewModel的缩写。Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。

 

20.vue-router 是什么?它有哪些组件

 

21.vuex是什么?

是状态管理仓库,共享对象

 

计算机基础

 

1.OSI七层网络模型,七层分别是什么,功能是什么

物理层传输比特

数据链路层传输的帧

网络层传输包

传输层TCP和UDP

会话层 功能

表示层 加密 压缩

应用层 HTTP、FTP、SMTP、POP3分别传输什么,介绍概念

 

操作系统

1.并发和并行是什么,有什么区别

 

2.死锁的四个必要条件

互斥条件

不可剥夺条件

请求与保护条件

循环等待条件

 

3.进程和线程区别

进程独占资源,资源分配的基本单位

线程共享进程内的资源,独立调度的基本单位

开销不同

 

4.线程之间同步用什么?

加锁,信号量机制

 

5.死锁的处理方法

鸵鸟

检测恢复

 

6.死锁预防

银行家算法

 

7.DNS解析过程和协议

先从本地hosts查,查不到再去DNS服务器查,用到了TCP协议

 

 

Redis

1.Redis支持的数据类型

String、Hash、List、Set、zset(有序集合)

 

2.Redis持久化是什么,有哪几种持久化方法,优缺点是什么

两种持久化方式:RDB(默认) 和AOF

RDB存的是镜像,AOF按操作持久化,

aof文件比rdb更新频率高,优先使用aof还原数据。

aof比rdb更安全也更大

rdb性能比aof好

如果两个都配了优先加载AOF

 

3.Redis的主从复制

 

4.什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?

 

5.Redis的内存淘汰策略有哪些

 

 

Shiro

1.什么是shiro

 

2.shiro有哪些组件?

 

3.Apache Shiro 的三大核心组件:

 

4.Shiro工作流程

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sbfmjscs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值