草庐IT

《分布式技术原理与算法解析》学习笔记Day07

分布式锁什么是分布式锁?为了实现分布式互斥,我们需要在某个地方做个标记,这个标记是每个线程都可以看到,当标记不存在时可以设置该标记,当标记被设置后,其他线程只能等待拥有该标记的线程执行完成,并释放该标记后,才能去设置该标记和访问共享资源。这里的标记就是我们讨论的锁。锁就是在多线程同时访问同一资源的场景下,为了让线程互不干扰地访问共享资源,从而保证操作的有效性和正确性的一种标记。分布式锁是指在分布式环境下,系统部署在多个机器中,实现多进程分布式互斥的一种锁。为了保证多个进程都可以看到锁,锁需要通过公共存储来管理,这样才能实现多个进程并发访问同一个临界资源,同一个时刻只有一个进程可访问共享资源,确

day07-SpringMVC底层机制简单实现-03

SpringMVC底层机制简单实现-03https://github.com/liyuelian/springmvc-demo.git7.任务6-完成控制器方法获取参数-@RequestParam功能说明:自定义@RequestParam注解和方法参数名获取参数。当浏览器访问Handler方法时,如果url带有参数,可以通过自定义的@RequestParam注解来获取该参数,将其值赋给Handler方法中该注解修饰的形参。如:url=http://ip:port/web工程路径/monster/find?name=孙悟空@RequestMapping(value="/monster/find"

day07-SpringMVC底层机制简单实现-03

SpringMVC底层机制简单实现-03https://github.com/liyuelian/springmvc-demo.git7.任务6-完成控制器方法获取参数-@RequestParam功能说明:自定义@RequestParam注解和方法参数名获取参数。当浏览器访问Handler方法时,如果url带有参数,可以通过自定义的@RequestParam注解来获取该参数,将其值赋给Handler方法中该注解修饰的形参。如:url=http://ip:port/web工程路径/monster/find?name=孙悟空@RequestMapping(value="/monster/find"

day07-Spring管理Bean-IOC-05

Spring管理Bean-IOC-053.基于注解配置bean3.3自动装配基本说明:基于注解配置bean,也可以实现自动装配,使用的注解是:@AutoWired或者@Resource@AutoWired的规则说明(1)在IOC容器中查找待装配的组件的类型,如果有唯一的bean装配(按类型),则使用该bean装配(2)如果待装配的类型对应的bean在IOC容器中有多个,则使用待装配的属性的属性名作为id值进行查找,找到就装配,找不到就抛异常@Resource的规则说明(1)@Resource有两个属性比较重要,分别是name和typeSpring将@Resource注解的name属性解析为be

day07-Spring管理Bean-IOC-05

Spring管理Bean-IOC-053.基于注解配置bean3.3自动装配基本说明:基于注解配置bean,也可以实现自动装配,使用的注解是:@AutoWired或者@Resource@AutoWired的规则说明(1)在IOC容器中查找待装配的组件的类型,如果有唯一的bean装配(按类型),则使用该bean装配(2)如果待装配的类型对应的bean在IOC容器中有多个,则使用待装配的属性的属性名作为id值进行查找,找到就装配,找不到就抛异常@Resource的规则说明(1)@Resource有两个属性比较重要,分别是name和typeSpring将@Resource注解的name属性解析为be

07.工厂模式-抽象工厂

publicinterfaceCar{   Stringexcute();}publicclassBenchiCarimplementsCar{   publicStringexcute(){       System.out.println("奔驰车生产....");       return"OK";   }}publicclassBwmCarimplementsCar{   publicStringexcute(){       System.out.println("宝马车生产....");       return"OK";   }}publicclassBydCarimplemen

07.工厂模式-抽象工厂

publicinterfaceCar{   Stringexcute();}publicclassBenchiCarimplementsCar{   publicStringexcute(){       System.out.println("奔驰车生产....");       return"OK";   }}publicclassBwmCarimplementsCar{   publicStringexcute(){       System.out.println("宝马车生产....");       return"OK";   }}publicclassBydCarimplemen

读Java8函数式编程笔记07_设计和架构的原则

1. SOLID原则1.1. 开发良好面向对象程序的准则1.2. Liskovsubstitution里氏替换1.3. Interfacesegregation接口隔离1.4. Singleresponsibility单一功能原则1.4.1. 程序中的类或方法只能有一个改变的理由1.4.2. 一个类不仅要功能单一,而且还需将功能封装好1.5. Open/closed开闭原则1.5.1. 软件应该对扩展开放,对修改闭合1.5.1.1. 让软件易于修改1.5.2. 高阶函数在用多态来实现开闭原则1.5.3. 使用不可变对象实现开闭原则1.6. Dependencyinversion依赖反转原则1.

读Java8函数式编程笔记07_设计和架构的原则

1. SOLID原则1.1. 开发良好面向对象程序的准则1.2. Liskovsubstitution里氏替换1.3. Interfacesegregation接口隔离1.4. Singleresponsibility单一功能原则1.4.1. 程序中的类或方法只能有一个改变的理由1.4.2. 一个类不仅要功能单一,而且还需将功能封装好1.5. Open/closed开闭原则1.5.1. 软件应该对扩展开放,对修改闭合1.5.1.1. 让软件易于修改1.5.2. 高阶函数在用多态来实现开闭原则1.5.3. 使用不可变对象实现开闭原则1.6. Dependencyinversion依赖反转原则1.

day24--Java集合07

Java集合0714.HashMap14.1HashMap介绍Map接口的常用实现类:HashMap、Hashtable、PropertiesHashMap是Map接口使用频率最高的实现类HashMap是以key-value对的方式来存储数据(HashMap$Node类型)key不能重复,value可以重复。允许使用null键和null值如果添加相同的key键,则会覆盖原来的key-value,等同于修改(key不会替换,value会替换)与HashSet一样,不保证映射的顺序,因为底层是以hash表的顺序来存储的。(JDK8的HashMap底层:数组+链表+红黑树)HashMap没有实现同步