首页

来自智得网
跳转至: 导航、​ 搜索

精选文章

Final【Java】查看全文
Final是Java的关键字,Final可以用于修饰类、方法、变量(包括成员变量和局部变量)。

Java类使用Final修饰之后,该类不可以再被继承,这样做通常处于安全考虑。 使用final方法的原因有两个。 第一个原因是把方法锁定,以防任何继承类修改它的含义; 第二个原因是出于效率考虑,早期的 Java 实现版本中,会将 final 方法转为内嵌调用,内嵌调用在方法体较小时候会因为减少了方法调用成本而得到一定的效率提升。最近的Java版本中,已经不需要使用final方法进行这些优化。 Java类的 private 方法模式是Final方法。 被Final修饰的Java类中所有的成员方法默认都是Final方法。 Final修饰变量时候的语义是该变量的值不可被修改。 内存屏障 通过 Final 关键词修饰的变量,必须初始化之后才可以使用。 为了避免重排序,Final 的变量在构造方法中加入了内存屏障。构造函数结束之前 Final 变量增加了StoreStore内存屏障,在初次读取 final 变量之前加上了 LoadLoad 内存屏障。 加入内存屏障可以避免未被初始化的变量被其他线程使用。 语法检验 Java类的使用需要经历加载,链接,初始化之后才能使用。 在链接阶段又分为校验、准备以及解析的过程。 在校验阶段Java 虚拟机会对字节码进行语义检查,对于不符合JVM规范的指令,Java虚拟机会返回校验失败的错误。 被定义为Final的类或者成员方法禁止被继承或者重写会在这个阶段进行校验。 Final类

当final修饰类的时候表明该类不能被继承,并且类中所有的属性和方法都默认是final类型,如String…
代理模式查看全文
代理模式.png
代理模式(Proxy)是一种常用的设计模式,该模式一般情况下通过组合的方式包装了实际的服务提供方。

代理模式中增加了代理的角色,代理类似于中介横在客户端和服务提供方之间,客户端通过代理对象访问目标对象,屏蔽了实际的目标对象。 除了中介功能之外,代理模式通常可以在目标对象实现的基础上会增加扩展的功能,这些功能一般是横向的功能,例如权限,日志等功能。代理模式可以不修改实际的服务提供方而通过代理实现这些通用的功能,符合软件设计中的开闭原则。 代理模式有两种实现,分别是静态代理或者动态代理。 静态代理 静态代理一般和目标服务对象提供类似的接口,但是实际的执行逻辑一般通过组合实际的目标提供方来实现,而代理提供扩展的功能。 动态代理 动态代理不需要手动实现静态代理中的接口逻辑,而可以通过反射或者字节码技术自动生成代理的实现类。 JVM内置了动态代理的方案,一般使用Proxy类的 newProxyInstance 方法:而扩展方法通常使用 InvocationHandler 来实现:但是JVM提供的动态代理方案需要被扩展的服务提供者必须定义有接口,如果希望对没有接口的类进行扩展,可以使用字节码技术,例如AspectJ等。

Spring中AOP的实现就是通过动态代理实现的。
Redis查看全文
Redis的hash存储结构.png
Redis是一个开源软件,遵守BSD 协议,其本质上是一个Key-Value类型的内存数据库。但是和其他的KV缓存例如memcached不同的地方是其功能更加完善,特性更加丰富。

Redis支持多种的数据结构,例如String,Hash,List,Set,ZSet等 Redis支持数据持久化 Redis支持主从结构,支持集群化部署 Redis支持原子操作,可以安全地 SET 或 INCR 键,添加和删除集合中的元素等。 Redis支持通过Lua脚本语言实现事务,原子操作包装等 Redis有较高的性能,支持pipeline等批量操作。 线程模型 Redis基于Reactor模式实现了网络处理模块,该模块分为4部分 套接字管理,Redis是Client-Server架构,Client请求数据的时候需要通过网络链接,所以Redis Server需要对这些链接进行管理,比如移除超时的连接等。 IO多路复用程序,Redis的I/O多路复用有多套实现,分别利用select、epoll、evport和kqueue这些I/O多路复用函数库来实现。 事件分发,多路复用会根据IO事件的类型,例如链接事件,读事件,写事件进行不同的处理逻辑,所以需要事件分发器分到不同的处理器。 事件处理器,不同的事件处理器分别处理连接、读、写等事件。 Redis的IO模型是基于Reactor的单线程,但是可以承担较高的QPS,原因如下: Redis的操作都是基于内存的,所以速度非常快。 Redis使用哈希作为索引,对于大部分查询只需要O(1)的事件复杂度就可以找到key对应的数据。

Redis是基多路复用模型中的epoll模型进行网络通讯的,epoll模型的事件监听机制…

热门分类

算法题库

精选内容