EasyExcel学习
EasyexcelEasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel
项目github地址:https://github.com/alibaba/easyexcel
官网地址:https://easyexcel.opensource.alibaba.com/docs/current/
先吐槽一下,官方文档写的太烂了,缺少依赖、逻辑不清晰、复制到idea很多跑起来报错
写Excel
准备工作
创建项目,在pom文件中添加以下依赖:
1234567891011121314151617181920212223<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <de ...
《算法图解》学习(一)
《算法图解》学习(一)二分查找二分查找又称折半查找、二分搜索、折半搜索等,是在分治算法基础上设计出来的查找算法,对应的时间复杂度为O(logn)
具体思路假定一列有序的数据如下:
1
2
3
4
5
6
7
8
9
10
查找一个数字在里面的位置,例如7记录两个起始位置,start end,和一个中间位置middle((start + end)/2) 取整
第一轮
start
middle
end
1
2
3
4
5
6
7
8
9
10
每次比较中间的数和目标值的大小,则无论大或者小,总会排除一半的数据剩下 (target>middle)middle+1~end 或者(target<middle) start ~middle -1, 例如本次示例 7>5(middle)则剩下
第一轮
start
middle
end
第二轮
start
middle
end
1
2
3
4
5
6
7
8
9
10
以此类推,下一次循环为:剩下 6 和 7 并且 start和mid ...
常用加密算法
常用加密算法Base64Base64编码简介Base64是一种编码方式,这个术语最初是在“MIME内容传输编码规范”中提出的。Base64不是一种加密算法,它实际上是一种“二进制转换到文本”的编码方式,它能够将任意二进制数据转换为ASCII字符串的形式,以便在只支持文本的环境中也能够顺利地传输二进制数据。
base64编码:把二进制数据转换为字符
base64接码:把字符转为二进制数据
这看起来可能有些奇怪,因为大多数的编码都是由字符转化成二进制的过程,而从二进制转成字符的过程称为解码。而Base64的概念就恰好反了,由二进制转到字符称为编码,由字符到二进制称为解码。
Base64编码由来因为有些网络传输渠道并不支持所有字节,例如传统的邮件只支持可见字符的传输,像ASCII码的控制字符(ASCII包含了 128 个字符。其中前 32 个, 0-31 ,即 0x00-0x1F ,都是不可见字符。这些字符,就叫做控制字符。)就不能通过邮件传输。另外,例如图片二进制流的每个字节不可能全部都是可见字符,所以就传送不了。
最好的方法就是在不改变传统协议的情况下,做一种扩展方案来支持二进制文件 ...
Hexo博客搭建
Hexo博客搭建前言手里刚买了两个域名,一个用来套cloudflare拯救我的小机场,一个就闲置下来了,偶然想到,如果域名也用cloudflare代理,那使用githubPages搭建博客访问速度也就可以接受了,而且相对国内服务器价格水涨船高+域名备案,想要拥有一个个人网站的小博客也困难重重,所以花了一下午,跟着教程搭建了这个博客
准备项:
域名(貌似国内外都可以,我用的国外的(namesilo)
CloudFlare账号
Github账号(如果使用gitee可以跳过第三项)
本机电脑安装Git、nodeJS
科学上网(本地电脑全局代理)推荐clash
搭建步骤参考教程:GitHub Pages + Hexo搭建个人博客网站
这里我不做详细步骤阐述,只说一些注意点
(1)创建Github仓库
点击右上角头像 -> your repositories -> 右上方点击 new -> 新建一个仓库
注意:填写仓库名,格式必须为<用户名>.github.io,然后点击Create repository。
这也是你的githubpage访问地址
Desci ...
pyqt5入门
pythonGUI(pyqt5)入门参考书籍《PyQt5快速开发与实战》王硕 孙洋洋 著
为什么选择pyqt5诚然,对于python来说,有很多可选得gui库,比如python自带库Tkinter、wxPython、pyside2/6、pyqt5/6、甚至是pygame。pyqt是很成熟得第三方库,pyqt源于C++QT框架,功能十分强大,并且有qtdesigner可视化工具加持,大大简化开发得复杂度。pyside和pyqt均为qt框架下得python第三方库,选择pyqt5得主要原因是pyqt5有着更丰富得学习资源。
入门案例12345678910111213141516import sys from PyQt5.QtWidgets import QMainWindow , QApplication from PyQt5.QtGui import QIcon class MainWindow(QMainWindow): def __init__(self,parent=None): super(MainWindow,self).__init ...
Java8 Steam API
Java8 Steam API简介
Stream API ( java.util.stream) 把真正的函数式编程风格引入到Java中。这 是目前为止对Java类库最好的补充,因为Stream API可以极大提供Java程 序员的生产力,让程序员写出高效率、干净、简洁的代码。
使用场景
实际开发中,项目中多数数据源都来自于Mysql,Oracle等。但现在数 据源可以更多了,有MongDB,Radis等,而这些NoSQL的数据就需要 Java层面去处理
Stream 和 Collection 集合的区别:Collection 是一种静态的内存数据 结构,而 Stream 是有关计算的。前者是主要面向内存,存储在内存中, 后者主要是面向 CPU,通过 CPU 实现计算。
Stream 操作的三个步骤
创建Stream,获取一个工作流
数据源(集合、数组。。。)
中间操作,对数据进行中间处理
终止操作
创建Stream集合12// 返回一个顺序流default Stream<E> stream()
12// 返回一个并行流default Stream&l ...