摘要:
HashMap的节点
// 基础节点,单链表
static class Node<K,V> implements Map.Entry<K,V> {
final int hash;
final K key;
... 阅读原文
2019-02-24 12:07:02 阅读(2866) 评论(0)
摘要:
变性是OOP语言不变的大坑,Java的数组协变就是其中的一口老坑。因为最近踩到了,便做一个记录。顺便也提一下范型的变性。
解释数组协变之前,先明确三个相关的概念,协变、不变和逆变。
一、协变、不变、逆变
假设,我为一家餐馆写了这样一段代码
class Soup<T> {
public voi... 阅读原文
2019-02-24 10:18:02 阅读(2144) 评论(0)
摘要:
0 1背包——每种物品只能选0件或者1件
/**
* weight[] = {2,3,4,5}
* value[] = {3,4,5,7}
* 求解满足小于背包最大承重得到最大价值的物品存放策略
* 思路核心:
* 1. 当前取物品的重量we... 阅读原文
2019-02-24 09:24:02 阅读(3338) 评论(0)
摘要:
前面介绍了如何自己定义函数式接口,本文接续函数式接口的实现原理,阐述它在数组处理中的实际应用。数组工具Arrays提供了sort方法用于数组元素排序,可是并未提供更丰富的数组加工操作,比如从某个字符串数组中挑选符合条件的字符串并形成新的数组。现在就让我们从零开始,利用函数式接口实现数组元素筛选的功能。首先要定义一个字... 阅读原文
2019-02-24 08:23:01 阅读(2188) 评论(0)
摘要:
keepalived介绍
Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat、corosync、pacemaker。但是它一般不会单独出现,而是与其它负载均衡技术(如lvs、haproxy、nginx)一起工作来达到集群的高可用。
VR... 阅读原文
2019-02-24 06:31:04 阅读(2258) 评论(0)
摘要:
本文作者:林湾村龙猫、徐刘根
林湾村龙猫:【简书地址】https://www.jianshu.com/p/edce8e8c139e
一、前言
对于配置文件,我们并不陌生,它提供我们可以动态修改程序运行能力。引用别人的一句话就是:
系统运行时(runtime)飞行姿态的动态调整!
我可以把我们的工作称之为在快速... 阅读原文
2019-02-24 06:00:15 阅读(2749) 评论(0)
摘要:
JAVA环境变量的配置:Path,JAVA_HOME,CLASSPATH
一、右键我的电脑,属性,高级系统设置,点击环境变量
二、然后就会弹出环境变量这个窗口,在系统变量编辑JAVA_HOME,如果没有就新建一个,把jkd的路径添加进去,如图
三、配置CASSPATH,如果没有就新建一个,把jdk的lib... 阅读原文
2019-02-24 00:43:05 阅读(2463) 评论(0)
摘要:
这里只讲述@Api、@ApiOperation、@ApiImplicitParams、@ApiImplicitParam、@ApiParam、@ApiModel、@ApiModelProperty、ApiResponses、@ApiResponse这几个常用的。
@Api:用在请求的类上,表示对类的说明 常用参数... 阅读原文
2019-02-24 00:06:02 阅读(2573) 评论(0)
摘要:
1.多线程
1.1.多线程介绍
学习多线程之前,我们先要了解几个关于多线程有关的概念。
进程:正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能,进程是系统进行资源分配和调度的一个独立单位。进程是正在运行的程序,进程负责给程序分配内存空间,而每... 阅读原文
2019-02-23 22:38:04 阅读(2513) 评论(0)
摘要:
1.多二维码识别 (同一张图片中多二维码识别)
直接上代码舒服:
1 /**
2 * Parse multiple qr codes(解析多个二维码)
3 *
4 * @param bufferedImage image
5 * @return QRCod... 阅读原文
2019-02-23 21:09:02 阅读(2767) 评论(0)