冲啊

1.生成对象有几种方式?

答:①用new语句创建对象,这是最常见的bai创建对象的方法。

②运用反射手段

③调用对象的clone()方法。

④运用反序列化手段

2.Listset集合的区别?

答:List:

  1.可重复添加

  2.使用线性存储

  3.存入与取出顺序一致

Set:

  1.不可重复添加

  2.使用哈希表存储

  3.存入与取出顺序不一致

3.Mybatis#$的区别?

答:#传入的参数在SQL中显示为字符串,#方式能够很大程度防止sql注入;$传入的参数在SqL中直接显示为传入的值,$方式无法防止Sql注入。

4.overloading和overriding的区别,overloading可以改变返回类型吗?

答:overloading是重载,在一个类中具有相同的方法名,但是可以有不同的参数,其返回类型也不一样。

overriding是重写,子类重写父类的方法,也就是父类的方法满足不了子类的需求,其方法名,参数一样,方法体,返回类型不一样

overloading可以改变返回类型。

5.session和cookie的区别?

答:1.cookie数据存放在客户的浏览器上,session数据放在服务器上

2.cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

3.session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。

4.单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie

6.JAVA的三大特性?

答:封装、集成、多态。

7.异常和错误的区别?

答:1.Error(错误)表示系统级的错误和程序不必处理的异常,一般是指与zhi虚拟机相关的问题,是java运行环境中的内部错误或者硬件问题。比如:内存资源不足等。

2.Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。

 Exception又分为运行时异常,受检查异常。

运行时异常,表示无法让程序恢复的异常,导致的原因通常是因为执行了错误的操作,建议终止程序,因此,编译器不检查这些异常。
受检查异常,是表示程序可以处理的异常,也即表示程序可以修复(由程序自己接受异常并且做出处理), 所以称之为受检查异常。

8.throw和throws的区别?

答:throw是语句抛出一个异常,写在方法中;throws是方法可能抛出异常的声明,用在方法后面。

9.switch(x),x可以填什么?

答:byte,short,int,char,string,枚举(enum)

10.aop是什么?

答:在面向对象编程(oop)思想中,我们将事物纵向抽成一个个的对象。而在面向切面编程

中,我们将一个个的对象某些类似的方面横向抽成一个切面,对这个切面进行一些如权限控制、事物管理,记录日志等
公用操作处理的过程就是面向切面编程的思想。AOP 底层是动态代理,如果是接口采用 JDK 动态代理,如果是类采用
CGLIB 方式实现动态代理。
11.spring中bean的作用域?
答:作用域包括singleton(单例模式)、prototype(原型模式)、request(HTTP请求)、session(会话)、global-session(全局会话)。
12.数据库的三大范式?
答:原子性,一致性,隔离线,持久性
13.简单说下mvc?
答:mvc =m(model 模型)+v(view 视图)+c(controler 控制器),解耦,解开了Model和View的耦合
14.jdk代理和cglib代理的区别?
答:jdk代理是基于接口实现的
CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法。
15.什么是IOC?
答:Ioc即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
也不需要你自己去new
16.IOC的原理是啥,AOP的原理是啥?
答:反射。AOP的思想是,不去动原来的代码,而是基于原来代码产生代理对象,通过代理的方法,去包装原来的方法,就完成了对以前方法的增强。换句话说,AOP的底层原理就是动态代理的实现。
17.JAVA的特点?
答:①简单性②跨平台性③安全性④与平台无关性⑤面向对象⑥可靠性
18.spring常见的注入方式有哪些?
答:①构造器注入
②seter和geter方法
③注解式注入
19.mybatis是全自动orm映射吗?为什么
答:不是,因为mybatis中还需要我们自己手动写sql语句,所以mybatis应是半自动orm映射。
20.string和stringbuffer,stringbuilder的区别?
答:string是不可变对象,而stringbuffer是可变的。
stringbuffer是线程安全的,但效率低
stringbuilder是线程不安全的,但效率高
21.说说spring的作用?
答:spring是一个控制反转(IOC)和面向切面编程(AOP)的轻量级框架;然后说IOC和AOP
22.微服务是什么?
答:微服务架构风格是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行。
23.说一说一个项目的流程?
答:一个项目从销售部接单之后,举行项目例会,然后需求调研,然后需求分析,然后系统设计,然后研发,然后测试,然后试运行,然后验收
24.mapper接口和mapper.xml如何对接?
答:通过mapper.xml中的namespace指定对应的mapper接口
25.谈谈你对分布式的理解?
26.redis支持的数据类型有哪些?
答:set,list,hash,string,zset
27.springboot的核心配置文件有哪些?
答:application.xml或者application.properties和bootstrap.xml或者bootstrap.properties
28.springCloud有哪些模块?
答:注册中心(Eureka),负载均衡(Ribbon),熔断器(Hystrix),配置中心(Config),网关(Zuul),声明式web service客服端(feign) 
29.事务是什么?有哪些特性?
答:事务是一组不可再分割的操作集合。
原子性,一致性,隔离性,永久性。
30.springMvc的流程?
答:
a. 用户向服务器发送请求,请求被 springMVC 前端控制器 DispatchServlet 捕获;
b. DispatcherServle 对请求 URL 进行解析,得到请求资源标识符(URL),然后根据该 URL 调用 HandlerMapping
将请求映射到处理器 HandlerExcutionChain;
c. DispatchServlet 根据获得 Handler 选择一个合适的 HandlerAdapter 适配器处理;
d. Handler 对数据处理完成以后将返回一个 ModelAndView()对象给 DisPatchServlet;
e. Handler 返回的 ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet 通过
ViewResolver 试图解析器将逻辑视图转化为真正的视图 View;
h. DispatcherServle 通过 model 解析出 ModelAndView()中的参数进行解析最终展现出完整的 view 并返回给
客户端;
31.转发和重定向的区别?
转发:
  1. 转发地址栏路径不变
  2. 转发只能访问当前服务器下的资源
  3. 转发是一次请求,可以使用request对象来共享数据

重定向(forward)的特点

  1. 地址栏发生变化
  2. 重定向访问其他站点(服务器)的资源
  3. 重定向是两次请求。不能使用request对象来共享数据

 32.Page和PageContent的区别?

答:pageContext和page都是jsp中的隐含对象,pageContext代表jsp页面的上下文关系,能够调用、存取其他隐含对象;page代表处理当前请求的时候,这个页面的实现类的实例。

33.redis的持久方式有哪些?

答:两种持久化方式,第一种是RDB,第二种是AOF

RDB持久化: 在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储 。

AOF持久化:AOF 机制对每条写入命令作为日志,以 append-only 的模式写入一个日志文件中,在 redis 重启的时候,可以通过回放 AOF 日志中的写入指令来重新构建整个数据集。 

RDB的优缺点:

  • 一旦采用该方式,那么你的整个Redis数据库将只包含一个文件,这对于文件备份而言是非常完美的。比如,你可能打算每个小时归档一次最近24小时的数 据,同时还要每天归档一次最近30天的数据。通过这样的备份策略,一旦系统出现灾难性故障,我们可以非常容易的进行恢复。
  • 相对于 AOF 持久化机制来说,直接基于 RDB 数据文件来重启和恢复 redis 进程,更加快速。
  • RDB 对 redis 对外提供的读写服务,影响非常小,可以让 redis 保持高性能,因为 redis 主进程只需要 fork 一个子进程,让子进程执行磁盘 IO 操作来进行 RDB 持久化即可。
  • 对于灾难恢复而言,RDB是非常不错的选择。因为我们可以非常轻松的将一个单独的文件压缩后再转移到其它存储介质上。
  • 如果想要在 redis 故障时,尽可能少的丢失数据,那么 RDB 没有 AOF 好。一般来说,RDB 数据快照文件,都是每隔 5 分钟,或者更长时间生成一次,这个时候就得接受一旦 redis 进程宕机,那么会丢失最近 5 分钟的数据。
  • RDB 每次在 fork 子进程来执行 RDB 快照数据文件生成的时候,如果数据文件特别大,可能会导致对客户端提供的服务暂停数毫秒,或者甚至数秒。
AOF的优缺点:
  • AOF 可以更好的保护数据不丢失,一般 AOF 会每隔 1 秒,通过一个后台线程执行一次fsync操作,最多丢失 1 秒钟的数据。
  • AOF 日志文件以append-only模式写入,所以没有任何磁盘寻址的开销,写入性能非常高,而且文件不容易破损。 如果我们本次操作只是写入了一半数据就出现了系统崩溃问题,不用担心,在Redis下一次启动之前,我们可以通过redis-check-aof工具来帮助我们解决数据 一致性的问题。
  • AOF 日志文件即使过大的时候,出现后台重写操作,也不会影响客户端的读写。因为在rewrite log 的时候,会对其中的指令进行压缩,创建出一份需要恢复数据的最小日志出来。在创建新日志文件的时候,老的日志文件还是照常写入。当新的 merge 后的日志文件 ready 的时候,再交换新老日志文件即可。 因此在进行rewrite切换时可以更好的保证数据安全性。
  • AOF以一个格式清晰、易于理解的日志文件用于记录所有的修改操作, 非常适合做灾难性的误删除的紧急恢复。 比如有人不小心用flushall命令清空了所有数据,只要这个时候后台rewrite还没有发生,那么就可以立即拷贝 AOF 文件,将最后一条flushall命令给删了,然后再将该aof文件放回去,就可以通过恢复机制,自动恢复所有数据。
  • 对于相同数量的数据集而言,AOF文件通常要大于RDB文件。RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。
  • AOF 开启后,支持的写 QPS 会比 RDB 支持的写 QPS 低, 因为 AOF 一般会配置成每秒 fsync 一次日志文件。
  • 类似 AOF 这种较为复杂的基于命令日志 / merge / 回放的方式,比基于 RDB 每次持久化一份完整的数据快照文件的方式,更加脆弱一些,容易有 bug。

34.redis的主从工作方式?

35.springMvc常用注解有哪些?

 

posted @ 2020-07-21 20:32  事在人为、  阅读(84)  评论(0)    收藏  举报
Live2D