摘要:
1. 部署 start.cmd start /b weed.exe -log_dir=./log/master1/ master -ip=127.0.0.1 -port=19333 -peers=127.0.0.1:19333 -defaultReplication=001 -mdir=./data 阅读全文
摘要:
1. 背景 网络分区:俗称“脑裂”。当网络发生异常情况,导致分布式系统中部分节点之间的网络延时不断变大,最终导致组成分布式系统的所有节点中,只有部分节点之间能够进行正常通信,而另一些节点则不能。 当网络分区出现时,分布式系统会出现局部小集群。 2. CAP CAP理论指的是在一个分布式系统中,不可能 阅读全文
摘要:
第4章 类和接口 类和接口是Java程序设计语言的核心,它们也是Java语言的基本抽象单元。Java语言提供了许多强大的基本元素,供程序员用来设计类和接口。 13. 使类和成员的可访问性最小化 要区别设计良好的模块与设计不好的模块,最重要的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据 阅读全文
摘要:
第3章 对于所有对都通用的方法 尽管Object是一个具体类,但是设计它主要是为了扩展,它所有的非final方法(equals,hashCode,toString,clone和finalize)都有明确的通用约定,因为它们被设计成是要被覆盖的。任何一个类,它在覆盖这些方法的时候,都有责任遵守这些通用 阅读全文
摘要:
第1章 如何最有效地使用Java程序设计语言机器基本类库:java.lang,java.util,java.util.concurrent和java.io。 Sun JDK1.6_05版本 第2章 创建和销毁对象 创建和销毁对象:何时以及如何创建对象,何时以及如何避免创建对象,如何确保它们能够适时地 阅读全文
摘要:
1.概述 使用mybatis的主要Java接口就是SqlSession。可以通过这个接口来执行命令,获取映射器和事务管理。 SqlSession是由SqlSessionFactory实例创建,SqlSessionFactory对象包含创建SqlSession实例的所有方法。而SqlSessionFa 阅读全文
摘要:
1. 概述 mybatis的真正强大在于它的映射语句。由于它的异常强大,映射器的XML文件就显得相对简单,如果拿它跟具有相同功能的JDBC代码进行对比,省掉将近95%的代码。mybatis是针对SQL构建的,并且比普通方法做的更好。 SQL映射文件有几个顶级元素(按照它们被定义的顺序): selec 阅读全文
摘要:
1. 概述 与大多数持久层框架一下,Mybatis同样提供了一级缓存和二级缓存的支持。 一级缓存:基于PerpetualCache的HashMap本地缓存,其存储作用域为Session,当Session做flush或close之后,该Session中的所有cache就将清空; 二级缓存与一级缓存机制 阅读全文
摘要:
1. 属性列表 Mybatis的配置文件中包含了影响mybatis行为的设置(settings)和属性(properties)信息。文档的顶层结构如下: ·configuration 根配置 ·properties 属性 ·settings 设置 ·typeAliases 类型别名 ·typeHan 阅读全文
摘要:
1. 入门 1.1 引JAR包 要使用mybatis,只需将mybatis-x.x.x.jar,文件置于classpath中即可。 如果使用maven来构建项目,则需要将dependency代码置于pom.xml文件中: 1.2 从XML中构建SQLSessionFactory 每个基于 MyBat 阅读全文
摘要:
1. Base64 BASE64是一种编码方式,通常用于把二进制数据编码为可写的字符形式的数据,这是一种可逆的编码方式。 编码后的数据是一个字符串,其中包含的字符为:A-Z、a-z、0-9、+、/ 共64个字符:26 + 26 + 10 + 1 + 1 = 64。 注:其实是65个字符,“=”是填充 阅读全文
摘要:
1. slf4j-api slf4j:Simple Logging Facade for Java,为java提供的简单日志Facade。Facade门面,更底层一点说就是接口。它允许用户以自己的喜好,在工程中通过slf4j接入不同的日志系统。 因此slf4j入口就是众多接口的集合,它不负责具体的日 阅读全文
摘要:
1. 描述 缓存可以说是无处不在,比如PC电脑中的内存、CPU中的二级缓存、HTTP协议中的缓存控制、CDN加速技术都是使用了缓存的思想来解决性能问题。 缓存是用于解决高并发场景下系统的性能及稳定性问题的银弹。 1.1 缓存穿透 缓存穿透是指查询一个根本不存在的数据,缓存和数据源都不会命中。出于容错 阅读全文
摘要:
1. 算法 1.1 AES 阅读全文
摘要:
1. API 1.1 byte[]、File、InputStream 互相转换 2. 运行 2. 1 java编译 Error: Could not find or load main class java执行包main方法 在java源文件开头有包声明语句,编译的时候需要指定生成的class文件路 阅读全文
摘要:
1. 描述 可异步关闭和中断的Channel。 (1)实现InterruptibleChannel接口的Channel支持异步关闭:如果一个线程IO阻塞在一个可中断的channel,另一个线程可以执行channel的close方法。这将导致阻塞线程收到AsynchronousCloseExcepti 阅读全文
摘要:
1. 背景 SelectableChannel对象的多路复用器。 可以通过调用Selector.open()方法创建Selector对象。Selector.open()方法会利用系统默认的SelectorProvider创建Selector对象。也可以通过自定义SelectorProvider对象的 阅读全文
摘要:
1. 概述 现在使用NIO的场景越来越多,很多技术框架都使用NIO技术,比如Tomcat,Jetty,Netty等。 传统IO基于字节流和字符流进行操作,而NIO基于Channel和Buffer进行操作,数据总是从Channel读取到Buffer中,或者从Buffer写入到Channel。Selec 阅读全文
摘要:
1. 描述 基于Jetty-9.4.8.v20171121。 Handler是Jetty服务处理器,用户Server处理HTTP请求。 Handler可以做如下处理: (1)完全生成HTTP响应; (2)检查或修改请求然后调用其他Handler,比如HandlerWrapper; (3)传递请求给一 阅读全文
摘要:
1. 描述 基于Jetty-9.4.8.v20171121。 Connector接受远程机器的连接和数据,允许应用向远程机器发送数据。 1.2 类图 从类图看出AbstractConnector继承ContainerLifeCycle,所以具有Container和LifeCycle特性。 此外有一个 阅读全文