重载: 发生在同一个类中,方法名必须相同,参数类型不同,个数不同,顺序不同,方法返回值和访问修饰符可以不同,发生在编译时期。
重写: 发生在父子类中方法名列表必须相同,返回值范围小于等于父类,抛出异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为private则子类就不能重写该方法
Redis 是一个基于 Key-Value 存储结构的 Nosql 开源内存数据库。它提供了 5 种常用的数据类型String、Map、Set、ZSet、List。针对不同的结构,可以解决不同场景的问题。因此它可以覆盖应用开发中大部分的业务场景,比如 top10 问题、好友关注列表、热点话题等。其次,由于 Redis 是基于内存存储,并且在数据结构上做了大量的优化所以 IO性能比较好,在实际开发中,会把它作为应用与数据库之间的一个分布式缓存组件。并且它又是一个非关系型数据的存储,不存在表之间的关联查询问题,所以它可以很好的提升应用程序的数据 IO 效率。最后,作为企业级开发来说,它又提供了主从复制+哨兵、以及集群方式实现高可用在 Redis 集群里面,通过 hash 槽的方式实现了数据分片,进一步提升了性能。
1、不管有木有出现异常,finally块中代码都会执行;
2、当try和catch中有return时,finally仍然会执行;
3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保
存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是
在finally执行前确定的;
4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。
一般情况下redis是用来实现应用与数据库之间的一个读操作的缓存层的它主要的目的是去减少数据库的IO还可以提高数据库的IO的性能,当应用层去读取某个数据的时候会先去redis中去读取如果命中了就直接返回如果没有读到回去数据库中直接获取,查询之后再把数据缓存到Redis里面,这样的架构中会出现一个问题就是一份数据同时保存在数据库和reids中当数据发生变化的时候需要同时更新redis和mysql,由于更新操作先后是有顺序的并且它并不像mysql中的多表事务操作可以满足ACID的特性,所以就会出现数据一致性的问题有两种解决方法
(1)先更新数据库,在更新缓存
(2)先删除缓存,在更新数据库
1。如果先更新数据库在更新缓存,那么如果缓存更新失败就会导致数据库和缓存不一致
2.如果先删除缓存在更新数据库理想情况下是应用下次访问Redis的时候发现redis里面数据是空的那么就会从数据库加载保存在Reids中但是在极端情况下由于删除redis和更新数据库没有原子性所以在这个操作中出现其他线程访问还是会存在数据不一致的问题,所以在极端情况下仍然要保证数据的一致性的一个方案
比如
(1) 基于rocketMQ的可靠性消息通信来实现数据的最终一致性
(2)还可以通过Canal组件监控Mysql中binlog的日志把更新后的数据同步到redis中。
因为这里是基于最终一致性来实现的如果业务场景不能够接收短期数据不一致性
和面向过程相比是两种不同的处理问题的角度
打个比方 比如洗衣机洗衣服
面向过程来说:就是1,打开洗衣机 2,放衣服3.放洗衣粉4.清洗5.烘干
面向对象来说:就是会拆出两个对象
人:打开洗衣机,放衣服,放洗衣服
洗衣机:清洗,烘干
面向过程更注重事情的每一个步骤以及顺序,面向对象更注重事情有那些参与者(对象),以及各自需要什么。面向过程比较直接高效,面向对象更易于复用,扩展和维护。
封装:
封装表示写类的人把内部实现细节隐藏起来使用类的人只通过外部接口访问和使用接口可以被大致理解为提供使用的方法,比如如果有人已经写好了洗衣机这个类你其实只需要知道他有什么方法方法有什么作用具体怎么用就足够了不需要知道方法里面具体是怎么写的,这和真是世界使用洗衣机是一样的也是直接通过操作界面的按钮来使用不需要知道里面的原理封装能减少我们对不必要的细节的精力的投入
继承
继承是说面向对象编程允许创建有层次的类,就像现实世界中儿子继承爸爸 爸爸继承爷爷类也可以有子类和父类来表示从属关系比如小学生和大学生都是学生 都有学号和年纪的属性都要去学校可以看出这两个类之间有共同之处导致有很多重复代码的产生,那我们可以创建出一个叫学生的父类然后让小学生和大学生去继承学生类这样做的好处是父类那些属性和方法都可以被继承不需要反复定义减少代码的冗余。
多态
多态指的是同样的接口因为对象具体类的不同而有不同表现比如虽然小学生和大学生都要写作业但是内容的难度不一样所以这个写作业的方法就不能定义在父类里面而是要分别定义在子类里否则大学生和小学生用同一个方法,所以他们会由于所属类不同调用不同的写作业方法这就是多态