摘要:
Keytool是一个有效的安全钥匙和证书的管理工具. Java 中的 keytool.exe (位于JDK\Bin下)可以用来创建数字证书,所有的数字证书是以一条一条(用别名区别,不区分大小)地存储在证书库(keystore|密钥库)中,证书库中的一条数字证书包含该证书的私钥,公钥, 以及对应的信息 阅读全文
摘要:
Keytool是一个有效的安全钥匙和证书的管理工具. Java 中的 keytool.exe (位于JDK\Bin下)可以用来创建数字证书,所有的数字证书是以一条一条(用别名区别,不区分大小)地存储在证书库(keystore|密钥库)中,证书库中的一条数字证书包含该证书的私钥,公钥, 以及对应的信息 阅读全文
摘要:
传统开发中,系统往往是以单体应用形式存在的,没有横跨多个数据库。我们利用关系型数据库自带的事务管理机制就能满足业务中对事务的需求。而大型互联网平台往往是由一系列分布式系统构成的,在SOA和微服务架构盛行的今天,一个看起来简单的功能,内部可能需要调用多个服务(并操作其下的多个数据库),情况会复杂很多。 阅读全文
摘要:
Netty是基于JDK NIO的网络框架 简化了NIO编程, 不用程序自己维护selector, 将网络通信和数据处理的部分做了分离 多用于做底层的数据通信, 心跳检测(keepalived) 1. 数据通信 1.1 Hello World SO_BACKLOG详解:服务器的TCP内核维护两个队列A 阅读全文
摘要:
在JDK的多线程与并发库一文中, 提到了BlockingQueue实现了生产者-消费者模型 BlockingQueue是基于锁实现的, 而锁的效率通常较低. 有没有使用CAS机制实现的生产者-消费者? Disruptor就是这样. disruptor使用观察者模式, 主动将消息发送给消费者, 而不是 阅读全文
摘要:
使用System.getProperty()方法获取JVM信息 使用Sigar获取计算机物理信息 阅读全文
摘要:
背景知识点我 1. BIO JDK5之前, JDK的IO模式只有BIO(同步阻塞)问题: 因为阻塞的存在, 需对每个请求开启一个线程. 过多的线程切换影响操作系统性能解决: 使用线程池, 处理不过来的放入队列, 再处理不过来的会触发其他机制问题: 超过线程池数量的请求需要等待 服务端1: 一个请求~ 阅读全文
摘要:
1) 同步阻塞IO(Blocking IO)2) 同步非阻塞IO(Non-blocking IO)3) IO多路复用(IO Multiplexing)4) 异步IO(Asynchronous IO) 注意以下概念: 1.同步/异步 同步和异步是相对的同步 前后两件任务, 有严格的顺序一致性(依赖和递 阅读全文
摘要:
1.创建多线程 2.定时器Timer 定时任务就是靠多线程实现的 3.互斥 synchronized 保证线程安全(数据完整性) 4.同步 wait/notify 保证线程间执行次序 5.线程间传递参数 共享变量 管道 6.ThreadLocal 该变量形式上共享, 但却是by线程独立 Thread 阅读全文
摘要:
把递归算法转化为非递归算法, 有如下两种基本方法:1)通过分析, 用迭代的方式自底向上. 有时需用栈保存参数2)模拟函数调用过程, 用栈保存入参 尾递归: 一个函数只在return处调用自身。很多编译器就能将其转换为迭代 更通用点的伪代码: 注: 如果递归子函数都在一起且在递归母函数程序的末尾,则无 阅读全文
摘要:
import java.util.Arrays; import java.util.Stack; // 链式存储的二叉树 public class BSTree { private TreeNode root = null; public TreeNode getRoot() { return root; } public BSTree(Tre... 阅读全文
|