04 2019 档案
摘要:https://leetcode-cn.com/problems/search-in-rotated-sorted-array/submissions/ 有序 查找 往二分查找上靠 虽然该数组被旋转导致整体无序,但从中间截断后至少有一半仍然是有序的 注意等号 从mid处划分,至少有一半是有序的。如果
阅读全文
摘要:哨兵机制是保证Redis高可用性的机制之一,一言以蔽之“哨兵”会监控Redis集群中所有节点,当主节点挂掉后会自动选择一个从节点并升级为主节点,这一过程对用户是透明的。并且如果挂了的主节点能恢复工作,也会被重新设置为从节点。客户端连到Redis集群的时候回先连到哨兵(sentinel)上,由哨兵来告
阅读全文
摘要:synchronized与Lock接口下的锁的区别 https://www.cnblogs.com/AshOfTime/p/10765295.html wait/notify与Condition的区别 https://www.cnblogs.com/AshOfTime/p/10791842.html
阅读全文
摘要:Condition是为了替代Object的wait notify而设计出来的,其用法基本一致。 都需要先获得锁,然后在锁对象上建立等待队列,把调用wait的线程加入等待队列。 调用wait await后都会释放锁。 都支持等待超时机制。 Condition可响应中断也可以不响应中断(awaitUni
阅读全文
摘要:复制是Redis集群的基础,Redis主从节点在复制的时候即使从节点因为网络分区暂时无法继续复制,主节点也会继续工作,因此根据CAP理论Redis的集群符合A可用性,不符合C一致性。当网络分区恢复后从节点会继续复制,从而实现最终一致性。 以2.8版本为分水岭,Redis复制有两种实现。 15.1 旧
阅读全文
摘要:maven web.xml FIlter最好不要用别的名字 Spirng配置文件 注意把Bean的位置,这些Bean不能写到SpringMVC的配置文件里,因为对Session的管理是Spring父容器来完成的,SpringMVC是Spring容器的子容器,父容器看不到子容器的Bean。要么直接写到
阅读全文
摘要:19.1 事务的实现 把多个Redis命令放到队列中,一次性执行队列里的所有命令。整个过程分为三个阶段:1、事务开始 2、命令入队 3、命令执行 19.1.1 事务开始 做了什么:改变Redis服务端的状态,把Redis服务端的状态由非事务状态切换到事务状态,非事务状态会立即响应并执行客户端的请求,
阅读全文
摘要:https://leetcode-cn.com/problems/powx-n/submissions/ 把x的n次方用x的n/2次方与x的n/2次方相乘优化,这是一个递归的问题。leetcode把他归在了二分的tag里,所以能用除以二来优化的都算二分 x4=x2*x2;x5=x2*x2*x n为奇
阅读全文
摘要:原理 Redis数据类型及实现 过期时间实现 跳表 Redis直接操作是什么??? 持久化 事务 Redis为什么这么快 应用 保证Redis缓存和数据库一致性 路由 单线程 集群 (哈希槽,主从复制,节点选举,MOVE和ASK等等) 主从复制 如何保证高可用性 分布式锁
阅读全文
摘要:静态资源放在哪 静态资源不要放在WEB-INF里面,放在和WEB-INF同级的目录里,一起放在webapp下,原生tomcat中,这里的资源可以直接访问。 springmvc配置怎么写 配置好之后先在浏览器里试一试能不能访问,能访问了在去修改前端模板路径。 前端页面没有达到想要的结果,打开控制台看看
阅读全文
摘要:根据数据库表生成pojo mapper接口 mapper.xml Example对象。主要由两部分组成:1、generator配置文件 2、运行配置文件 1、generator配置文件 在手写配置文件的时候最好先引入mybatis-generator的依赖,在没有引入依赖的情况下虽然xml文件开头引
阅读全文
摘要:在jdk5.0之前AQS框架下的锁的性能是远远超过synchronized的,从jdk6.0开始对synchronized做出优化后二者在性能上差异已经不大了。ReentrantLock的有点在于: 灵活性。加锁解锁的过程是可控的,synchronized加锁解锁过程是编译完成后JVM来实现的 可响
阅读全文
摘要:编码过滤器 rest风格过滤器 DispatchServlet Spring容器配置文件 SpringMVC配置文件
阅读全文
摘要:信号量,用于控制并发的线程的数目。信号量在JUC下的实现,每当一个线程进入临界区信号量减少,线程释放锁后信号量增加。 1.1 简单使用 初始化permit为10的信号量,acquire减少2,release增加2,本质上等价于permit=5,acquire release都是1的信号量,并发线程数
阅读全文
摘要:为容器中注册Bean @Configuration代表该类是一个配置类,配置类起到的作用和xml配置文件一样 @Bean代表该方法的返回对象作为Bean加入IOC容器,默认Bean的id是方法的名称。可以在@Bean注解里更改value的值来更改名称 为容器中注册Bean 包扫描 Component
阅读全文
摘要:1.1 什么是Docker slogan:Build Ship Run Any App Anywher。关键在于Ship,通过把程序和程序运行所需要的环境一起交付。 Linux容器技术: Docker是在Linuk容器(Linux Containers)技术的基础上发展起来的。LUX把单个操作系统的
阅读全文
摘要:为什么要使用docker https://www.cnblogs.com/AshOfTime/p/10755479.html docker的使用场景 docker和虚拟机比较的优势 https://www.cnblogs.com/AshOfTime/p/10755479.html docker之间的
阅读全文
摘要:5.1 运输层协议概述 5.1.1 进程之间的通信 主要讲了一个问题:为什么在网络层已经提供数据通信服务(IP数据报)的前提下还需要运输层? 运输层的地位:运输层直接向应用层提供服务,而路由器在进行路由转发的时候不具有运输层和应用层。 运输层的作用:1、为进程提供服务。网络层提供的数据报传输服务只能
阅读全文
摘要:1、简单理解 在jdk1.5之前用于实现简单的等待通知机制,是线程之间通信的一种最原始的方式。考虑这样一种等待通知的场景:A B线程通过一个共享的非volatile的变量flag来实现通信,每当A线程观察到flag为true的时候,代表着有工作需要做,A线程处理任务然后吧flag改成false。B线
阅读全文
摘要:1、什么是表单重复提交 1.1 刷新页面 在jsp页面点击提交后,会有一个post请求发到testController中,该Controller直接返回success视图。 此时虽然页面跳转到了success视图,但是浏览器URL里显示的还是hello,如果此时刷新浏览器那么会重复是向后台提交数据。
阅读全文
摘要:由于HTTP是一种无状态的协议,服务器端无法知道用户与客户端交互的状态,比如如果一个用于之前已经访问过该服务器,服务器无法知道该用户是第二次访问,Session和Cookie都是用来保存用户与后端服务器的交互状态,简单来说Cookie存储在用户端,而Session存储在服务器端,这种存储方式的不同造
阅读全文
摘要:页面打开跳转到登陆页面 登陆成功跳转到成功页面 登陆失败再次返回登录页面,并增加提示信息 1、首页跳转到登陆页面 Tomcat服务器启动时默认加载WEB-INF下的index.jsp,可以通过修改xml配置的方式来改变Tomcat这一默认行为。这里使用springMVC来实现这个功能。 第一种实现方
阅读全文
摘要:AOF持久化在硬盘上保存的是对Redis进行的逻辑操作,类似InnoDB中的bin log。说白了就是你对一个Redis输入了哪些语句,AOF文件都会原封不动的保存起来,等到需要回复Redis的时候再把这些语句执行一遍。 11.1 AOF持久化的实现 AOF简单的理解是把执行的语句记录在硬盘的文件上
阅读全文
摘要:Redis是一种内存数据库,掉电即失,为了解决这个问题Redis提供了RDB持久化功能,该功能可以把Redis中的内容以RDB文件的形式存储在硬盘上,并且每次RedisServer启动的时候都会尝试从RDB文件中恢复内容。 10.1 RDB文件的创建与载入 创建RDB文件可以使用SAVA BGSAV
阅读全文
摘要:主要用于解决查询条件不确定的情况,比如前台表单提交用于在Controller里生成一个pojo类,如果用户并没有完全提交一个pojo类的所有字段,那么Controller接收到的pojo类是包含一些null的,所有在SQL查询的时候不用去理会这些Null,根据查询传入的内容不同,SQL语句也相应的修
阅读全文
摘要:四个方面的内容 各个网络如何连接成一个大的互联的网络,即互联网 IP地址和物理地址的关系 IP地址的计算与理解 路由选择协议的工作原理 4.1 网络层提供的两种服务 网络层提供服务的对象的运输层,那么网络层提供“面向连接”还是“无连接”的服务呢?即传输的可靠性是由网路还是端系统来保证? 所谓面向连接
阅读全文
摘要:很重要的一章,通过两种重要的结构体介绍了单机数据库的实现,其次介绍了数据库键过期的删除策略 9.1 服务器中的数据库 对每一个Redis服务器,或者每开启的一个Redis Server进程,它都对应着一个redisServer的结构,该结构包含两个重要的属性:1、数据库数组 2、数据库数组的长度即该
阅读全文
摘要:1、反射 通过反射加载类的构造器并新建对象 通过反射执行方法,这种执行是在先使用new关键字创建了对象的情况下,也可以使用反射创建对象然后反射执行方法 其实就是把上面的两种结合起来 2、动态代理 所谓代理模式就是在不改变方法源码的情况下对原方法进行增强,允许用户在运行期间创建基于接口的代理去增强接口
阅读全文
摘要:4.1基本结构 Redis中的字典和Java中的HashMap结构类似,但Redis中字典不等于哈希表。 每一个哈希表dictht结构中存储着一个指向数组的指针,该数组用于存储键值对,除此之外存储着数组的长度、已经存储的键值对的数量、用于计算索引的哈希掩码。 数组中每个节点的结构也和Java中Has
阅读全文
摘要:无论Controller是何种返回类型最终都会被封装成一个ModelAndView对象,然后交由ViewResolver解析成Vie对象。该接口定义非常简单,根据传入视图的逻辑名(var1)和相应的国际化信息返回View对象。 大部分接口的实现类是继承AbstractCachingViewResol
阅读全文
摘要:相亲怎么做 web应用需要放在Tomcat容器中才能启动,Tomcat容器内有一个默认的web.xml文件,在自己项目中配置的XML文件都是继承自Tomcat中的全局XML文件并重写其中相应配置,这种继承且重写的关系和子类继承父类并重写相关方法一样,如果子类重写了父类的方法,那么就使用子类的方法,反
阅读全文
摘要:在执行Controller方法前都会新建一个Map对象称为隐含模型,该Map对象是共享的,如果一个方法的入参为Map ModelAndMap ModelMap等类型,那么会把隐含模型当做入参赋给方法。所以这提供了另一种间接给Controller传递参数的方法:在A方法中向隐含模型写入数据,可以在B方
阅读全文
摘要:1、把bean交给springboot管理 springboot也是一个spring容器。把一个bean交给springboot的容器有三种方法,前两种是先把bean交给spring容器再把spring容器交给springboot容器,第三种是直接交给springboot容器。 1.1 @Impor
阅读全文

浙公网安备 33010602011771号