存档:
2021 年 01 月 (12)
常用方法 流模型的操作很丰富,这里介绍一些常用的API。这些方法可以被分成两种: 延迟方法:返回值类型仍然是 Stream 接口自身类型的方法,因此支持链式调用。(除了终结方法外,其余方法均为延迟方法。) 终结方法:返回值类型不再是 Stream 接口自身类型的方法,因此不再支持类似 StringBuilder 那样的链式调用。本小节中,终结方法包括 count 和 forEach 方法。 1、逐一处理:forEach 虽然方法名字叫 forEach ,但是与for循环中的“for-each”昵称不同。 | 1 | void forEach(Consumer super T> action); | | - | - | 该方法接收一个 Consumer 接口函数,会将每一个流元素交给该函数进行处理。 Consumer 接口 | 12 | java.util.function.Consumer接口是一个消费型接口。Consumer接口中包含抽象方法``void accept(T t),意为消费一个指定泛型的数据。 | | - | - | ....
Java反应式框架Reactor中的Mono和Flux 1. 前言 最近写关于响应式编程的东西有点多,很多同学反映对Flux和Mono这两个Reactor中的概念有点懵逼。但是目前Java响应式编程中我们对这两个对象的接触又最多,诸如Spring WebFlux、RSocket、R2DBC。我开始也对这两个对象头疼,所以今天我们就简单来探讨一下它们。 2. 响应流的特点 要搞清楚这两个概念,必须说一下响应流规范。它是响应式编程的基石。他具有以下特点: 响应流必须是无阻塞的。 响应流必须是一个数据流。 它必须可以异步执行。 并且它也应该能够处理背压。 背压是反应流中的一个重要概念,可以理解为,生产者可以感受到消费者反馈的消费压力,并根据压力进行动态调整生产速率。形象点可以按照下面理解: 3. Publisher 由于响应流的特点,我们不能再返回一个简单的POJO对象来表示结果了。必须返回一个类似Java中的Future的概念,在有结果可用时通知消费者进行消费响应。 Reactive Stream规范中这种被定义为Publisher<T> ,Publisher<T>....
⌘+ d 快速复制一行(这个和Eclipse的默认快捷键相反) ⌘ + l 跳转到某一行 ⌥ + ⌘ + l 格式化代码 ⌘ + ⇧ + f 全局搜索 ⌘ + ⇧ + r 全局替换 ⌘ + ⇧ + u 选中字母大小写切换 ⇧ + ⌥ + j 两行合并下面的合并到上边
jar文件上传服务器后下载到本地执行提示 Error: Invalid or corrupt jarfile XXX.jar 问题出现在ftp下载过程中修改了jar文件的格式问题导致,而wget可以确保格式不受损。。解决方法是使用wegt或者ssh等命令,如下: wget ftp://ip:port/download/XXX.jar --ftp-user=username --ftp-password=password
python 读取文本的几种操作 1、整个文本读取的方式 # 注意 encodeing默认是gbk读取文件报错时可尝试切换成utf-8等 f = open(path,'模式',encodeing='gbk|utf-8') print(f.read()) # 操作完后记的关闭不然其它方法删不掉 r.close() 2、行读取的方式 t_content = '' with open(path) as f: while True: line = f.readline() if not line: break; t_content = line.rstrip() print(t_content) 模式描述 t文本模式 (默认)。 x写模式,新建一个文件,如果该文件已存在则会报错。 b二进制模式。 +打开一个文件进行更新(可读可写)。 U通用换行模式(不推荐)。 r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 r+打开一个文件用于读写。文件指针将会放在文件的开头。......
数据data 类型:Object | Function 限制:组件的定义只接受 function。 说明: 这个对象主要是储存变量用的存储的对象可以在本页调用 详情见 官网说明 示例: var data = { a: 1 } // 直接创建一个实例 var vm = new Vue({ data: data }) vm.a // => 1 vm.$data === data // => true // Vue.extend() 中 data 必须是函数 var Component = Vue.extend({ data: function () { return { a: 1 } } }) 注意,如果你为 data property 使用了箭头函数,则 this 不会指向这个组件的实例,不过你仍然可以将其实例作为函数的第一个参数来访问。 data: vm => ({ a: vm.myProp }) 钩子created 类型:Function 详细: 在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),propert......
Ngxin反向代理一个域名请求转发到本地某个端口 nginx.conf 就是默认 ,一般在conf.d/目录下新建个*.conf文件即可 upstream backend { server localhost:8080; # 本地 监听端口 } server { listen 80; server_name www.xxx.com; # 访问域名 access_log off; location / { proxy_pass http://backend$request_uri; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 10m; } }
mysql 数据库安装后需要配置用户,数据库和表信息: 创建用户 create user 'root'@'%' identified by '123456'; grant all privileges on . to 'root'@'%'; flush privileges; 注意第一行的 % 要和第二行的% 一致 删除用户 drop user 'user'@'127.0.0.1'; 创建数据库 create database [数据库名] default character set utf8mb4 collate utf8mb4_general_ci; 创建表 create table IF NOT EXISTS [表名] ( id int auto_increment, username varchar(255) null comment '注释', password varchar(255) null, mobile varchar(255), primary key (id) #主键 ) ENGINE = InnoDB DEFAULT CHARSET = utf8....
添加一块新硬盘 使用parted方式创建分区和挂载 1,将磁盘上原有的分区删除掉: 进入:#parted /dev/sdb 查看:(parted)p 删除分区1:(parted)rm 1 删除分区2:(parted)rm 2 ...(删除的分区根据 查看 显示的分区操作) 2,将磁盘格式变成gpt的格式(因为parted只能针对gpt格式的磁盘进行操作) 转换:(parted) mklabel gpt 设置单位为TB:(parted) unit MB(GB,TB) 分区:(parted) mkpart primary 1 500 (分第一个主分区500MB) 分区:(parted) mkpart primary 501 1000 (分第二个主分区500MB) 分区:(parted) mkpart logical 1001 2000 (分第三个逻辑分区1000MB) (parted的逻辑分区不用先分扩展分区,直接一步到位) 查看:(parted) p 退出:(parted)quit ( parted分区自动保存,不用手动保存 ) 3,格式化已经分好的区 mkfs.ext4 /dev/......
Install the nux repo for CentOS 7 yum install -y http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm 安装这两个包 yum install exfat-utils fuse-exfat 插硬盘,看看是否挂载成功 可以使用 fdisk -l 或 cat /proc/partitions 命令查看 [~]# fdisk -l WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion. 磁盘 /dev/sda:1000.2 GB, 1000204886016 字节,1953525168 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 4096 字节 I/O 大小(最小/最佳):4096 ....
Linux下配置 Tab忽略大小写: 切换root 账户 root su 编辑 /etc/inputrc 文件 vim /etc/inputrc 粘贴下面代码 set completion-ignore-case on 保存后重启即可 Mac 下配置 Tab忽略大小写: 当前 用户目录下 vim .inputrc 粘贴下面的代码 set completion-ignore-case on set show-all-if-ambiguous on TAB: menu-complete 保存重新打开终端即可
注释掉原来的持久化规则 #save 900 1 #save 300 10 #save 60 10000 设置为空 save "" 然后重启redis服务即可。