自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

兀坐晴窗独饮茶

那些遗憾,或早或晚 会以特别的方式在你心中抚平 愿我们的遗憾,都在另一个时空得到和解

  • 博客(291)
  • 资源 (3)
  • 收藏
  • 关注

原创 从零开始搭建Dubbo环境并整合Dubbo+SpringBoot

以上教程适用于dubbo-admin-0.1.0 , 高版本其他内容大致一样, 但是如果访问http://localhost:8081/#/不行的话, 可能需要dubbo-admin-ui目录下执行。我们需要分别创建两个SpringBoot项目, 分别是 dubbo-spring-consumer 和 dubbo-spring-provider, 一个是消费者, 一个是提供者。UserService 这里和之前的一样, 我们不需要具体的实现 因为我们要调用 dubbo-spring-provider。

2023-01-08 21:25:04 288

原创 微服务系列文章

微服务系列(1)- 简单远程调用与接口提供者和消费者微服务系列(2)- Eureka微服务注册中心微服务系列(3)- Ribbon负载均衡微服务系列(4)- Nacos注册中心

2022-04-21 14:24:37 160 1

原创 从零开始学习Spark - SparkRDD、SparkDStream与HBase交互

一. SparkRDD 与 HBase的交互1.1 依赖配置以及注意事项1.1.1 特别注意建议参考 2.3 添加数据 - put的使用里面的处理方法1.1.2 POM 文件<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target>

2019-12-01 17:04:11 739 3

原创 从零开始学习Saprk - 32种Saprk算子详解(完整版)

一.Transform类型算子1.1 Value 类型1.1.1 map 算子介绍 :返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成 ,也就是说RDD中每个元素都会执行一次这个方法代码 : // 创建SparkConf 设置本地运行模式 val conf = new SparkConf() .setMaster("local[1]") .setAppName("MapOperator") // 创建SparkContext val

2019-11-17 18:43:31 404 1

原创 CS 学习笔记 - 关于页式虚拟存储器的地址映射的一些理解

虚拟存储器映射图解图解详细解释 ????页式虚拟存储系统 ☁️页式虚拟存储系统中 虚拟地址空间会被划分为 等长大小的页,这个页被称为 逻辑页,我的理解就是 假设它存在, 假设我们有这么一块虚拟的空间, 这些空间被划分成一个个大小相同的页,关于这个页, 就只是一个划分的单位, 比如 我们可以说把一个 1G 的 虚拟存储空间划分为 4页, 那么每一页就是 256M , 我一开始很纠结这个页 ...

2019-11-04 22:54:12 1447 3

原创 Java学习笔记 - 关于线程虚假唤醒的一些个人理解

什么是虚假唤醒这里我举一个 生产者消费者的例子 Clerk 的 出售 方法的一段代码注意红框的代码, 当货物不足的时候, 消费线程会挂起注意到 : 最开始 BD 线程挂起, 他们都停留在 红框处没有向下执行, 此时生产者开始 生产 商品但是请注意 在生产完一个商品之后, 它又把 已经挂起的BD线程唤醒了, 但是此时 只生产了一个商品, 并不需要唤醒两个线程 ! 所以多出的一个...

2019-10-30 16:16:17 423

原创 HBase踩坑笔记 - 使用 MR 集成Hbase 报错 IllegalArgumentException: No columns to insert ⭐️⭐️⭐️⭐️

错误描述今天在 使用 MapReduce 将 Person 表中的 name 字段 的数据 写入到 Person_mr 表中 报错代码 如下 :Mapperpackage com.wangt.habse.mr01;import org.apache.hadoop.hbase.Cell;import org.apache.hadoop.hbase.CellUtil;import or...

2019-08-04 16:17:04 682

原创 从零开始学习HBase - 一文详解HBase常用API

HBase常用API总结❤️ 使用的HBase版本为 1.311. pom.xml文件: <!-- 配置 Hbase 的依赖 --> <dependencies> <dependency> <groupId>org.apache.hbase</groupId> ...

2019-08-02 21:16:55 864

原创 从零开始学习HBase - CDH下HBase和MapReduce的集成

CDH 下 HBase和MR的集成1.配置环境变量❤️ 注意 每台机器都要配置vim /etc/profile追加到profile文件尾部 :export HBASE_HOME=/opt/cloudera/parcels/CDH-5.14.4-1.cdh5.14.4.p0.3/lib/hbaseexport HADOOP_HOME=/opt/cloudera/parcels/CD...

2019-08-02 20:56:10 201

原创 【Jupyter】JupterNoteBook使用技巧-安装插件 更换主题 设置字体

1.下载插件下载插件pip install jupyter_nbextensions_configuratorpip install jupyter_contrib_nbextensions执行如下命令启用插件jupyter nbextensions_configurator enable --userjupyter contrib nbextension install -...

2019-05-27 11:29:35 2165

原创 【线性回归】-最小二乘法求一元线性回归公式推导及代码实现

1.导入依赖import numpy as npimport matplotlib.pyplot as plt2.画出线性图x = [2.8 ,2.9, 3.2 ,3.2, 3.4, 3.2, 3.3, 3.7, 3.9, 4.2]y = [25.3, 27.6, 29.4, 32.3, 34.1, 36.2, 35.3, 39.1, 42, 45]plt....

2019-05-21 21:11:32 14163 1

原创 【分类】- 基于朴素贝叶斯的垃圾邮件预测系统

简单介绍:这里我举例来简单的说明下贝叶斯算法 :如上图 : 假设一个班有 100 人 , 其中80%的是玩王者荣耀的 , 20%玩吃鸡 ,那么在所有人中玩LOL的占 10%其中 同时玩 王者 和 LOL 的人 有 8个人 ,占所有玩 王者的人中 的 8 / 80 ,同样的 同时玩 吃鸡和 LOL的占所有玩吃鸡人数的2 / 20 根据这个概率表 , 我们可以计算出 当我们只...

2019-03-15 13:24:17 1175

原创 从零开始学习Hadoop - Gzip , BZip2 , Lzo Snappy 四种方式的优缺点 和使用场景

Gzip 优点压缩解压速度快 , 压缩率高 , hadoop本身支持 处理压缩文件时方便 , 和处理文本一样 大部分linux 系统自带 Gzip 命令 , 使用方便缺点不支持切片使用场景文件压缩后在130M以内 (一个块大小) , 都可以使用 GZip 压缩(因为Gzip唯一的缺点是不能切片) 总结 : 不需要切片的情况下 可以使用 BZip2 优点压...

2019-02-22 21:38:38 4952 4

原创 【问题解决】Hadoop 常见问题汇总

Hadoop常见问题任何配置文件的修改尽量先关闭集群 centos无网络重启network.service显示以下情况原因 :NetworkManager是fedora上的一个网络地址服务,它会自动地检测目前网络上的设置,并自动修改设置文件的内容,如无线网络的检测等。但当它无法识别时,就会产生无法联机的状况,因此建议将NetworkManager停用...

2019-01-10 17:22:59 278

原创 二叉树的迭代遍历

此时栈中 {5,4,2} , p 此时指向 2 的左子树, 但是左子树是null, 我们就需要将栈顶元素出栈 2 , 此时指针再指向 2 的右子树, 以此类推,使用一个指针 p 一直向左走, 将走过的节点放入栈中, 这里注意, 栈是先入后出的, 所以出栈时的顺序正好是我们中序遍历的顺序, 当指针走到叶子节点时,前序遍历的序列是: [5,4,2,1,6] , 栈的出入顺序是, 先入, 后出, 假如我们想要一个元素先出, 就要让它后入栈。得到 中右左的顺序, 然后再逆序即可.

2023-01-21 22:19:32 1580

原创 图解二叉树的构造 | 中序 + 后序

我们要递归, 需要首先确定递归函数, 因为题目是以数组形式, 我们如果要取数据, 需要开始和结束下标, 所以递归函数的下标是。下一步是终止条件, 因为是给定了下标, 如果下标不合法, 说明到达终止条件, 因为递归的话, 需要不断去划分左右子树。递归思路很简单, 因为无论是构造一棵大树还是一棵小树, 都是重复的子问题, 思路主要麻烦在边界上。上述是中序和后续序列。

2023-01-16 21:36:56 352

原创 110.平衡二叉树 | 分治思想

平衡二叉树 : 每个节点 的左右两个子树的高度差的绝对值不超过 1。, 只要有一个节点对应的子树不是, 这棵树就不是平衡二叉树。层序遍历 + 获取每个节点的最大深度判断。一棵树是否是平衡二叉树, 是。

2023-01-13 23:58:35 447

原创 二叉树的深度 | 分治 +回溯 + 迭代

最大深度之所以ok是计算的是最大深度, 右边即使是1也不影响, 但是如果计算的是最小深度, 在比较时, 就无法真正获取最小深度。思路很简单 : 层序遍历, 每走一层, depth+1, 第一次遇到叶子节点就是最小深度。终止条件 : 叶子节点, 特征是 左右子树为空。这个思路也可以处理最大深度, 也是一样的。

2023-01-13 23:56:54 440

原创 222.完全二叉树的节点个数 |递归优化思路 + 复杂度分析

进一步分解, 假设我们要统计上面树的节点数, 就变成了统计左子树 4 和右子树 5 的两棵子树的节点数的子问题, 这个问题逐渐分解, 分解到最小单位。递归的思路很简单, 假设们要统计一棵树的节点数, 那么 只要统计根节点的左子树的节点数, 和右子树的节点数加上根节点即可。那么, 假设我们要统计左子树的节点数, 其实就变成了统计以2为根节点的树的节点个数。实际上本题是完全二叉树, 满二叉树的计算公式是假设层数是h, 节点数是。, 因为其实是访问了所有的节点, 计算满二叉树的时间复杂度是层高。

2023-01-12 21:58:22 245

原创 101.对称二叉树 | 递归 + 迭代

先判断是否满足终止条件, 也就是存在 left.right 或者 right.left 为空的情况, 此时不对称, 直接就返回结果了。同理, 我们对比内侧其实就是对比的 left.right 和 right.left 这两棵子树是否对称。然后我们要对比以 left 为根节点 和 以right 为根节点的树, 如下图所示, 这个很关键。左节点为空, 右节点不为空, 不对称 (注意这里是左节点和右节点, 而不是左子树和右子树)需要补充的是, 当最后到达叶子节点时, 其实叶子节点也可以看做左右子节点都为空的树。

2023-01-11 22:36:19 229

原创 Netty网络编程 - NIO基础

non-blocking io 非阻塞 IO。

2023-01-03 18:22:56 254

原创 处理Typroa中图片相对路径在Vuepress中不生效的问题

Typroa 中图片路径是上面这样的, 而Vuepress识别不了, 只能是 ./assets 这种的。

2022-11-29 20:31:47 75

原创 构造方法与方法调用指令分析 || JVM类加载与字节码技术

编译器会按从上至下的顺序,收集所有 {} 代码块和成员变量赋值的代码,形成新的构造方法,但原始构造方法内的代码总是在最后。最终方法(final),私有方法(private),构造方法都是由 invokespecial 指令来调用,属于静。编译器会按从上至下的顺序,收集所有 static 静态代码块和静态成员赋值的代码,合并为一个特殊的方法。new #2 : 是创建【对象】,给对象分配堆内存,执行成功会将【对象引用】压入操作数栈。成员方法与静态方法调用的另一个区别是,执行方法前是否需要【对象引用】

2022-10-19 20:55:11 192

原创 条件判断指令分析 || JVM类加载与字节码技术

参考 : https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html#jvms-6.5.lcmp。以上比较指令中没有 long,flfloat,double 的比较,那么它们要比较怎么办?赋值指令是从操作数栈复制到局部变量表中 , 而累加是 直接在局部变量表中累加。其他的如 do while 和 for 其实都是类似的。

2022-10-19 20:54:16 254

原创 字节码指令案例分析 || JVM类加载与字节码技术

可以看到局部变量表中有三个 slot (插槽) , 0 , 1 , 2 分别对应着 args , a , b。a++ 和 ++a 的区别是先执行 iload 还是先执行 iinc。注意 : iinc 指令是直接在局部变量的slot上执行的!从字节码角度分析 a++ 相关题目。

2022-10-18 19:06:19 177

原创 字节码指令 || JVM类加载与字节码技术

构造方法的字节码指令 :=>aload_0加载 slot 0 的局部变量,即 this,做为下面的构造方法调用的参数b7 =>预备调用构造方法 ==> #100 01 引用常量池中 #1 项,即b1 表示返回。

2022-10-17 18:54:45 247

原创 类文件结构 || JVM类加载与字节码技术

一个最简单的 HelloWorld 代码, 使用 javac 编译后会生成 HelloWorld.class 文件。

2022-10-17 18:54:12 195

原创 239.滑动窗口最大值 || 单调队列 || 模板题

239滑动窗口最大值

2022-10-12 19:08:43 171

原创 SQL之运算符篇

算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加(+)、减(-)、乘(*)、除(/)和取模(%)运算。

2022-10-08 15:21:52 146

原创 SQL之SELECT使用篇

这些语句定义了不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。

2022-10-08 15:20:57 452

原创 11.盛水最多的容器 || 双指针

这个思路和计算两数之和三数之和差不多, 利用夹逼定理, 移动两个指针 , 盛水的大小时由最短的那一边决定的, 并且移动的过程中, 宽度是一直减小的。轴共同构成的容器可以容纳最多的水。找出其中的两条线,使得它们与。**说明:**你不能倾斜容器。返回容器可以储存的最大水量。

2022-09-27 21:16:22 20

原创 JVM垃圾回收算法与原理详解

​优点 :缺点 :使用 打印GC信息执行结果如下 :可以看到,其实也是有被回收了,也就是意味着虚拟机并没有因为两个对象相互引用就不回收他们。侧面说明虚拟机并不是通过引用计数法来判断对象是否存活。虽然可引用计数法很简单,也经常被提及,但是HotSpot虚拟机却不是用这个算法来判断对象是否继续被引用,而是使用下面要介绍的算法:可达性分析算法。目前 Java 虚拟机的主流垃圾回收器采取的是可达性分析算法。这个算法的实质在于将一系列 GC Roots 作为初始的存活对象合集(live set),然后从该合集出

2022-09-27 08:51:57 186

原创 15.三数之和 || 双指针

只要有两个相同的 i , 那么一定会出现重复的 [i, j, k] , 因为 i 相同, 传入 twoSum() 中对应的 nums 也是重合的。无论对于 i = 1 还是 i = 2 来说, 都可以得到 [-1, 2] 这一组满足条件的值(这一题要注意和两数之和的区别 : 两数之和的结果仅仅有一个, 而三数之和有多个结果并且不能重复。但是 题目要求 nums[i] + nums[j] + nums[k] = 0 , 满足。, 并且所有的三元组必须都是不重复的。), 所以我们需要把相同的剔除。

2022-09-26 19:52:10 229

原创 ConcurrentHashMap简单案例

线程安全集合类可以分为三大类:遗留的线程安全集合如Hashtable,Vector使用 Collections 装饰的线程安全集合,如重点介绍Blocking、、Concurrentcas遍历时如果发生了修改,对于非安全容器来讲,使用机制也就是让遍历立刻失败,抛出,不再继续遍历。

2022-09-26 14:51:55 267

原创 CyclicBarrier

循环栅栏,用来进行线程协作,等待线程满足某个计数。构造时设置『计数个数』,每个线程执行到某个需要“同步”的时刻调用 await() 方法进行等待,当等待的线程数满足『计数个数』时,继续执行功能和 countdownlatch 一样, 但是 CyclicBarrier 可以循环使用。

2022-09-25 14:33:20 40

原创 167.两数之和II-输入有序数组 || 双指针

初始状态 : target = 9 , sum = nums[start] + nums[end]还有一种方法就是使用两个指针 , 然后先固定一个的值, 移动另外一个来判断当前的值是否符合。你所设计的解决方案必须只使用常量级的额外空间。,请你从数组中找出满足相加之和等于目标数。如果设这两个数分别是。的形式返回这两个整数的下标。以长度为 2 的整数数组。重复使用相同的元素。

2022-09-24 09:40:13 144

原创 Semaphore

semaphore [ˈsɛməˌfɔr] 信号量,用来限制能同时访问共享资源的线程上限....................

2022-09-23 18:56:32 275

原创 ReentrantLock读写锁源码解析

事情还没完,在 setHeadAndPropagate 方法内还会检查下一个节点是否是 shared,如果是则调用 doReleaseShared() 将 head 的状态从 -1 改为 0 并唤醒老二,这时 t3 在 doAcquireShared 内。t3 进入 sync.releaseShared(1) 中,调用 tryReleaseShared(1) 让计数减一,这回计数为零了,进入 doReleaseShared() 将头节点从 -1 改为 0 并唤醒老二,即。的低 16 位,而读锁 使用的是。

2022-09-23 14:48:31 18

原创 AQS基本介绍

AQS是一个用来构建锁和同步器的框架,使用AQS能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的,Semaphore,其他的诸如,,FutureTask等等皆是基于AQS的。当然,我们自己也能利用AQS非常轻松容易地构造出符合我们自己需求的同步器。AQS 全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架独占锁是不可重入锁 , 已经获得锁的话, 再次请求获得锁会导致死锁./*** 独占锁 同步器类。

2022-09-23 14:45:03 241

原创 StampedLock

该类自 JDK 8 加入,是为了进一步优化读性能,它的特点是在使用读锁、写锁时都必须配合戳使用StampedLock提供三种模式的读写锁,分别为写锁、悲观读锁、乐观读锁。并且是写写互斥、读写互斥、读读共享。

2022-09-23 14:44:08 229

机器学习个人笔记完整版v5.4-A4打印版.pdf

吴恩达机器学习的笔记 需要的可以下载

2019-07-11

CDH5.14离线搭建.md

CDH离线文档 下面的懒得写

2019-05-26

最新尚硅谷全套视频打包地址

尚硅谷的全套数据资源 有 java 前端 , 大数据 python 等等

2019-03-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除