摘要: 情景描述: 本地开发机器 A localhost 跳转机器 B 115.236.125.92 数据库服务器 C 10.120.151.245 A可达B,B可达C,A不可达C,A要访问C的数据库。 使用工具: Xshell、Navicat、Mysql 步骤: 1)首先在Xshell上配置一个从A到B的 阅读全文
posted @ 2019-12-28 23:04 默月 阅读(482) 评论(0) 推荐(0) 编辑
摘要: 数据库@触发器 一篇很棒的 MySQL 触发器学习教程 基础知识@集合 [Java基础要义] HashMap的设计原理和实现分析 [Java基础要义]HashMap、LinkedHashMap元素遍历机制探讨 深入浅出ConcurrentHashMap(1.8) 深入分析ConcurrentHash 阅读全文
posted @ 2019-12-28 22:43 默月 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 账户管理类 Github 石墨文档 博客园子 知识学习类 Java技术驿站 cuzz's blog GithubDocs 简书·分享 资料下载类 职场大变样@moyue 英文出版书 网盘搜索类 百度网盘搜索 百度网盘之家 小不点搜索(网站偶尔挂) 99网盘搜索 Java1234 文档搜索类 文档搜索 阅读全文
posted @ 2019-12-28 22:27 默月 阅读(258) 评论(0) 推荐(0) 编辑
摘要: Lambda表达式的基本结构: (param1, param2, param3) { 执行体【一系列执行语句】 } 函数式接口的条件: 1. 如果我们在某个接口上声明了FunctionInterface注解,那么编译器就会按照函数式接口的规范来要求该接口 2. 如果一个接口只有一个抽象方法,即使没有 阅读全文
posted @ 2019-12-28 17:10 默月 阅读(79) 评论(0) 推荐(0) 编辑
摘要: redis持久化的意义当然是 故障恢复, 当遇到为什么要用的问题时候,想一想没有用的场景怎么样,再想一想用了的场景怎么样 1. 如果redis不做持久化,它是保存在内存中的,如果机器宕机了,数据就直接没有了,要恢复数据,只能大批量的读取数据库数据,这样的动作很慢,增大了数据库的压力。因此,不做持久化 阅读全文
posted @ 2019-12-28 15:50 默月 阅读(253) 评论(0) 推荐(0) 编辑
摘要: Netty实现文件服务器(基于HTTP协议) Netty最佳实践(数据通信、心跳检测) Mina入门 阅读全文
posted @ 2019-12-28 15:46 默月 阅读(80) 评论(0) 推荐(0) 编辑
摘要: Netty初步 HelloWorld Netty核心技术之(TCP拆包和沾包问题) Netty核心技术之(解编码技术) Netty的UDP实现 Netty的WebSocket实现 阅读全文
posted @ 2019-12-28 15:45 默月 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 传统的同步阻塞式IO编程、伪异步IO实现 Socket Socket即套接字,通过TCP3次握手,4次挥手实现,建立连接的过程分为4个步骤 服务器监听 服务端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络的状态 客户端请求服务器 客户端的套接字提出连接请求,要连接的目标是服务 阅读全文
posted @ 2019-12-28 15:44 默月 阅读(119) 评论(0) 推荐(0) 编辑
摘要: JVM虚拟机:JVM上不只能运行java程序,scalar等其他语言也可以在jvm上运行,只要能生成jvm上可以理解的字节码文件就行。 类的生命周期 加载、连接、初始化、使用和卸载 类的加载 加载:查找并加载类的二进制数据,class文件,类型的加载就是将类型所在的class文件/字节码文件从磁盘上 阅读全文
posted @ 2019-12-28 15:28 默月 阅读(148) 评论(0) 推荐(0) 编辑
摘要: * Disruptor是什么? * Disruptor是一个高性能的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式的实现,或者事件监听模式的实现 * Disruptor入门程序 * 在Disruptor中实现HelloWorld入门程序的步骤: * 1.建立一 阅读全文
posted @ 2019-12-28 15:24 默月 阅读(208) 评论(0) 推荐(0) 编辑
摘要: * JDK多任务执行框架 * Executor框架 Executor是一个线程工厂,可以创建特定功能的线程池 Executor创建线程池的方法: * newFixedThreadPool() 创建一个【固定数量】的线程池,该线程池的线程数量始终不变 * 当有一个任务提交时,若线程池中空闲,则立即执行 阅读全文
posted @ 2019-12-28 15:23 默月 阅读(137) 评论(0) 推荐(0) 编辑
摘要: * 解决脏读 * 造成脏读的原因是在写入数据(set)的时候,调用了读取数据(get)的方法,造成读到修改的数据的现象。 * 解决的办法是:使用synchronize同时对get方法和set方法加锁,这样set的时候就无法get * 锁重入 * 概念:对于拿到某个锁的线程,它由可能再拿到其他的锁。对 阅读全文
posted @ 2019-12-28 15:22 默月 阅读(135) 评论(0) 推荐(0) 编辑
摘要: redis持久化的意义当然是 故障恢复,当遇到为什么要用的问题时候,想一想没有用的场景怎么样,再想一想用了的场景怎么样1. 如果redis不做持久化,它是保存在内存中的,如果机器宕机了,数据就直接没有了,要恢复数据,只能大批量的读取数据库数据,这样的动作很慢,增大了数据库的压力。因此,不做持久化处理 阅读全文
posted @ 2019-12-28 15:08 默月 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 轮询调度: 一次性分发所有消息,保证消息平均分配,不管消费者是否能正常消费消息应答: 保证消费端能确实消费,不丢失公平转发: 一个一个分发所有消息,在保证分发到的线程确认回复后,才分发下个消息给下个空闲的消费者,消息持久化: 保证队列中的消息不丢失,包括3要素:交换器、消息队列、消息都必须声明持久化 阅读全文
posted @ 2019-12-28 15:04 默月 阅读(169) 评论(0) 推荐(0) 编辑