![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java知识整理
Dawson_Jiang
这个作者很懒,什么都没留下…
展开
-
win10 git ssh key 配置后仍然无法连接
git ssh key原创 2022-01-21 21:13:30 · 1086 阅读 · 0 评论 -
纯Java实现中继服务器
纯Java实现类似内网穿透,实现shell等命令直达内网终端.结构简单,基础功能完整。一、系统分三部分:1.1服务端server:运行在外网服务器上,负责管理各个终端和用户端,控制和转发消息;1.2 终端terminal:运行在内网终端上,负责连接服务器和本地第三方服务,如shell;1.3 用户端user:用户操作的客户端,负责与用户交互,连接服务器和本地第三方客户端,如xshell等。二、 系统核心流程:2.1.服务器启动,完成配置初始化等工作;2.2.终端和用户端启动,连..原创 2021-08-20 17:05:04 · 927 阅读 · 0 评论 -
Kotlin不到100行代码完成五子棋核心逻辑
废话不多说,直接上代码:package com.dawson.kstudy/** * 五子棋 */class FiveInARow { /** * 棋盘大小 */ private val mRows = 15 /** * 存放黑棋 */ private val black = Array(mRows) { ByteArray(mRows) } /** * 存放白棋 */ priva原创 2021-07-23 15:25:21 · 356 阅读 · 1 评论 -
Android客户端GRPC通信框架基本使用
因业务需要,需要使用rpc协议通信,java平台使用Google发布的GRPC框架应该是最合适的了。本篇主要讲解GPRC框架Android客户端的使用,关于RPC协议本篇不做说明,自行百度和Google;关于grpc框架高级应用和具体原理后面补上。RPC协议将通信数据映射成方法和接口调用。本篇客户端使用android平台,服务器端为java控制台程序。废话不多说,直接上代码:1.Andro...原创 2018-10-25 23:09:34 · 2236 阅读 · 0 评论 -
Rxjava 基本原理解析(一)
ReactiveX是一种编程模型,全称是Reactive Extensions,即可扩展的响应式编程,微软在2012年11月开源,官网 reactivex.io。Rxjava是Rx的java语言版本。本系列文章将以rxjava2版本进行分析。本篇主要介绍观察者模式和rxjava是如何实现观察者模式的。 响应式编程主要采用观察者模式进行开发,即观察者(obs...原创 2018-09-07 15:50:14 · 1627 阅读 · 0 评论 -
Rxjava基本原理解析(三)
上一篇已经介绍了Rxjava的整体链式设计原理和思想,今天我们介绍和分析最常用的操作符create以及其源码设计。 create操作符主要用于创建一个源observable,即链式操作的第一个observable:事件源。结合上一篇的整体分析,我们先看看一个operator的图,并结合图和源码分析create操作符:首先看看create操作符的使用代码:Observ...原创 2018-09-10 10:54:29 · 442 阅读 · 0 评论 -
Rxjava基本原理解析(五)
上一篇分享了线程切换的一个操作符,今天我们继续分析线程切换的另一个操作符observeOn以及其源码设计。 observeOn操作符用于切换observer的线程:Observable.create((ObservableOnSubscribe<String>) e -> { e.onNext("dawson"); ...原创 2018-09-12 14:34:05 · 262 阅读 · 0 评论 -
Rxjava 基本原理解析(二)
上一篇介绍了Rxjava中观察者模式的基本实现原理,本篇主要介绍Rxjava链式操作实现的基本原理,即一个事件发出后,经过多次逻辑操作,最后到完成订阅的过程。 上篇中有一个事件原即被观察者observable和一个观察者observer,并完成订阅。而实际业务逻辑中一个事件原往往需要其他业务逻辑处理后最后才到订阅者手中,rxjava使用操作符来解决该问题,实现链式操作,...原创 2018-09-09 01:59:11 · 321 阅读 · 0 评论 -
Rxjava基本原理解析(四)
接着上一篇的分享模式,今天我们介绍和分析线程切换操作符subscribeOn以及其源码设计。 Rxjava的一个最大优点之一就是灵活的线程切换,切换过程不影响整体链式逻辑流程,既方便又清新。为了对比,还是再次将一个操作符的结构图放上:subscribeOn操作符用于切换事件源的线程,一般用在第一个observable的后面:Observable.create((Ob...原创 2018-09-11 12:34:18 · 259 阅读 · 0 评论 -
mybatis generator 设置table schema无效
使用mybatis generator插件生产代码时,如果数据库是MySQL 8.x 自定义的表与系统表有同名时,会自动生产两张表的对应代码,而且会有很多冲突和错误,此时设置table的schema也没有效果,需要在连接节点里面添加 属性:<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" conne...翻译 2018-08-08 17:42:11 · 7734 阅读 · 2 评论 -
解决IDEA的"Cannot run program "git": CreateProcess error=2, 系统找不到指定的文件"错误
使用Android Studio开发,用Gradle进行编译,gradle编译过程中使用了git命令,如获取git commit号等作为版本号,报错“Cannot run program "git": CreateProcess error=2, 系统找不到指定的文件”原因:编译时,找不到git 程序。此时发现在Android Studio的terminal里面输入git 出现“git 不是内...原创 2018-07-03 17:53:38 · 14762 阅读 · 5 评论