java总结

redis持久化
1). redis 是Nosql中的一员,是一个开源的高性能的键值对数据库
2). 适用场景
1). 对数据高并发读写
2). 对海量数据的高效率的存储和访问
3). 对数据高扩展性和高可用性
数据类型
String 类型(常用)
List 类型
Hash 类型(商用)
Set 类型
SortedSet 类型(了解)
数据持久化
RDB : 内存中的数据集快照写入磁盘
2). save 60 10 : 60秒内有10个key发生变化, 就触发快照操作
AOF : 以日志的形式记录服务器的每一次写操作
2). appendfsync everysec : 每秒同步一次
3). appendfsync always : 每次写入操作都同步一次

springMVC 工作原理
1.用户向服务器发送请求,springMVC前端控制器DispatchServlet捕获请求
2.DispatchServlet对请求URL进行解析,得到请求资源标识符(URL),然后根据URL调用HandlerMapping将请求映射到处理器HandlerExcutionChain
3.DispatchServlet根据获得Handler选择一个合适的HandlerAdapter适配器处理
4.Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatchServlet
5.Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,
DispatchServlet通过ViewResolver视图解析器将逻辑图转化为真正的示图view;
6.DispatchServlet通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端

spring的注解 @Controller @ Service @ Repository @RestController

spring依赖注入 DI
对spring的理解 spring是一个开源框架,可以大大提高开发效率,是一个AOP和IOC容器框架
特性
springAOP,面向切面编程 他的底层是动态代理,如果是接口,则采用JDK动态代理,如果是类,则采用CGLIB动态代理

IOC:控制反转 负责创建对象,管理对象,通过依赖注入去装配对象,配置对象,并且管理对象的整个生命周期
以前时要我们new对象,控制反转后就是我们直接去拿对象

注入方式:set注入,构造器注入,静态工厂的方法和实例工厂方法注入

spring事务管理: 声明式事务管理和基于底层API的事务管理

分布式架构 dubbo + zookeeper 分布式服务框架,
它由服务的生产者/消费者/注册中心/以及监控中心组成,生产者在启动时向注册中心暴露服务,
消费者在启动时向注册中心订阅服务,注册中心返回生产者的服务的ip地址和端口号给消费者,
监控中心负责记录服务的调用次数和调用时间
solr Solr用于构建搜索应用程序。 它建立在 Lucene之上,使用spring-date-solr框架,它的底层是对solrj的封装

post携带数据没有限制 和get get请求会将提交的数据现实的数据显示在地址栏上,并且携带数据有限

cook和session的区别 cook在存在于客户端 并且只能存放string类型的数据
session存在于服务端
session创建 默认用户第一次访问jsp页面就会创建session

servlet生命周期 初始化阶段,响应客户请求阶段,终止阶段.三个阶段

mybatis两种值传递方式 # 与 $ #相当于占位符,$相当于直接显示数据

value注解 Spring获取*.porperties文件的内容

sql优化 模糊查询时关键词前尽量不加%,尽量使用where不用having,尽量避免子查询,
尽量不采用IN,用EXISTS,

线程的几种可用状态 新建( new ) 可运行( runnable ) 运行( running ) 阻塞( block ) 死亡( dead )

创建线程:继承Thread类,实现runnable接口,使用Callable和Future创建线程

map双列集合: hashmap(无序) treemap(红黑树数据集结构,) linkedhashmap(迭代快) hashtable properties
list 单列集合:Arraylist linkedlist vector
collection: list set(不能有重复元素) 单列集合

set: hashset 无序,查询快 -> linkedhashset:保存元素的插入顺序,使用迭代器迭代时速度快

  jsonP跨域请求,在客户端的ajax中将请求类型改为jsonp类型, 
优点:不受浏览器限制   缺点:只支持get请求
  cors使用方法,在 response 添加 Access-Control-Allow-Origin,或者使用@CrossOrigin 注解,
优点:支持所有请求方式 缺点:受浏览器版本的影响
	w3c标准

jsp九大内置对象 request、response、session、application、out、pagecontext、config、page、exception

接口和抽象类的区别 抽象类使用extend来继承,不能被实例化,接口抽象方法的集合,使用implements来实现接口,被实现后就必须使用这些方法,

重载和重写 重载:方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同
重写:父类与子类之间的多态性,子类并不想原封不动地继承父类的方法,而是想作一定的修改

throw 在方法内声明, 和 throws可能抛出异常的声明

activeMQ 实现业务之间的解耦

请求转发和重定向的区别
请求转发,即request.getRequestDispatcher().forward(),是一种服务器的行为,客户端只有一次请求,服务器端转发后会将请求对象保存,地址栏中的URL地址不会改变,得到响应后服务器端再将响应发给客户端;

请求重定向,即response.sendRedirect(),是一种客户端行文,从本质上讲等同于两次请求,前一次请求对象不会保存,地址栏的URL地址会改变。

为什么要使用多态?什么时候使用多态?
多态意味着将可能有向上转型和向下转型

Cookies 和 Session的区别
1.cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据。

2.session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。 Session其实是利用Cookie进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器上创建了一个Cookie,当这个Session结束时,其实就是意味着这个Cookie就过期了。
注:为这个用户创建的Cookie的名称是aspsessionid。这个Cookie的唯一目的就是为每一个用户提供不同的身份认证。

3.cookie和session的共同之处在于:cookie和session都是用来跟踪浏览器用户身份的会话方式
4.cookie 和session的区别是:cookie数据保存在客户端,session数据保存在服务器端。

列表集合
2.1、ArrayList:基于数组实现的,检索较快,增加和删除较慢,效率高。
2.2、LinkedList:基于链表实现的,检索较慢,增加和删除很快。
2.3、Vector:线程安全的集合,效率低。

解决ArrayList线程不安全

1.使用synchronized关键字
2.使用Collections.synchronizedList();

RDB持久化配置

Redis会将数据集的快照dump到dump.rdb文件中。此外,我们也可以通过配置文件来修改Redis服务器dump快照的频率,在打开6379.conf文件之后,我们搜索save,可以看到下面的配置信息:

save 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。

save 300 10 #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。

save 60 10000 #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照。

AOF持久化配置

在Redis的配置文件中存在三种同步方式,它们分别是:

appendfsync always #每次有数据修改发生时都会写入AOF文件。

appendfsync everysec #每秒钟同步一次,该策略为AOF的缺省策略。

appendfsync no #从不同步。高效但是数据不会被持久化。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值