学习笔记
文章平均质量分 56
wyyl1
人工智能的成功将威胁人类的生存。量子计算机的成功让我们更了解宇宙。生物计算机的成功让人类功能更强大。反质子发动机的成功可以改变交通方式。要实现星际旅行需要空间折叠。
展开
-
柯里化 Java 实现
柯里化(英语:Currying),是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。可以将具有多个参数的函数转换为一个单参数的函数链。这种转变是现在被称为“柯里化”的过程。—— 维基百科优点复用转换逻辑为不同的转换因子创建不同的转换方法解耦可以延迟执行特点返回值类型、参数类型相同可以将一组参数拆成一个一个的函数组合function int (int a, int b, int c) -> .原创 2021-03-02 23:10:43 · 548 阅读 · 0 评论 -
获取随机数据并且不重复
场景介绍1. MySQL 中有 500 条视频数据2. 用户每次请求随机获取视频列表每次从 MySQL 中获取 20 条数据每次获得的数据不能重复3. 用户数量、视频数量会不断增加用户数量数量上限 1,000 万视频数量数量上限 9,000 万方案一 Redis 集合求差集优点每条数据都是随机产生缺点内存消耗巨大方案二 随机一个页数,每次请求页数递增优点内存消耗低缺点只是分页数随机没有做到所有数据都随机...原创 2021-02-23 20:33:16 · 943 阅读 · 0 评论 -
Java 最强并行(I/O密集型)方法
预备知识理论来源:《Java实战(第2版)》16.3.4 使用定制的执行器调整线程池的大小,《Java 并发编程实战》中的公式线程数 = Cpu 核心数 * 期望的 CPU 利用率(0和1之间) * (1 + 等待时间/计算时间)CPU 核心数可以通过 Runtime.getRuntime.availableProcessors() 得到避免过载,最好设置线程数上限并行:使用流还是 CompletableFuture ?流计算密集型没有 I/O因为实现简单,同时效率也可能是最原创 2021-02-20 21:45:19 · 958 阅读 · 0 评论 -
Ubuntu开机自动启动脚本
版本:Ubuntu 18.04.3 LTS、Ubuntu 20.04.1 LTS以自动启动fpr为例1. 编写启动脚本auto-start.sh#!/bin/sh# 打印测试 echo $(date) Test file > /home/aoe/downloads/auto-start.log# 启动frp/home/aoe/usr/frp_0.33.0_linux_amd64/frpc -c /home/aoe/usr/frp_0.33.0_linux_amd64/aoe.原创 2020-09-13 12:22:38 · 450 阅读 · 0 评论 -
JMeter 集群入门
JMeter 集群入门快速启动1. 下载最新版 JMeter为了避免不必要的错误,客户端、服务端请使用相同版本2. 服务端启动bin/jmeter-server -Djava.rmi.server.hostname=192.168.0.161 -Dserver.rmi.localport=9900 -Dserver_port=9900 -Dserver.rmi.ssl.disable=truejava.rmi.server.hostname:远程访问地址server.rmi.local原创 2020-09-10 21:16:22 · 396 阅读 · 0 评论 -
OkHttp3 Header 为什么不能传中文?
简单解释HTTP 协议只支持在 Header 中 传输 ISO-8859-1 编码格式Hypertext Transfer Protocol – HTTP/1.114.2 Accept-Charset The Accept-Charset request-header field can be used to indicate what character sets are acceptable for the response.This field allows clients capable原创 2020-06-14 23:15:57 · 1167 阅读 · 0 评论 -
Mac终端自动登录服务器
效果输入命令,选择一个序号登录服务器$ aoel(1) first 192.168.1.1 (2) 第二台机器 192.168.1.2配置文件1. 填写服务器信息 computerInfo.ini#ip port user password description192.168.1.1 22 root 123456 first machine原创 2020-06-14 21:59:37 · 816 阅读 · 1 评论 -
网络编程学习笔记
炫酷的协议SPDYGoogle开发的基于TCP的会话层 协议多路复用流:通过单一的TCP连接,可以无限制处理多个HTTP请求。所有请求的处理都在一条TCP连接上完成,因此TCP的处理效率得到提高。WebSocket全双工通信参考资料上野宣. 《图解HTTP》 (图灵程序设计丛书) 人民邮电出版社...原创 2020-04-03 23:39:40 · 163 阅读 · 0 评论 -
数据存储解决方案
复制状态机一个上世纪70年代的理论,现在被广泛用于同步策略,如MySQL、Redis、ES等1978 年 Lamport 的一篇论文《The Implementation of Reliable Distributed Multiprocess Systems》分表历史归档当单表的订单数据太多,多到影响性能的时候,首选的方案是,归档历史订单。所谓归档,其实也是一种拆分数据的策略。...原创 2020-03-30 17:19:34 · 722 阅读 · 0 评论 -
二叉检索树、跳表、数组比较
查询数据结构时间复杂度备注二叉检索树O(log n)-跳表O(log n)理想情况下数组O(log n)-由于有内存局部性原理,数组的查询效率是高于树和跳表的。甚至在小数据的情况下,都有可能数组的移动代价也不高(CPU缓存 + 内存拷贝)。范围查找数组效率会远高于跳表和树:数组能快速处理大段区域(比如使用内存拷贝技术),再叠加局部性原理...原创 2020-03-30 16:19:22 · 722 阅读 · 0 评论 -
裴波那契公式
public int climbStairs(int n) { double sqrt5=Math.sqrt(5); double fibn=Math.pow((1+sqrt5)/2,n+1)-Math.pow((1-sqrt5)/2,n+1); return (int)(fibn/sqrt5); }复杂度分析时间复杂度:O...转载 2020-03-26 14:23:43 · 234 阅读 · 0 评论 -
Java 线程池
四种经典线程池1. newFixedThreadPoolnewFixedThreadPool 将创建一个固定长度的线程池,每当提交一个任务时就创建一个新、线程,直到达到线程池的最大数量,这时线程池的规模将不再变化(如果某个线程由于发生了未预期的Exception而结束,那么线程池会补充一个新的线程)。2. newCachedThreadPoolnewCachedThreadPool ...原创 2020-03-16 01:23:41 · 150 阅读 · 0 评论 -
IntelliJ IDEA Community 常用插件
Spring AssistantMyBatis pluginMyBatis Log PluginLombokFindBugsJBLSpringBootAppGen introMavenPluginMaven RunnerSequenceDiagram 时序图生成工具Key promoter X 快捷键提示String Manipulation 强大的字符串转换Codota ...原创 2020-03-13 19:02:47 · 1909 阅读 · 0 评论 -
程序员学习推荐书籍
Java书名描述备注Java Performance作者 Charlie Hunt;杨晓峰文章中提到过Java Performance:The Definitive Guide作者 Scott Oaks ;杨晓峰文章中提到过原创 2020-02-17 15:32:54 · 1467 阅读 · 0 评论 -
MySQL学习笔记
查找长事务-- 查找持续时间超过 60s 的事务select * from information_schema.innodb_trx where TIME_TO_SEC(timediff(now(),trx_started))>60redo log 与 change bufferredo log 主要节省的是随机写磁盘的 IO 消耗(转成顺序写)change buffer 主...原创 2020-01-16 13:41:36 · 195 阅读 · 0 评论 -
设计模式学习笔记
S.O.L.I.D 原则单一职责(Single Responsibility),类或者对象最好是只有单一职责,在程序设计中如果发现某个类承担着多种义务,可以考虑进行拆分。开关原则(Open-Close, Open for extension, close for modification),设计要对扩展开放,对修改关闭。换句话说,程序设计应保证平滑的扩展性,尽量避免因为新增同类功能而修改已有...原创 2020-01-13 14:19:22 · 146 阅读 · 0 评论 -
Spring学习笔记
Spring Framework 的核心模块spring-core: Spring 基础 API 模块,如资源管理、泛型处理。spring-beans: Spring Bean 相关,如依赖查找、依赖注入。spring-aop: Spring AOP 处理,如动态代理、AOP字节码提升。spring-context: 事件驱动、注解驱动、模块驱动等。spring-expression:...原创 2020-01-11 23:41:29 · 200 阅读 · 0 评论 -
递归
学习要点:避免人肉递归(初学时可以手动画递归状态树),要从函数本身开始写找到最近最简方法,将其拆解成可重复解决的问题(重复子问题)数学归纳法思维递归模板 public void recursion(int level, int param) { // 1. terminator 终结条件 if (level > MAX_LEVEL) { ...原创 2019-12-22 11:42:58 · 160 阅读 · 0 评论 -
二进制(Java 版)
操作效果(十进制)描述备注左移✖️2在末尾添加一位 0⚠️有溢出风险右移将数字除以 2 并求整数商的操作去除末尾的那一位 0操作符号说明左移<<逻辑右移>>>逻辑右移 1 位,左边补 0 即可算术右移>>保持符号位不变,除符号位之外的右移一位并补符号位 1。补的 ...原创 2019-12-17 20:01:23 · 195 阅读 · 0 评论 -
IntelliJ Idea 快捷键
IntelliJ Idea 快捷键整理自视频教程快捷键功能备注打开类⌘ + O打开文件⌘ + ⇧ + O打开单元测试⌘ + ⇧ + T如果没有,可以创建;测试类中使用可以跳回实现代码打开最近打开的文件⌘ + E打开上一次打开的文件⌃ + Tab删除行⌘ + Delete剪切行⌘ + X粘贴时会出现在光标的...原创 2019-12-01 11:53:03 · 389 阅读 · 0 评论 -
可能用到的技术
据说一个比Spring Boot快44倍的Java框架!伯克利开源 Confluo:吞吐量比 Kafka 高 4 到 10 倍原创 2019-03-29 20:37:00 · 179 阅读 · 0 评论 -
《图解Java多线程设计模式》学习笔记
【日】结城浩 著侯振龙 杨文轩 译源码地址点击”随书下载“第1章 Single Threaded Excution 模式 ——通过这座桥的只有一个人java.util.concurrent.Semaphore (计数信号量)P53使用场景确保某个区域”最多只能由N个线程“执行。注意事项semaphore的acquire方法和release方法必须成对调用示例impo...原创 2019-03-16 22:17:58 · 497 阅读 · 0 评论 -
Mysql + Spring事务资料整理
Mysql + Spring事务资料整理Mysql查看存储引擎可提供的引擎列表show engines;当前默认存储引擎show variables like ‘%storage_engine%’;查看某个表用了什么引擎show create table 表名;查看及设置事物隔离级别SELECT @@tx_isolation级...原创 2018-04-22 17:59:32 · 192 阅读 · 0 评论 -
Centos7 安装微服务环境 2.0
查看系统是否64位uname -a添加用户useradd -d /usr/www -m wwwlinux下将目录授权给其他用户的步骤1. 更改目录所有者命令chown -R 用户名称 目录名称chown -R www /usr/www2. 更改目录权限命令chmod -R 755 目录名称chmod -R 755 /usr/wwwroot用户修改其他用户的密码在ro...原创 2019-04-20 20:27:05 · 768 阅读 · 0 评论 -
微服务事务入门
理论CAP 定律,最终一致性Base 理论基于XA协议的两阶段提交FLP(FLP Impossibility Result 不可能性) :在异步通信场景,即使只有一个进程失败,也没有任何算法能保证非失败进程达到一致性!共识算法事务传播机制事务隔离性解决方案XA重量级基于可靠消息的最终一致性方案TCCSaga注意事项基本上,每个人刚开始建立一个分布式系统时,都...原创 2019-04-16 22:58:20 · 187 阅读 · 0 评论 -
Actor模型学习笔记
Akka基于Actor模型构建的高并发微服务框架Lagom原创 2019-06-07 21:11:45 · 384 阅读 · 0 评论 -
Kafka学习笔记
2019-06-12Kafka的不同版本Apache Kafka,也称社区版 Kafka。优势在于迭代速度快,社区响应度高,使用它可以让你 有更高的把控度;缺陷在于仅提供基础核心组件,缺失一些高级的特性。Confluent Kafka,Confluent 公司提供的 Kafka。优势在于集成了很多高级特性且由 Kafka 原班人马打造,质量上有保证;缺陷在于相关文档资料不全,普及率较低,...原创 2019-06-12 00:59:01 · 137 阅读 · 0 评论 -
将master分支内容合并到dev分支
转自作者:ForeverMaggieGuo原文:https://blog.csdn.net/qq_34206198/article/details/52055395将分支切换到mastergit checkout master将代码pull到本地git pull修改冲突提交到本地git add .git commit -m "merge"切换到你所...转载 2019-07-11 14:58:36 · 12060 阅读 · 2 评论 -
Go再入门
GO 命令教程原创 2019-01-03 23:41:32 · 799 阅读 · 0 评论 -
微服务学习笔记
监控系统资料来源:极客时间-&gt;从0开始学微服务-&gt;15 | 如何搭建一个可靠的监控系统?ELK 的技术栈比较成熟,应用范围也比较广,除了可用作监控系统外,还可以用作日志查询和分析。Graphite 是基于时间序列数据库存储的监控系统,并且提供了功能强大的各种聚合函数比如sum、average、top5 等可用于监控分析,而且对外提供了 API 也可以接入其他图形化监控系统...原创 2018-10-06 12:09:57 · 367 阅读 · 0 评论 -
Filebeat + ELK入门
简介系统发布后,查看生产环境的日志十分不方便,经过对比现有日志处理框架,决定使用Logstash。但是在实际使用中发现,要搭配其他组件才能6的飞起。个人理解日志在各组件之间的关系Created with Raphaël 2.1.2开始原始日志文件FilebeatLogstashElasticSearchKibana结束建议安装顺序(又简单到复杂)1. Elast...原创 2018-05-30 23:24:32 · 461 阅读 · 2 评论 -
Logstash入门
安装Elasticsearch《Elasticsearch 权威指南》中文版配置要配置Logstash,您需要创建一个配置文件,指定您要使用的插件以及每个插件的设置。 您可以引用配置中的事件字段并使用条件来处理符合特定条件的事件。 当你运行logstash时,你使用-f来指定你的配置文件。让我们逐步创建一个简单的配置文件并使用它来运行Logstash。 创建一个名为“logst...翻译 2018-05-30 22:40:39 · 3614 阅读 · 1 评论 -
Filebeat入门
官网https://www.elastic.co/guide/en/beats/filebeat/6.2/filebeat-getting-started.html要开始使用自己的Filebeat设置,请安装并配置这些相关产品:Elasticsearch存储和索引数据。 用于UI的Kibana。 Logstash(可选)用于将数据插入Elasticsearch。 有关更多信息,请...翻译 2018-05-30 22:35:15 · 6794 阅读 · 0 评论 -
Kibana入门
官网介绍Kibana是一个开源的分析和可视化平台,旨在与Elasticsearch合作。 您可以使用Kibana来搜索,查看存储在Elasticsearch索引中的数据并与其进行交互。 您可以轻松地执行高级数据分析,并在各种图表,表格和地图中可视化您的数据。Kibana可以很容易地理解大量的数据。 其简单的基于浏览器的界面使您能够快速创建和共享动态仪表板,实时显示Elasticse...翻译 2018-05-30 22:32:31 · 982 阅读 · 0 评论 -
ElasticSearch入门
官网https://www.elastic.co/products/elasticsearch启动进入ElasticSearch目录下Run bin/elasticsearch (or bin\elasticsearch.bat on Windows)运行测试Run curl http://localhost:9200/ or Invoke-RestMethod...翻译 2018-05-30 22:30:08 · 243 阅读 · 0 评论 -
Mysql update运行超时解决方案
Mysql update运行超时解决方案问题描述:执行update时,发现时间很长,而且会失败;步骤:1、在数据库执行:UPDATE play SET skip = skip+500, run = 5.50, jump_times=jump_times+1WHERE id=388;结果报错:Error Code: 1205. Lock wait timeout exce...转载 2018-05-30 22:27:09 · 10226 阅读 · 0 评论 -
日志系统学习笔记
日志系统LogstashElasticsearch旗下,其作者是世界著名的运维工程师乔丹西塞(JordanSissel)官网教程官网视频教程中文教程scribefacebook出品资料不多flumeapache 基金会项目中文书籍多功能太强大,需要结合Kafka使用参考资料Logstash 最佳实践...原创 2018-05-17 00:35:39 · 238 阅读 · 0 评论 -
CSDN-markdown编辑器使用范例
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...转载 2018-04-22 16:29:25 · 183 阅读 · 0 评论 -
海湾日报学习
海湾日报学习原创 2017-11-23 00:08:17 · 425 阅读 · 0 评论 -
InfoQ学习笔记
NASA在使用大数据做什么?相关事务全解析 NASA已经建立起data.nasa.gov网站作为其数据参考门户 收录日期:2017-07-15Kafka设计解析(六)- Kafka高性能关键技术解析 收录日期:2017-03-30Apache Kafka:下一代分布式消息系统 收录日期:2016-09-19揭秘比特币和区块链(一):什么是区块链? http://www.infoq.com/原创 2016-08-11 18:23:26 · 808 阅读 · 0 评论