work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 2 3 4 5 6 7 8 9 ··· 58 下一页

2021年2月22日

摘要: 在Windows下搭建Scala开发环境,需要做以下几个步骤 1) 安装JDK 2) 安装Scala,并配置环境变量 3) Idea安装并创建Scala 类 1、安装JDK JDK安装,这里不再介绍,如下图,可以查看安装后的版本。 2、下载Scala 下载scala-2.11.7.zip,解压到D: 阅读全文

posted @ 2021-02-22 13:28 work hard work smart 阅读(282) 评论(0) 推荐(0) 编辑

2021年2月20日

摘要: Kibana版本为7.4.2,与ElasticSerach 7.4.2 保持一致。 1、解压 cd /home/tools tar -zxvf kibana-7.4.2-linux-x86_64.tar.gz mv kibana-7.4.2-linux-x86_64 /usr/local/ 2、修改 阅读全文

posted @ 2021-02-20 16:39 work hard work smart 阅读(283) 评论(0) 推荐(0) 编辑

摘要: ElasticSearch安装请参考: Linux 下ElasticSearch安装 登录Kibana, 点击Manage, 点击Index Patterns, 然后创建index pattern。 输入app-log-*, 点击Next step 点击创建 点击搜索,点击索引app-log-* 可 阅读全文

posted @ 2021-02-20 16:37 work hard work smart 阅读(126) 评论(0) 推荐(0) 编辑

摘要: 一、应用场景 1、消息队列 2、行为跟踪 3、元信息监控 4、日志收集 5、流处理 6、事件源 7、持久性日志 commit log 二、案例 1.下载与安装 1)Zookeeper下载 http://zookeeper.apache.org/releases.html#download 2)Kaf 阅读全文

posted @ 2021-02-20 16:35 work hard work smart 阅读(102) 评论(0) 推荐(0) 编辑

摘要: 分布式消息队列(MQ)应用场景 服务解耦 削峰填谷 异步化缓冲 分布式消息队列(MQ)应用思考点? 生产端可靠性投递 消费端幂等 高可用 低延迟 消息可靠性 扩展性 堆积能力 分布式消息队列(MQ)与技术选型 主流的分布式消息中间件 ActiveMQ: 传统行业,中小型公司,并发和消息的承载能力不是 阅读全文

posted @ 2021-02-20 16:33 work hard work smart 阅读(90) 评论(0) 推荐(0) 编辑

2021年2月17日

摘要: 一、算法导论中的红黑树 1、每个节点或者是红色的,或者是黑色的 2、根节点是黑色的 3、每一个叶子节点(最后的空节点)是黑色的 4、如果一个节点是红色的,那么他的孩子节点都是黑色的 5、从任意一个节点到叶子节点,经过的黑色节点是一样的 二、2-3树 满足二分搜索树的基本性质 节点可以存放一个元素或者 阅读全文

posted @ 2021-02-17 20:37 work hard work smart 阅读(74) 评论(0) 推荐(0) 编辑

2021年2月14日

摘要: 基于平衡二叉树实现Set public class AVLTreeSet<E extends Comparable<E>> implements ISet<E> { private AVLTree<E,Object> avl; public AVLTreeSet(){ avl = new AVLTr 阅读全文

posted @ 2021-02-14 21:56 work hard work smart 阅读(137) 评论(0) 推荐(0) 编辑

摘要: 基于平衡二叉树实现Map public class AVLTreeMap<K extends Comparable<K>,V> implements IMap<K,V> { private AVLTree<K,V> avl; public AVLTreeMap(){ avl = new AVLTre 阅读全文

posted @ 2021-02-14 21:53 work hard work smart 阅读(144) 评论(0) 推荐(0) 编辑

摘要: 平衡树与AVL 1、二分搜索树存在的问题 如果数据是顺序添加到二分搜索树,二分搜索树会退化成一个链表,这就好大大降低二分搜索树的效率。 如何解决这个问题呢? 需要添加一种机制,使得二分搜索树维持平衡二叉树的性质。AVL树就是一种经典的平衡二叉树。 2、AVL树介绍 AVL的名称来自俄罗斯两位科学的名 阅读全文

posted @ 2021-02-14 21:42 work hard work smart 阅读(331) 评论(0) 推荐(0) 编辑

2021年2月13日

摘要: 一、优先队列场景:1、系统中动态选择优先级最高的任务执行2、医院根据患者的患病情况,选择哪个患者最先做手术。3、游戏中,士兵去攻击优先级最高的那个敌人。 二、优先队列底层数据结构复杂度对比 三、堆 1、二叉堆Binary Heap 使用二叉树表示的堆,二叉堆是一棵完全二叉树 完全二叉树: 把元素顺序 阅读全文

posted @ 2021-02-13 22:28 work hard work smart 阅读(142) 评论(0) 推荐(0) 编辑

2021年2月12日

摘要: 1、什么是Map(映射) 存储( 键,值) 数据对的数据结构(Key,Value) 根据键(Key),寻找值(Value) 非常容易使用链表或者二分搜索树实现。 2、基于链表实现Map public class LinkedListMap<K,V> implements IMap<K,V>{ pri 阅读全文

posted @ 2021-02-12 22:46 work hard work smart 阅读(247) 评论(0) 推荐(0) 编辑

摘要: 集合的典型应用: 客户统计 词汇量统计 1、基于二分搜索树的集合 定义接口ISet public interface ISet<E> { void add(E e); void remove(E e); boolean contains(E e); int getSize(); boolean is 阅读全文

posted @ 2021-02-12 13:58 work hard work smart 阅读(126) 评论(0) 推荐(0) 编辑

2021年2月11日

摘要: 1、为什么要使用树结构 将数据使用树结构存储后,出奇的高效。 2、常用的数结构 二分搜索树(Binary Search Tree) 平衡二叉树: AVL; 红黑树 堆; 并查集 线段树; Trie(字典树,前缀树) 3、二叉树 和链表一样,动态数据结构 对于每一个节点,最多有两个孩子。 二叉树具有唯 阅读全文

posted @ 2021-02-11 21:17 work hard work smart 阅读(89) 评论(0) 推荐(0) 编辑

摘要: 一、Leetcode中与链表向操作 203. 移除链表元素 删除链表中等于给定值 val 的所有节点。 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5 https://leetcode-cn.com/problems/remove-lin 阅读全文

posted @ 2021-02-11 10:41 work hard work smart 阅读(60) 评论(0) 推荐(0) 编辑

2021年2月9日

摘要: 1、改进的链表(增加tail) 增加tail,指向链表尾部节点。这样在head和tail添加节点都很容易。 从tail端删除节点并不容易,因为无法找到tail之前的那个节点。在head端删除节点容易。 根据以上特性, head端作为队首, tail端最为队尾。 从head端删除元素,从tail端插入 阅读全文

posted @ 2021-02-09 10:57 work hard work smart 阅读(172) 评论(0) 推荐(0) 编辑

2021年2月8日

摘要: 从上一篇博客链表( 自定义链表)知道,链表如果增删只对链表头操作O(1), 查找链表头元素O(1) ,这样的操作符合栈这个数据结构。 下面我们使用自定义链表实现自定义栈 1、前面定义的栈接口 public interface IStack<E> { int getSize(); boolean is 阅读全文

posted @ 2021-02-08 23:33 work hard work smart 阅读(128) 评论(0) 推荐(0) 编辑

摘要: 1、什么是链表? 数据存储在“节点”(Node)中 Class Node{ E e; Node next; } 有点: 真正的动态,不需要处理固定容量的问题。 缺点: 和数组相比,丧失了随机访问的能力。 2、数组和链表的对比 数组最好用于索引有语义的情况,如scores[101], 学号为101的学 阅读全文

posted @ 2021-02-08 22:59 work hard work smart 阅读(269) 评论(0) 推荐(0) 编辑

2021年2月7日

摘要: 1、什么是队列 队列也是一种线性结构 相比数组,队列对应的操作是数组的子集 只能从一端(队尾)添加元素,只能从另一端(队首)取出元素。 队列是一种先进先出的数据结构( 先到先得) First In First Out(FIFO) 2、自定义队列 1) 定义接口 public interface IQ 阅读全文

posted @ 2021-02-07 22:18 work hard work smart 阅读(162) 评论(0) 推荐(0) 编辑

摘要: 1、什么是栈 栈也是一种线性结构, 相比数组,栈对应的操作是数组的子集 只能从一端添加元素,也只能从一端取出元素 这一端称为栈顶 栈是一种后进先出的数据结构。 2、栈的应用 1) 编辑器无处不在的Undo操作(撤销) 2) 程序调用的系统栈 函数A中调用函数B,函数B中调用函数C。 如果C函数执行完 阅读全文

posted @ 2021-02-07 13:50 work hard work smart 阅读(104) 评论(0) 推荐(0) 编辑

摘要: 数组的定义,参考Java 数组 数组的使用 1、定义一个数组 //必须初始化数组的长度,这里为10 int[] arr = new int[10]; for(int i = 0;i < arr.length; i++){ arr[i] = i; } //设置初始值 int[] score = new 阅读全文

posted @ 2021-02-07 09:26 work hard work smart 阅读(313) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 58 下一页