==:java的值传递
【1】如果比较的对象是基本数据类型,则比较数值是否相等;
【2】如果比较的是引用数据类型,则比较的是对象的内存地址是否相等
equals():
用来比较两个对象的内容是否相等
个人基本使用:
比较基本数据类型:==号就可以
比较引用类型用equals
Java设计中一个核心的原则,即万物皆对象,基本数据类型不是对象。可以把基本数据类型包装成一个对象,以面向对象的思想去使用这些类型。
基本数据类型包装的形式,让功能更加健壮
1、例如: Integer默认不是int的 0 而是 null ,那么比起基本数据类型,包装类对象它就多了一个状态。
2、还有一个比较直观的,就是包装类给我们提供了很多方法可以使用,例如:数据以转二进制,查看最大值最小值等等。
3、除了上面还有一个要点: 集合中不能存放基本数据类型,只能存放对象,所以当使用集合时,我们的就需要使用到包装类对象。
char是固定长度的–查询效率高点-最大255
varchar不是固定长度-最大65535字节
1-模糊查询的时候,like左模糊 "%A" 或者全模糊 2-对索引的列使用了表达式或者函数 3-where子句中or条件有一个不是索引列 4-联合索引要遵寻最左匹配原则三、Spring 1、谈谈spring的ioc和aop
(1)IOC:控制反转,把创建好的对象给Spring进行管理
(2)AOP:面向切面编程,不修改源代码的情况下进行功能增强 。
四、Springboot 五、MQ 一、Redis 1、数据类型string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)
list:可以重复
set:不可以重复
zset:不可以重复且有序(可用于排行榜)
优点
1、操作内存,支持持久化和事务,支持主从复制
2、采用单线程,避免了不必要的上下文切换
3、多路 I/O 复用模型,非阻塞 IO
缺点
受物理内存限制,适合小数据
RDB性能好,更新频率低—间隔一段时间持久化,如果持久化间 redis 发生故障,会发生数据丢失。
AOF安全高,更新频率高—执行的每次写命令在单独的日志文件中,重启redis 会去恢复。
4、Redis的过期键的删除策略和内存淘汰策略定时清理和请求清理—定期过期:每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其中已过期的key
淘汰策略
随机key,最近最少使用,报错
事务:ACID
原子性、一致性、隔离性、持久性
Redi支持一致性和隔离性,单线程下,他没有回滚,不具备原子性
穿透: 没这个Redis key
解决方案:接口用布隆过滤器控制
雪崩:请求太多了,redis宕机
解决方案:redis集群+缓存预热+不设置相同的过期时间
击穿: key同时过期了,都去查数据库
解决方案:不设置相同的过期时间+加分布式锁
Broker:消息队列服务进程,此进程包括两个部分:Exchange和Queue
Exchange:消息队列交换机,按一定的规则将消息路由转发到某个队列,对消息进行过虑。
Queue:消息队列,存储消息的队列,消息到达队列并转发给指定的
Producer:消息生产者,即生产方客户端,生产方客户端将消息发送
Consumer:消息消费者,即消费方客户端,接收MQ转发的消息
直连模式 work queues
直连模式–多个消费者work queues
订阅模式 publish/subscribe fanout
路由模式 direct
高级路由模式 topic
思考:
publish/subscribe与work queues有什么区别。
区别:
1)work queues不用定义交换机,而publish/subscribe需要定义交换机。
2)publish/subscribe的生产方是面向交换机发送消息,work queues的生产方是面向队列发送消息(底层使用默认交换机)。
相同点:
所以两者实现的发布/订阅的效果是一样的,多个消费端监听同一个队列不会重复消费消息。
2、实际工作用 publish/subscribe还是work queues。
建议使用 publish/subscribe,发布订阅模式比工作队列模式更强大(也可以做到同一队列竞争),并且发布订阅模式可以指定自己专用的交换机
3、消息丢失问题生产者丢失:开启事务(不推荐,性能耗损),开启confirm 模式 异步的
消费者丢失:用 RabbitMQ 提供的ack机制,简单来说,就是你关闭 RabbitMQ 的自动ack
MQ丢失:消息持久化,开启 RabbitMQ 的持久化,就是消息写入之后会持久化到磁盘当然前提是队列必须持久化
4、重复消费问题(幂等性)在写入消息队列的数据做唯一标示,消费消息时,根据唯一标识判断是否消费过;
六、SpringCloud 七、运维


