9.15学习记录

Cookie和session的区别

  1. cookie存储在客户但,session存储在服务端
  2. Cookie大小有限制,session一般没有限制
  3. Sessionx相对于cookie来说更安全一些

session存储在服务端哪里

  1. 一般是在内存中
  2. 可以持久化到内存中
  3. 可以放到分布式缓存中

数据库使用了哪些索引?

普通索引,唯一索引,全文索引,覆盖索引,联合索引

使用联合索引要注意什么?

  1. 尽量把区分度高的字段放在左边
  2. 避免索引失效

Spring中用到了哪些设计模式?

  1. 工厂模式:使用BeanFactory来管理Bean实例
  2. 模板方法模式:JDBCtemplate、Redistemplate等待
  3. 单例模式:默认将bean以单例管理,只有一个实例
  4. 代理模式:AOP
  5. 适配器模式:SPringMVC中的Handleradapter
  6. 建造者模式:简化对象构造过程

MAVEN常用命令

清理:clear

编译:compile

测试:test

打包:package

安装:install

部署:depoly

NIO

NIO是同步非阻塞IO模型

三个核心组件:buffer。Cannel。Selector。

Epoll的水平触发和边缘触发

水平触发: 只要一个文件描述符准备好进行 I/O 操作,epoll_wait() 就会报告该事件。即使应用程序没有处理该事件,只要条件仍然满足,epoll_wait() 在后续的调用中仍会报告相同的事件。

特点: 重复报告。 易于实现。 容错性强。

边缘触发:当一个文件描述符的状态从"未准备就绪"变成"准备就绪"的时候,epoll_wait() 会报告一次事件。如果应用程序没有及时处理事件,并且在此期间状态没有再次改变,则该事件不会再被报告。

特点: 仅报告一次。 效率更高。 要求严格。

TCP拥塞控制算法

慢开始、拥塞避免、快恢复、快重传

JMM模型

定义Java并发编程的一套规范,目的是简化多线程编程,增强程序可移植性

spring中有哪些事务传播行为?

Propagation_required:如果存在事务就加入,否则创建一个新事务

Propagation_requires-new:创建一个新的事务,如果当前有事务,挂起当前事务

Propagation_nested:如果存在事务,创建一个事务当作当前事务的嵌套事务,否则创建一个新事务

Propagation_Mandatory:存在加入,否则异常

如何保证消息顺序消费?

  1. 可以使用单个消费者
  2. 通过设置消息优先级,优先级高的先被消费
  3. 在消息上设置id,消费者端拿到消息后先进行排序
  4. 使用插件或者自定义交换机

Es有哪些重要的模块?

索引模块、查询模块、聚合模块、发现模块、存储模块、协调模块

es和mysql的比较

  1. mysql是关系型数据库,es是文档数据库
  2. mysql主要用来存储数据,es主要用来进行检索
  3. mysql使用b树和B+树等索引结构,es主要是倒排索引
  4. mysql使用sql查询语句,es使用DSL

创建线程的方式

  1. 继承thread类,重写run方法
  2. 实现Runnable接口,重写run方法
  3. 实现Callable接口,重写run方法,可以拿到返回值
  4. 使用excutors创建线程池
  5. 使用completablefuture类执行异步任务
  6. 基于Threadgroup线程组
  7. 使用futuretask匿名创建
  8. 使用timer定时器
  9. 使用forkjoinpool或许stream并行流
相关推荐
Voyager_41 天前
算法学习记录03——二叉树学习笔记:从两道题看透后序位置的关键作用
笔记·学习·算法
我先去打把游戏先1 天前
ESP32学习笔记(基于IDF):ESP32连接MQTT服务器
服务器·笔记·单片机·嵌入式硬件·学习·esp32
deng-c-f1 天前
Linux C/C++ 学习日记(29):IO密集型与CPU密集型、CPU的调度与线程切换
linux·学习·线程·cpu·io密集·cpu密集
四谎真好看1 天前
Java 黑马程序员学习笔记(进阶篇18)
java·笔记·学习·学习笔记
洋洋的笔记1 天前
银行测试学习计划
学习
Allan_20251 天前
数据库学习
数据库·学习
报错小能手1 天前
linux学习笔记(43)网络编程——HTTPS (补充)
linux·网络·学习
报错小能手1 天前
linux学习笔记(45)git详解
linux·笔记·学习
百锦再1 天前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
Larry_Yanan1 天前
QML学习笔记(四十四)QML与C++交互:对QML对象设置objectName
开发语言·c++·笔记·qt·学习·ui·交互