2019-11-06 16:04:20 |  0 Comments

Java 8常用

# 1. List转Map ``` /** * List -> Map * 需要注意的是: * toMap 如果集合对象有重复的key,会报错Duplicate key .... * apple1,apple12的id都为1。 * 可以用 (k1,k2)->k1 来设置,如果有重复的key,则保留key1,舍弃key2 */ Map appleMap = appleList.
 2019-10-16 14:17:21 |  0 Comments

操作系统原理——进程调度与死锁

# 一、进程调度 进程的调度室指按照某种策略或算法从就绪进程中为当前空闲的cpu选择在其上运行的新进程 # 二、进程的调度算法 ##1. 时间概念 **周转时间**是指从作业开始提交给系统开始,到作业完成为止系统的 **平均周转时间T**=N各种作业的周转时间之和除以n **带权周转时间**=作业的周转时间/系统为它提供服务时间 **响应时间**=用户从提交一个请求开始至系统首次响应的时间为止
 2019-10-16 12:02:27 |  0 Comments

操作系统原理——进程管理

# 进程的概念 1. 进程是允许并发的程序在某个数据集合上运行的过程 2. 进程是**正文段**、**用户数据段**和**进程控制块**共同组成的执行环境。 # 进程与程序的区别 1. 程序是静态的,进程是动态的 2. 程序是永久的,进程是暂时存在的 3. 程序和进程存在的实体不同。程序是指令的集合,进程是由正文段、用户数据段、进程控制块组成 # 进程与程序的关系 进程是程序的一次执行,进程
 2019-10-11 16:46:04 |  0 Comments

强大的免费在线画图软件,满足你各种架构图、UML图、时序图、网络拓扑图

# processOn 体验地址:https://www.processon.com/i/56a24149e4b0bd5c5c250154
 2019-10-10 20:58:11 |  0 Comments

durid链接mysql8踩坑

MySQL Connector 版本升级 ``` mysql mysql-connector-java 8.0.11 ``` Druid依赖升级 ``` com.alibaba druid 1.1.10 ``` 链接jdbc url改成 ``` jdbc:mysql:
 2019-08-20 14:19:03 |  0 Comments

区块链技术之比特币的运作原理

# 什么是比特币 点对点的传输的一个去中心化的电子现金系统。每个节点都共同维护一个区块链形式存储的交易记录,每个比特币节点遵守同一个比特币网络协议,并基于密码学原理加密每一笔交易记录和区块,实现每一笔交易不可逆、防篡改、去中心化的、数据可监管溯源的电子现金交易系统。 ## 比特币特点 - 比特币最初由中本聪2008年发明 - 比特币发行和交易不依赖中央机构 - 比特币的发行总量不会超过2100万
 2019-07-11 23:22:06 |  0 Comments

RokectMQ 和Kafka对比

# RokectMQ 和Kafka对比 | 对比项 | Kafka | RocketMQ | 总结 | |-----|---------|---------|----------| | 部署架构 | ![](https://leanote.com/api/file/getImage?fileId=5de098e9ab644158bc001954)
 2019-06-02 20:10:56 |  0 Comments

限流相关

# 前言 在大流量场景,秒杀、抢购场景,一般会对网站做一些流量控制,牺牲一部分流量而保护系统而不至于系统直接down机。 # 常见限流算法 ## 固定计算限流 就是统计固定时间内的流量数量,如果超过了就限制。这种很容易实现,利用AutomicLong统计,下一个统计周期后又清零重新计算。 这样会有以下问题: 1. 1s之内的前100ms就已经达到了,那么后900ms就是空闲的。 2. 如果1s
 2019-05-19 22:50:38 |  0 Comments

操作系统原理——初识操作系统

# 什么是操作系统 操作系统是提供计算机用不与计算机硬件之间的使用接口,并能够管理计算机软件和硬件资源的一个复杂的系统软件,为用户的应用程序提供直接可用的运行环境,是应用程序的开发变得简单、高效。 试想一下如果没有操作系统,你将怎样写代码? 例如你要写一个实现`printf("hello world")`的功能,你要怎么实现呢? 无操作系统的环境下,你只能使用汇编语言直接操作硬件
 2019-02-11 19:22:19 |  0 Comments

分库分表的分页查询

# 问题的提出 我们知道,当我们的数据量达到一定数量时,需要将数据表进行水平拆分,从而满足大量数据的存储和查询,保证系统的可用性,但同时会出现另外一个问题就是,如果业务要查询“最近注册的第3页用户”,该如何实现呢?单库上,可以通过简单的sql实现分页查询 ``` select * from t_user order by time limit 200,100 ``` 分库分表后变成两个库后
 2018-11-21 11:50:53 |  0 Comments

一篇分析CMS GC日志的很好的一篇文章

``` 64.334: [GC (Allocation Failure) 64.334: [ParNew: 573983K->40924K(613440K), 0.0370301 secs] 592489K->59430K(10417664K), 0.0371384 secs] [Times: user=0.30 sys=0.00, real=0.03 secs] 72.593: [GC (Al
 2018-10-21 01:54:33 |  0 Comments

从零开始使用Solidity编写以太坊智能合约并使用Nodejs SDK访问以太坊网络

# Nodejs安装 Nodejs 版本建议8.0以上 官网:https://nodejs.org/en/ 官网下载安装包:https://nodejs.org/dist/v8.12.0/node-v8.12.0-x64.msi 安装参考:https://blog.csdn.net/qq_26562641/article/details/72235585 配置淘宝镜像: ``` npm con
 2018-10-17 15:39:04 |  0 Comments

抓包工具Charles安装、破解及使用

Charles是一款抓包必备的工具,支持Windows、Mac、手机的抓包测试,还能对https的SLL加密内容进行解密。 # 下载安装 1. 进入官网下载地址:http://www.charlesproxy.com/,点击链接下载30天免费试用版本。 ![](https://leanote.com/api/file/getImage?fileId=5bc6e705ab64410ade0057
 2018-10-16 10:36:49 |  0 Comments

端口查看,kill

# Windows端口占用 1. 在dos下,输入`netstat -ano|findstr 8189`,查看端口使用情况 2. 输入`taskkill /pid 13064 /f`停止端口占用 # Linux Or Mac的端口占用 1. 终端命令查询9000端口占用情况 ``` sudo lsof -i :9000 ``` ![](https://leanote.com/api/file
 2018-03-16 14:34:04 |  0 Comments

Redis批量删除命令

> Redis中有指定多个key批量删除的命令,却没有指定模糊key批量删除命令 批量删除多个key ``` del key1 key2 ``` 通过通配符"*"模糊匹配删除的lua脚本命令 ``` # 模糊删除 eval "local keys = redis.call('keys', ARGV[1]) for i=1,#keys,5000 do redis.call('del', unp
 2017-12-12 15:46:45 |  0 Comments

深入理解NIO

最近看开开源框架的源码,发现涉及到网络传输的基本都是居于NIO实现的,尽管之前也或多或少接触过一点NIO的知识,毕竟还是在工作中使用接触的比较少,总觉得不够深入,特此写一遍博客来梳理下,自己对NIO的认识。 # 同步,异步,阻塞,非阻塞 ## 同步 与 异步 同步与异步关注的是消息通讯机制,所谓同步就是主动发出调用,在结果返回之前改调用不会结束,换句话说就是程序主动待定调用结果的返回。 而异
 2017-12-11 14:45:33 |  0 Comments

Java学习大纲

任何学习都要有目标有规划,这是整个Java知识体系大纲,根据自己的知识体系认知画出来的,有很多还没有细化,也还有很多没有涉猎,比如大数据,列出这些好让自己学的有目标一些吧,也算是一个总结。 在线预览地址:[http://naotu.baidu.com/file/a94181bfafe64d39874b524ce8df18c1?token=a8efb35e029a526f](http://nao
 2017-12-06 20:40:32 |  0 Comments

高性能无锁阻塞队列——Disruptor

这是我年初在公司内部技术分享讲Disruptor的PPT,整理下放到博客里面。 # 什么是Disruptor Disruptor 是一个用于在线程间通信的高效低延时的消息组件,它像个增强的队列,能够在无锁的情况下实现异步并发操作,它是纯内存组件。 它的特点如下: - 高性能、无锁,实现每秒千万级别的异步业务处理能力 - 它除了能实现队列基本功能,还能实现顺序消费,或者复杂的并行和依赖结合的
 2017-12-06 17:03:40 |  0 Comments

关于Unicode / UTF-8 、UTF-16字符集编码的理解

# 最近学习NIO文件读写的时候,就生成了一个疑问,程序怎么知道文件使用了什么编码,因为底层程序看到的都是二进制的字节码如: ``` 中文 | utf-8二进制编码 人 | 11100100 10111010 10111010 ``` 程序怎么知道通过这是一个通过3个字节编码的`人`字呢,于是查询了相关资料: 要解释这个问题,我们先来了解下ASCII码、GB2312、GBK、Unico
 2017-12-06 17:03:40 |  0 Comments

HTTP及HTTPS的理解

# HTTP HTTP全称叫超文本传输协议(HyperText Transfer Protocol),是用于WWW(万网)服务器与浏览器客户端的一种通讯协议 ## TCP/IP 关于计算机通讯,需要了解的一些背景知识,TCP/IP. 我们经常说TCP/IP,为什么要一起说,因为这两者有着密切的关系,其实它包含两个协议: - TCP: TCP 负责将数据包在数据传送之前将它们分割为 IP 包,然
Title - Artist
0:00