加入收藏 | 设为首页 |

雷火电竞app-金九银十福利!Java面试精选72题详解,附解题思路

海外新闻 时间: 浏览:293 次

不多说,直接上题:

文末附福利

1、 多线程有几种完结办法?同步有几种完结办法?

多线程有两种完结办法,别离是承继Thread 类与完结Runnable 接口。同步的完结方面有两

种,别离是synchronized,wait 与notify 。

a. wait():使一个线程处于等候状况,并且开释所持有的方针的lock。

b. sleep():使一个正在运转的线程处于睡觉状况,是一个静态办法,调用此办法要捕捉

InterruptedException 反常。

c. notify():唤醒一个处于等候状况的线程,留意的是在调用此办法的时分,并不能切当的

唤醒某一个等候状况的线程,而是由JVM 确认唤醒哪个线程,并且不是按优先级。

d. allnotity():唤醒一切处入等候状况的线程,留意并不是给一切唤醒线程一个方针的锁,

而是让它们竞赛。

2、 JDBC 中的 PreparedStatement 比较 Statement 的长处?

预编译句子java.sql.PreparedStatement ,扩展自Statement,不光具有Statement的一切能

力并且具有更强壮的功用。不同的是,PreparedStatement 是在创立句子方针的一起给出要

履行的sql 句子。这样,sql 句子就会被体系进行预编译,履行的速度会有所增加,

尤其是在履行大句子的时分,效果愈加抱负

3、 Java 中完结多态的机制是什么?

重写,重载

办法的重写Overriding 和重载Overloading 是Java 多态性的不同表现。重写Overriding 是

父类与子类之间多态性的一种表现,重载Overloading 是一个类中多态性的一种表现。假如

在子类中界说某办法与其父类有相同的称号和参数,咱们说该办法被重写(Overriding)。子

类的方针运用这个办法时,将调用子类中的界说,对它而言,父类中的界说如同被“屏蔽”

了。果在一个类中界说了多个同名的办法,它们或有不同的参数个数或有不同的参数类型,

则称为办法的重载(Overloading)。Overloaded 的办法是能够改动回来值的类型。

4、 说出 ArrayList,Vector, LinkedList 的存储功用和特性

ArrayList 和 Vector 都是运用数组办法存储数据,此数组元素数大于实践存储的数

据以便增加和刺进元素,它们都答应直接按序号索引元素,可是刺进元素要触及

数组元素移动等内存操作,所以索引数据快而刺进数据慢,Vector 由于运用了

synchronized 办法(线程安全),一般功用上较 ArrayList 差,而 LinkedList 运用双

向链表完结存储,按序号索引数据需求进行前向或后向遍历,可是刺进数据时只

需求记载本项的前后项即可,所以刺进速度较快。5、 Collection 和 Collections 的差异。

Collection 是调集类的上级接口,承继与他的接口首要有 Set 和 List。Collections

是针对调集类的一个协助类,他供给一系列静态办法完结对各种调集的查找、排

序、线程安全化等操作。

6、 HashMap 和 Hashtable 的差异

HashMap 是 Hashtable 的轻量级完结(非线程安全的完结),他们都完结了 Map

接口,首要差异在于 HashMap 答应空(null)键值(key),由于非线程安全,效

率上或许高于 Hashtable。

HashMap 答应将 null 作为一个 entry 的 key 或许 value,而 Hashtable 不答应。

HashMap 把 Hashtable 的 contains 办法去掉了,改成 containsvalue 和 containsKey。

由于 contains 办法简略让人引起误解。 Hashtable 承继自 Dictionary 类,而

HashMap 是 Java1.2 引进的 Map interface 的一个完结。

最大的不同是,Hashtable 的办法是 Synchronize 的,而 HashMap 不是,在多个线

程拜访 Hashtable 时,不需求自己为它的办法完结同步,而 HashMap 就有必要为

之供给外同步。 Hashtable 和 HashMap 选用的 hash/rehash 算法都大约相同,所

以功用不会有很大的差异。

7、 线程的底子概念、线程的底子状况以及状况之间的联络

一个程序中能够有多条履行头绪一起履行,一个线程便是程序中的一条履行头绪,每个线程

上都相关有要履行的代码,即能够有多段程序代码一起运转,每个程序至少都有一个线程,

即main 办法履行的那个线程。假如仅仅一个cpu,它怎样能够一起履行多段程序呢?这是

从微观上来看的,cpu 一会履行a 头绪,一会履行b 头绪,切换时刻很快,给人的感觉是

a,b 在一起履行,比方咱们在同一个办公室上网,只需一条链接到外部网线,其实,这条网

线一会为a 传数据,一会为b 传数据,由于切换时刻很时刻短,所以,咱们感觉都在一起上

网。状况:安排妥当,运转,synchronize 堵塞,wait 和sleep 挂起,完毕。wait 有必要在

synchronized内部调用。调用线程的start 办法后线程进入安排妥当状况,线程调度体系将安排妥当

状况的线程转为运转状况,遇到synchronized 句子时,由运转状况转为堵塞,当

synchronized 取得锁后,由堵塞转为运转,在这种状况能够调用wait 办法转为挂起状况,

当线程相关的代码履行完后,线程变为完毕状况。

8、 abstract class 和 interface 有什么差异?

声明办法的存在而不去完结它的类叫笼统类。不能创立笼统类的实例;可是能够

创立安一个变量,其类型是一个笼统类,并让他指向具体子类的一个实例。不能

有笼统结构函数或笼统静态办法。

接口是笼统类的变体,接口中一切办法都是笼统的。多承继性可经过完结这样的接口而取得。接口只能够界说 static final 成员变量

9、 String、StringBuffer、StringBuilder 的差异

String 是不行变的方针,每次对 String 类型进行改动的时分其实是发生了一个新

的 String 方针,然后指针指向新的 String 方针;

StringBuffer 是线程安全的可变字符序列,需求同步,则运用。

StringBuilder 线程不安全,速度更快,单线程运用。

(String 是一个类,但却是不行变的,所以 String 创立的算是一个字符串常量,

StringBuffer 和 StringBuilder 都是可变的。所以每次修正 String 方针的值都是新建

一个方针再指向这个方针。而运用 StringBuffer 则是对 StringBuffer 方针本身进行

操作。所以在字符串 j 常常改动的状况下,运用 StringBuffer 要快得多。)

10、 常见的 runtime exception 有哪些

ClassCastExcetion,NullPointerException,NumberFormatException,

OutOfMemoryException,ArrayIndexOfBoundsException,ArithmeticException,

ArrayStoreException, BufferOverflowException, BufferUnderflowException,

CannotRedoException, CannotUndoException, ClassCastException,

CMMException, ConcurrentModificationException, DOMException,

EmptyStackException, IllegalArgumentException,

IllegalMonitorStateException, IllegalPathStateException,

IllegalStateException, ImagingOpException, IndexOutOfBoundsException,

MissingResourceException, NegativeArraySizeException,

NoSuchElementException, NullPointerException, ProfileDataException,

ProviderException, RasterFormatException, SecurityException,

SystemException, UndeclaredThrowableException,

UnmodifiableSetException, UnsupportedOperationException

非运转时反常:IO反常、SQL反常、NoSuchMethod反常

11、 heap 和 stack 有什么差异

栈是一种线形调集,其增加和删去元素的操作应在同一段完结。栈依照后进先出

的办法进行处理。堆是栈的一个组成元素

12、 同步和异步有何异同,在什么状况下别离运用他们?举例阐明。【根底】

答:假如数据将在线程间同享。例如正在写的数据今后或许被另一个线程读

到,或许正在读的数据或许现已被另一个线程写过了,那么这些数据便是同享数

据,有必要进行同步存取。当运用程序在方针上调用了一个需求花费很长时刻来履行的办法,并且不期望让程序等候办法的回来时,就应该运用异步编程,在许多

状况下选用异步途径往往更有功率。

13、 java 中有几种办法能够完结一个线程?用什么关键字润饰

同步办法?stop()和 suspend()办法为何不引荐运用?【中等难

度】

答:有两种完结办法,别离是承继 Thread 类与完结 Runnable 接口;用

synchronized 关键字润饰同步办法;对立运用 stop(),是由于它不安全。它会

免除由线程获取的一切确定,并且假如方针处于一种不连贯状况,那么其他线程

能在那种状况下查看和修正它们。成果很难查看出真实的问题所在;suspend()

办法简略发作死锁。调用 suspend()的时分,方针线程会停下来,但却依然持有

在这之前取得的确定。此刻,其他任何线程都不能拜访确定的资源,除非被“挂

起”的线程康复运转。对任何线程来说,假如它们想康复方针线程,一起又企图

运用任何一个确定的资源,就会形成死锁。故不应该运用 suspend(),而应在自

己的 Thread 类中置入一个标志,指出线程应该活动仍是挂起。若标志指出线程

应该挂起,便用 wait()命其进入等候状况。若标志指出线程应当康复,则用一

个 notify()从头发动线程。

14、说说你所了解或听说过的 j2ee 中的几种常用办法?及对设

计办法的一些观点。【中等难度】

答:Session Facade Pattern:运用 SessionBean 拜访 EntityBean;

Message Facade Pattern:完结异步调用;

EJB Command Pattern:运用 Command JavaBeans 替代 SessionBean,完结

轻量级拜访;

Data Transfer Object Factory:经过 DTO Factory 简化 EntityBean 数据

供给特性;Generic Attribute Access:经过 AttibuteAccess 接口简化 EntityBean

数据供给特性;

Business Interface:经过长途(本地)接口和 Bean 类完结相同接口标准

事务逻辑一致性;

EJB 架构的规划好坏将直接影响体系的功用、可扩展性、可保护性、组件可

重用性及开发功率。项目越杂乱,项目部队越巨大则越能表现杰出规划的重要性。

15、比方 100 用户一起来访,要采纳什么技能处理?【根底】

答:可选用衔接池。

① 装载数据库驱动程序;

② 经过 jdbc 树立数据库衔接;

③ 拜访数据库,履行 sql 句子;

④ 断开数据库衔接。

16、forward 和 redirect 的差异? 【根底】

答:forward 是容器中操控权的转向,是服务器恳求资源,服务器直接拜访

方针地址的 URL,把那个 URL 的呼应内容读取过来,然后把这些内容再发给阅读

器,阅读器底子不知道服务器发送的内容是从哪儿来的,所以它的地址栏中仍是

本来的地址。redirect 便是服务端依据逻辑,发送一个状况码,告知阅读器从头

去恳求那个地址,一般来说阅读器会用方才恳求的一切参数从头恳求,所以

session,request 参数都能够获取,并且从阅读器的地址栏中能够看到跳转后的

链接地址。前者愈加高效,在前者能够满足需求时,尽量运用 forward()办法,

并且,这样也有助于躲藏实践的链接;在有些状况下,比方,需求跳转到一个其

它服务器上的资源,则有必要运用 sendRedirect()办法。17、说出数据衔接池的作业机制是什么? 【根底】

答:J2EE 服务器发动时会树立必定数量的池衔接,并一向坚持不少于此数

意图池衔接。客户端程序需求衔接时,池驱动程序会回来一个未运用的池衔接并

将其表记为忙。假如当时没有闲暇衔接,池驱动程序就新建必定数量的衔接,新

建衔接的数量有装备参数决议。当运用的池衔接调用完结后,池驱动程序将此连

接表记为闲暇,其他调用就能够运用这个衔接。

18、jsp 有哪些动作?效果别离是什么? 【根底】

答:JSP 共有以下 6 种底子动作:

jsp:include:在页面被恳求的时分引进一个文件;

jsp:useBean:寻觅或许实例化一个 JavaBean。;

jsp:setProperty:设置 JavaBean 的特色。;

jsp:getProperty:输出某个 JavaBean 的特色;

jsp:forward:把恳求转到一个新的页面;

jsp:plugin:依据阅读器类型为 Java 插件生成 OBJECT 或 EMBED 符号。

19、jsp 有哪些内置方针?效果别离是什么? 【根底】

答:JSP 共有以下 9 种底子内置组件(可与 ASP 的 6 种内部组件相对应):

request:用户端恳求,此恳求会包含来自 GET/POST 恳求的参数;

response:网页传回用户端的回应;

pageContext:网页的特色是在这儿办理;

session:与恳求有关的会话期;

application:servlet 正在履行的内容;

out:用来传送回应的输出;

config:servlet 的构架部件;page:JSP 网页本身;

exception:针对过错网页,未捕捉的破例。

20、get 和 post 的差异?【根底】

答:Form 中的 get 和post 办法,在数据传输进程中别离对应了 HTTP 协议中的 GET 和 POST 办法。

二者首要差异如下:

1)Get 是用来从服务器上取得数据,而 Post 是用来向服务器上传递数据;

2)Get 将表单中数据依照 variable=value 的办法,增加到 action 所指向的 URL 后边,并且两者运用

“?”衔接,而各个变量之间运用“&”衔接;Post 是将表单中的数据放在 form 的数据体中,依照变量和

值相对应的办法,传递到 action 所指向 URL;

3)Get 是不安全的,由于在传输进程,数据被放在恳求的 URL 中;Post 的一切操刁难用户来说都是

不行见的;

4)Get 传输的数据量小,这首要是由于受 URL 长度约束;而 Post 能够传输许多的数据,所以在上传

文件只能运用 Post;

5)Get 约束 Form 表单的数据集有必要为 ASCII 字符,而 Post 支撑整个 ISO10646 字符集;

6)Get 是 Form 的默许办法

21、JSP 和 Servlet 有哪些相同点和不同点,他们之间的联络是

什么?【根底】

答:JSP 是 Servlet 技能的扩展,本质上是 Servlet 的简易办法,更着重运用的表面表达。JSP 编译后

是"类 servlet"。Servlet 和 JSP 最首要的不同点在于,Servlet 的运用逻辑是在 Java 文件中,并且彻底从表

示层中的 HTML 里别离开来。而 JSP 的状况是 Java 和HTML 能够组合成一个扩展名为.jsp 的文件。JSP 侧

重于视图,Servlet 首要用于操控逻辑。

22、jsp 的四种规模?【根底】

答:a.page 是代表与一个页面相关的方针和特色。一个页面由一个编译好的 Java servlet 类(能够带有任何的 include 指令,可是没有 include 动作)表明。这既包含 servlet 又包含被编译成 servlet 的 JSP 页面

b.request 是代表与 Web 客户机宣布的一个恳求相关的方针和特色。一个恳求或许跨过多个页面,触及多

个 Web 组件(由于 forward 指令和 include 动作的联络)c.session 是代表与用于某个 Web 客户机的一个

用户体会相关的方针和特色。一个 Web 会话能够也常常会跨过多个客户机恳求 d.application 是代表与整个

Web 运用程序相关的方针和特色。这实质上是跨过整个 Web 运用程序,包含多个页面、恳求和会话的一

个大局效果域。

23、具体描述 MVC。【根底】

答:依据 Java 的 Web 运用体系选用 MVC 架构办法,即 model(模型)、view(视图)、control(操控)

别离规划;这是现在 WEB 运用服务体系的干流规划方向。

Model:即处理事务逻辑的模块,每一种处理一个模块;

View:担任页面显现,显现 MODEL 处理成果给用户,首要完结数据到页面转化进程;

Control:担任每个恳求的分发,把 FORM 数据传递给 MODEL 处理,把处理成果的数据传递给 VIEW 显

示。

26.BS 与 CS 的联络与差异?

C/S 是 Client/Server 的缩写,是客户机与服务器结构的运用程序

c/s: 有必要电脑本地装置的程序,CS 的开发本钱高

B/S是 Brower/Server 的缩写,是阅读器和服务器结构的运用程序 b/s: 用阅读器翻开的体系,BS

的开发本钱低24、简述 HttpSession 的效果、运用办法,可用代码阐明。(3 分

钟)【根底】

答:HttpSession 中能够盯梢并贮存用户信息,把值设置到特色中,有 2 个办法:

setAttribute(),getAttrribute();

例如:在一个办法顶用 session.setAttribute(“student”,student);在session 中设置一个特色名为 student,

值为一个名为 student 的方针。然后可在同一 session 规模内用 getAttribute(“student”)取出该特色,得到

student 方针。

25、介绍在 JSP 中怎么运用 JavaBeans?【根底】

答:在 JSP 中运用 JavaBean 常用的动作有:

1):用来创立和查找 bean 方针;

2):用来设置 bean 的特色,即调用其 setXxx()办法;

3):用来取得 bean 的特色,即调用其 getXxx()办法。

26、JSP 和 Servlet 中的恳求转发别离怎么完结?【根底】

答:JSP 中的恳求转发可运用 forward 动作完结:;Serlvet 中完结恳求转发的办法为:

getServletContext().getRequestDispatcher(path).forward(req,res)。

27、Web.Xml 的效果?【根底】

答:用于装备 web 运用的信息;如 listener、filter 及 servlet 的装备信息等。

28、写出了解的 JSTL 标签。【根底】

答:29、JSP 标签的效果?怎么界说?【中等难度】

答:效果:别离 jsp 页面的内容和逻辑;

事务逻辑开发者能够创立自界说标签;

封装事务逻辑;

可重用并且易保护;

易于手艺修正、易于东西保护;

供给简练的语法;

界说:

写标签处理器;

写 tld 文件;

讲标签处理器和 tld 文件放到同一个包里边;

把 jsp 页面和标签库装备布置在一起。

30、 什么是懒加载 懒加载用什么技能完结,怎么处理 session

封闭导致的懒加载问题 处理的计划有缺陷吗、

懒加载便是推迟加载,选用署理技能完结,选用

openSessionInViewFilter,openSessionInViewFilter 其实上便是一个过滤器

页面翻开时敞开 session,页面拜访完毕时封闭 session

当拜访用户过多,并且网速过慢的时分,会挤爆体系

事务扩展了 加锁导致资源等候时刻过长

session 规模变大 假如加载页面的时刻过长 如网速比较慢 session 内存时

间过长 导致体系功用下载

数据库衔接不能及时开释

31、 Spring 作业原理

内部最中心的便是IOC 了,动态注入,让一个方针的创立不必new 了,能够主动的出产,这

其实便是运用java 里的反射,反射其实便是在运转时动态的去创立、调用方针,Spring便是

在运转时,跟xml Spring 的装备文件来动态的创立方针,和调用方针里的办法的还有一个

中心便是AOP 这个便是面向切面编程,能够为某一类方针进行监督和操控(也便是在调用这

类方针的具体办法的前后去调用你指定的模块)然后到达对一个模块扩大的功用。这些都是经过装备类到达的

Spring 意图:

便是让方针与方针(模块与模块)之间的联络没有经过代码来相关,都是经过装备类阐明管

理的(Spring 依据这些装备内部经过反射去动态的组装方针)要记住:Spring 是一个容器,

但凡在容器里的方针才会有Spring 所供给的这些服务和功用

32、 ActionContext、ServletContext、pageContext 的差异 ?

① ActionContext Struts2 的 API:是当时的 Action 的上下文环境

② ServletContext 和 PageContext 是 Servlet 的 API

33、 阻拦器的生命周期与作业进程 ?

每个阻拦器都是需求完结 Interceptor 接口

> init():在阻拦器被创立后立即被调用, 它在阻拦器的生命周期内只

被调用一次. 能够在该办法中对相关资源进行必要的初始化;

> intercept(ActionInvocation invocation):每阻拦一个动作恳求,

该办法就会被调用一次;

> destroy:该办法将在阻拦器被毁掉之前被调用, 它在阻拦器的生命

周期内也只被调用一次;

34、 解说一下 IOC,以及 spring 的举例

IOC 称为操控回转,也叫依靠注入,ioc 是Spring 的中心组件,它经过装备文件,将需求

创立的方针以池的办法办理,将实例注入到需求的方针中区,是方针依靠于注入而不依靠于

完结,处理了各个组件的耦合度,使得项目在后期的保护和扩展上十分便利。

35、 谈谈你对 Spring AOP 思维的了解。

【参阅答案】

AOP(Aspect-OrientedProgramming,面向方面编程),能够说是OOP

(Object-OrientedPrograming,面向方针编程)的弥补和完善。OOP 引进封装、承继和

多态性等概念来树立一种方针层次结构,用以模仿公共行为的一个调集。当咱们需求为涣散

的方针引进公共行为的时分,OOP 则显得力不从心。也便是说,OOP 答应你界说从上到下

的联络,但并不合适界说从左到右的联络。例如日志功用,日志代码往往水平地分布在一切

方针层次中雷火电竞app-金九银十福利!Java面试精选72题详解,附解题思路,而与它所分布到的方针的中心功用毫无联络。关于其他类型的代码,如安全性、

反常处理和通明的持续性也是如此。这种分布在遍地的无关的代码被称为横切

(cross-cutting)代码,在OOP 规划中,它导致了许多代码的重复,而不利于各个模块的

重用。而AOP 技能则恰恰相反,它运用一种称为“横切”的技能,解剖开封装的方针内部,

并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即方

面。所谓“方面”,简略地说,便是将那些与事务无关,却为事务模块所一起调用的逻辑或

职责封装起来,便于削减体系的重复代码,下降模块间的耦合度,并有利于未来的可操作性和可保护性。AOP 代表的是一个横向的联络,假如说“方针”是一个空心的圆柱体,其间

封装的是方针的特色和行为;那么面向方面编程的办法,就似乎一把利刃,将这些空心圆柱

体剖开,以取得其内部的音讯。而剖开的切面,也便是所谓的“方面”了。然后它又以巧夺

天功的高手将这些剖开的切面恢复,不留痕迹。运用“横切”技能,AOP 把软件体系分为

两个部分:中心关注点和横切关注点。事务处理的首要流程是中心关注点,与之联络不大的

部分是横切关注点。横切关注点的一个特色是,他们常常发作在中心关注点的多处,而遍地

都底子相似。比方权限认证、日志、事务处理。Aop 的效果在于别离体系中的各种关注点,

将中心关注点和横切关注点别离开来。完结AOP 的技能,首要分为两大类:一是选用动态

署理技能,运用截取音讯的办法,对该音讯进行装修,以替代原有方针行为的履行;二是采

用静态织入的办法,引进特定的语法创立“方面”,然后使得编译器能够在编译期间织入有

关“方面”高压锅炖牛肉的代码。

36、 Spring 有哪几种注入办法?

3 种办法。结构属入、特色注入、接口注入

37、 Spring MVC 作业机制及为什么要用?

1) 客户端一切的恳求都提交给DispatcherServlet,它会托付运用体系的其他模块担任担任对

恳求进行真实的处理作业。

2) DispatcherServlet 查询一个或多个 HandlerMapping,找到处理恳求的 Controller.

3) DispatcherServlet 请恳求提交到方针 Controller

4) Controller 进行事务逻辑处理后,会回来一个 ModelAndView

5) Dispathcher 查询一个或多个 ViewResolver 视图解析器,找到 ModelAndView 方针指定

的视图方针

6) 视图方针担任烘托回来给客户端。

38、 springmvc 与 struts2 雷火电竞app-金九银十福利!Java面试精选72题详解,附解题思路比较

1 在数据封装方面 ,spring3mvc 办法等级 struts2 类等级 spring3mvc 开

发功率高于 struts2

2 spring3mvc 注解版底子上是零装备

3 springmvc 与 spring 是一家人,兼容性好

4 struts2 存在安全缝隙

能够经过 ongl 表达式 格局化硬盘

运用重定向定位到垂钓网站

39、 spring mvc 注解

1 @Controller 标示为 spring 容器的中的 bean 做为 c2 效果域注解 有五大效果域: 原型 单例 request session 大局

session

3 @RequestMapping 拜访途径,能够用在类或许办法上 拜访途径类/办法

4 @responsebody 回来字符串,一般用于回来 json 格局

5 @ModelAttribute 放入 request 效果域

6 @SessionAttributes 值能用在类上

7 @requestParam 首要用于数据封装时,页面的参数名与办法参数不一致

8 @pathVarible 首要用于获取途径变量的值

40、 说说 spring dao

1 对 jdbc 进行了封装,供给了两大模板技能封装了 jdbc 进程,数据源的完结,

行映射器进行记载与方针的转化作业,

运用 daoSupport 便利获取模板

2 给模板类注入数据源,之后运用模板类的 api 进行数据操作

41、 mybatis 结构的优缺陷?

长处: 易于上手和把握

sql 写在 xml 里,便于统一办理和优化

免除 sql 与程序代码的耦合

供给方针联络映射标签,支撑方针联络组成保护

供给 xml 标签,支撑编写动态 sql

缺陷: 可读性低,调试十分困难,十分受限,无法像 jdbc 那样在代码里依据逻辑

完结杂乱动态 sql 拼接

42、 缓存

1 运用

mybatis 在映射文件装备 Cache,实体类完结序列化

2 长处与缺陷

1 削减运用程序对数据库的拜访次数,进步功率

2 数据量大时导致内存溢出

3 忍受无效的数据(缓存里的数据有或许是过期的),常常修正的数据不适

合放入缓存中3 缓存中装备一些什么东西