2019-11-14 16:54
堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。
1.堆中某个节点的值总是不大于或不小于其父节点的值;
2.堆总是一棵完全二叉树。
将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。
堆是非线性数据结构,相当于一维数组,有两个直接后继。
以最小堆为例
先把数组中的数储存起来
很显然最小的数就在堆顶,假设存储这个堆的数组叫做h的话,最小数就是h[1]。接下来,我们将堆顶的数删除,并将新增加的数23放到堆顶。显然加了新数后已经不符合最小堆的特性,我们需要将新增加的数调整到合适的位置。那如何调整呢?
...
2019-11-14 16:17
说明
jdk8虽然出现很久了,但是可能我们还是有很多人并不太熟悉,本文主要就是介绍说明一些jdk8相关的内容。
主要会讲解:
lambda表达式
方法引用
默认方法
Stream
用Optional取代null
新的日志和时间
CompletableFuture
去除了永久代(PermGen) 被元空间(Metaspace)代替
我们来看看阿里规范里面涉及到jdk8相关内容:
jdk8开篇
https://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html
...
2019-11-14 16:43
本章,介绍 基于jena的规则引擎实现推理,并通过两个例子介绍如何coding实现。...
2019-11-14 16:14
MySQL性能
最大数据量
最大并发数
查询耗时0.5秒
实施原则
数据表设计
数据类型
避免空值
text类型
索引优化
索引分类
优化原则
SQL优化
分批处理
不做列运算
避免Select *
操作符<>优化
OR优化
IN优化
LIKE优化
JOIN优化
LIMIT优化
其他数据库
博主负责的项目主要采用阿里云数据库MySQL,最近频繁出现慢SQL告警,执行时间最长的竟然高达5分钟。导出日志后分析,主要原因竟然是没有命中索引和没有分页处理。其实这是非常低级的错误,我不禁后背一凉,团队成员的技术水平亟待提高啊。改造这些SQL的过程中,总结了一些经验分享给大家,如果有错误欢迎批评指正。
...
2019-11-14 15:17
剧情回顾
上一文章,我们已经成功运行了odoo12,并访问localhost:8069看到如下界面:
我们还没有创建数据库,但是我们发现,数据库管理页面的logo是odoo,数据库页面全是英文的,对于我们国内用户来说,这是不太友好的。我们想要自定义这个数据库页面,有没有办法?答案是肯定的。
本节代码
复制代码
git clone -b v2.1 https://github.com/lingjiawen/odoo_project.git
复制代码
探索数据库页面
...
2019-11-14 15:07
一.Scrapy框架简介
何为框架,就相当于一个封装了很多功能的结构体,它帮我们把主要的结构给搭建好了,我们只需往骨架里添加内容就行。scrapy框架是一个为了爬取网站数据,提取数据的框架,我们熟知爬虫总共有四大部分,请求、响应、解析、存储,scrapy框架都已经搭建好了。scrapy是基于twisted框架开发而来,twisted是一个流行的事件驱动的python网络框架,scrapy使用了一种非阻塞(又名异步)的代码实现并发的,Scrapy之所以能实现异步,得益于twisted框架。twisted有事件队列,哪一个事件有活动,就会执行!Scrapy它集成高性能异步下载,队列,分布式,解析,持久化等。
...
2019-11-14 15:35
实现批处理的技术许许多多,从各种关系型数据库的sql处理,到大数据领域的MapReduce,Hive,Spark等等。这些都是处理有限数据流的经典方式。而Flink专注的是无限流处理,那么他是怎么做到批处理的呢?
file
无限流处理:输入数据没有尽头;数据处理从当前或者过去的某一个时间 点开始,持续不停地进行
另一种处理形式叫作有限流处理,即从某一个时间点开始处理数据,然后在另一个时间点结束。输入数据可能本身是有限的(即输入数据集并不会随着时间增长),也可能出于分析的目的被人为地设定为有限集(即只分析某一个时间段内的事件)。
...
2019-11-14 15:21
过滤器(Filter)是Servlet中常用的技术,可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截,常用的场景有登录校验、权限控制、敏感词过滤等,下面介绍下Spring Boot配置过滤器的两种方式。...
2019-11-14 15:22
导入导出通用库Magicodes.ExporterAndImporter为心莱团队封装的导入导出通用库,并且仍在跟随项目不断地打磨。...
2019-11-14 15:49
目录
源码分析ChannelFuture f = b.bind(8888).sync()
validate()方法
doBind(localAddress)方法
initAndRegister()
init(channel)
group().register(channel)
doBind0(regFuture, channel, localAddress, promise);
总结
正文
本文接着前两篇文章来讲,主要讲服务端类剩下的部分,我们还是来先看看服务端的代码
复制代码
/**
...
2019-11-14 15:15
之前的文章我们介绍了 Java 的循环结构,本章我们来看一下 Java 的数组数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。...
2019-11-14 15:49
介绍
可能大家都有用过swagger,可以通过ui页面显示接口信息,快速和前端进行联调。
没有接触的小伙伴可以参考官网文章进行了解下demo页面。
多应用
当然在单个应用大家可以配置SwaggerConfig类加载下buildDocket,就可以快速构建好swagger了。
代码大致如下:
/**
* Swagger2配置类
* 在与spring boot集成时,放在与Application.java同级的目录下。
* 通过@Configuration注解,让Spring来加载该类配置。
...
2019-11-14 15:51
版权归作者所有,任何形式转载请联系作者。作者:tison(来自豆瓣)...