自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

何星平的博客

主要用于记录自己学习和工作中点滴,沉淀和积累。

  • 博客(79)
  • 收藏
  • 关注

原创 选择排序思路及实现

package sort/** * 选择排序是需要把数据加载到内存 * 选择排序思想: * 第一次从arr(0) ~ arr(n-1)中选取最小值,与 arr(0)交换, * 第二次从arr(1) ~ arr(n-1)中选取最小值,与 arr(1)交换, * 第三次从arr(2) ~ arr(n-1)中选取最小值,与 arr(2)交换, * .... * 总共通过n-1次,得到一个安排序列从小到大排列的有序序列 */object SelectSort { def ma.

2021-08-17 16:51:08 220 1

原创 快速排序思路及实现

package sortimport scala.util.control.Breaks._object QuickSort { def main(args: Array[String]): Unit = { val arr = Array(-9,78,0,23,-567,70) quickSort(0,arr.length-1,arr) println(arr.mkString(" ")) } def quickSort(left:Int,right: In.

2021-08-17 16:49:47 175 1

原创 归并排序思路及实现

package sortimport java.text.SimpleDateFormatimport java.util.Dateobject MergeSort { def main(args: Array[String]): Unit = { /* val arr = Array(-9,78,0,23,-567,70) val temp = new Array[Int](arr.length) val right:Int = arr.length-1 ..

2021-08-17 16:48:28 170

原创 插入排序代码实现

package sort/** 加载到内存进行排序 * 插入排序思想: * 把N个待排序的元素看成为一个有序表和一个无序表, * 开始时有序表中只包含一个元素,无序表中包含有N-1个元素, * 排序过程中每次从无序表中取出第一个元素, * 把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表 */object InsertSort { def main(args: Array[String]): Unit = { val ar

2021-08-17 16:45:33 149

原创 二叉排序树(BST)

package binaryTree/** * 二叉排序树(BST): * 对于二叉排序树中任何一个非叶子节点要求 * 左子节点的值比当前节点的值小, * 右子节点的值比当前节点的值大 * 如果有相同的值,可以将该节点放在左子节点或者右子节点 */object BinarySortTree { def apply(): BinarySortTree = new BinarySortTree() def main(args: Array[String]): Unit =

2021-08-17 15:54:44 91

原创 二叉树的遍历、查找

package binaryTree/** * 二叉树的遍历、查找 */object BinaryTree { def apply(): BinaryTree = new BinaryTree() def main(args: Array[String]): Unit = { // 手动添加一个二叉树 val heroNode1 = new HeroNode(1,"宋江") val heroNode2 = new HeroNode(2,"吴用") val..

2021-08-17 15:53:32 116

原创 hash表+链表结构

package hashtabimport scala.io.StdInimport util.control.Breaks._/** * hash表+链表结构 * 改为有序链表 加入有序,加入的时候判断是否重复 */object HashTableDemo { def main(args: Array[String]): Unit = { val hashTab = new HashTab(7) var key = "" while (true){ .

2021-08-17 15:30:54 138

原创 迷宫回溯思路与代码实现

package recursion/** * 迷宫回溯 * 思路: * 1、创建一个二维数组(表示迷宫) * 2、约定元素的值: * 0-可以走还没有走;1-墙;2-表示可以走;3:表示以及走过,但是是死路 * 3、确定一个策略(走的方向优先级):下 -> 右 -> 上 -> 左 */object Migong { def main(args: Array[String]): Unit = { val map = Array.ofDim[Int](8,..

2021-08-17 15:23:26 83

原创 环形队列实现

图解环形队列代码实现package circleArrayQueueimport scala.io.StdIn/** * 环形队列 */object CircleArrayQueueDemo { def apply(maxSize: Int): CircleArrayQueueDemo = new CircleArrayQueueDemo(maxSize) def main(args: Array[String]): Unit = { println("输入队列大小:

2021-08-11 16:24:22 59

原创 约瑟夫(丢手绢)问题

初始化单向环形链表丢手绢示意图实现代码package linkedlist.josephuimport scala.util.control.Breaks._object Josephu { def main(args: Array[String]): Unit = { val boyGame = new BoyGame boyGame.addBoy(7) // boyGame.showBoy() boyGame.playGame(4, 3, 7)

2021-08-11 16:18:06 121

原创 单向链表-增删改查

package linkedlistimport util.control.Breaks._/** * 单项链表 */object SingleLinkList { def apply(): SingleLinkList = new SingleLinkList() def main(args: Array[String]): Unit = { val heroNode1 = new HeroNode(1, "宋江1", "及时雨1") val heroNode3 =

2021-08-11 11:22:41 64

原创 稀疏数组的压缩

package sparseArrimport java.io.{FileInputStream, FileOutputStream, ObjectInputStream, ObjectOutputStream}import scala.collection.mutable.ArrayBuffer/** * 稀疏数组的压缩: * 适用于对大量相同数据的二维数组进行压缩、存盘、恢复 */object SparseArray { def main(args: Array[String]

2021-08-11 11:04:01 118

原创 Kafka服务端源码剖析七 -- 服务端发送响应

上节我们看到响应被写到了ResponseQueue队列中,接下来我们来看看服务端发送响应的准备工作。再次回到Processor的run方法,Processor线程是一个非常重要的线程,可以说所有的事就靠这个线程来完成的。override def run() { startupComplete() while (isRunning) { try { // setup any new connections that have been queued up

2021-05-11 17:59:01 320

原创 Kafka服务端源码剖析六 -- requestQueue队列里的请求是如何被处理的?

上一小节我们分析到客户端发送过来的请求都被封装成Request对象存储到了RequestChannel的requestQueue队列里了,这一小节我们看一下Server端是如何处理队列里的Request的? /** * Start up API for bringing up a single instance of the Kafka server. * Instantiates the LogManager, the SocketServer and the request handle

2021-05-11 17:00:23 322

原创 Kafka服务端源码剖析五 -- Processor线程是如何处理completedReceives请求的?

上次我们分析到Processor线程把请求存入到了completedReceives队列里,我们这次课分析一下,请求存入到completedReceives以后接下来是如何处理的。我们接着看Processor线程的run方法,前面我们已经分析了 configureNewConnections()方法和 poll()方法。接下来我们看看一下processCompletedReceives()方法: private def processCompletedReceives() { //TODO 针对

2021-05-08 18:17:40 166

原创 Kafka服务端源码剖析四 -- Processor线程将接受到的请求加入到stagedReceives队列、completedReceives队列

上一节我们分析到Acceptor把接收到的请求给了不同的Processor,然而Processor只是把这些请求给缓存起来了。这些请求终归是需要处理的,接下来我们就看Processor是如何处理这些请求的?,首先从run()方法开始: override def run() { startupComplete() while (isRunning) { try { // setup any new connections that have been queue

2021-05-08 17:34:49 200

原创 Kafka服务端源码剖析三 -- 启动用于处理请求连接的Processor线程

在创建Acceptor对象的时候,我们初始化了一个processors数组,然后传入进了Acceptor的主构造方法,如下:endpoints.values.foreach { endpoint => val protocol = endpoint.protocolType //todo numProcessorThreads 网络线程的个数默认为3,至少是1 val processorEndIndex = processorBeginIndex +

2021-04-30 17:39:55 174

原创 Kafka服务端源码剖析二 -- Acceptor线程的启动

首先我们进入 kafka的main方法如下:def main(args: Array[String]): Unit = { try { val serverProps = getPropsFromArgs(args) // 创建kafkaServerStartable对象 val kafkaServerStartable = KafkaServerStartable.fromProps(serverProps) // attach shutdown

2021-04-30 16:16:12 173

原创 kafka服务端源码剖析一 -- 代码结构

core包: server端的代码,里面涉及了网络通信,副本同步,磁盘读写,集群架构的内容。同时这也是我们接下来剖析的重点。

2021-04-30 15:34:50 113

原创 hbase.xml

<configuration>abse <property> <name>hbase.rootdir</name> <value>hdfs://magic1:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</

2021-04-28 01:06:24 125 1

原创 JVM监控及诊断工具(一)

jps查看正在运行的java进程类似linux中的ps命令它的基本使用语法为:jps [options] [hostid]我们可以通过追加参数,来打印额外的信息。options 参数-q :仅仅显示进程ID-l :输出应用程序主类的全类名或者如果进程执行的是jar包,则输出jar完整路径-m: 输出虚拟机进程启动时传递给主类main()的参数-v :列处虚拟机进程启动时的JVM参数。比如:-Xmx20m -Xmx40m是启动程序制定的jvm参数。说明以上参数可以综合使用补充:如

2021-03-16 02:18:04 137

原创 Disruptor 简例

定义事件/** * 定义event事件:通过Disruptor进行交换的数据类型 * @author hxp * @create 2020-11-17 17:02 */public class StringEvent { private String value; // 放一个字符串数据 public String getValue() { return value; } public void setValue(String value)

2020-11-30 17:19:32 274

原创 quartz调度简单使用

quartz实例演示实例一: 简单的重复调度/** * Job 任务类 * @author hxp * @create 2020-11-12 16:36 */// 每次调度完成之后会对job持久化,保存数据信息。 由无状态的调度变成有状态的调度@PersistJobDataAfterExecutionpublic class HelloJob implements Job { private Integer count; public void setCount(In

2020-11-27 14:20:01 173

原创 jvm详解---类加载器子系统

这里写自定义目录标题欢迎使用Markdown编辑器官方下载和参考书籍内存结构概述类加载器ClassLoaderde 角色类的加载过程类加载器的分类功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好

2020-10-13 00:46:32 144

原创 docker详解

Docker简介是什么?问题:为什么会有docker出现?一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来

2020-09-25 12:32:33 651

原创 ThreadLocal说明

强引用 正常的引用都是强引用// 创建M对象,重写finalize方法public class M { @Override protected void finalize() throws Throwable { System.out.println("GC回收之前调用finalize"); }}/** * 对象的finlize会在对象被回收的时间调用,不能将耗时特别长的东西, * 放入finalize里面比如关闭文件IO,关闭数据库连接等,可能导致对象

2020-09-17 18:06:02 97

原创 kafka配置参数详解

一、相关参数配置############################ System ##############################唯一标识在集群中的ID,要求是正数。broker.id=0#服务端口,默认9092port=9092#监听地址,不设为所有地址host.name=debugo01 # 处理网络请求的最大线程数num.networ...

2020-01-09 13:41:23 196

原创 IDEA External libraries 不显示Maven中引入的repository

记录一下遇到的这个问题的解决方法,也是困惑了半天,感觉这是maven的bug,因为动了几次项目中引入的外部jar包,导致IDEA External libraries 不显示Maven中引入的repository,解决方法:打开IDEA右侧的侧边栏Maven Project -> life cycle -> cleaninstall最后同样是在Maven Projec...

2020-01-07 18:12:52 468

原创 spark操作phoenix

spark第八篇:与Phoenix整合 spark sql可以与hbase交互,比如说通过jdbc,但是实际使用时,一般是利用phoenix操作hbase。此时,需要在项目中引入phoenix-core-4.10.0-HBase-1.2.jar和phoenix-spark-4.10.0-HBase-1.2.jar。java代码示例: public stat...

2020-01-07 17:51:38 662 1

转载 flume的memeryChannel中transactionCapacity和sink的batchsize需要注意事项

transactionCapacity和sink的batchsize

2019-12-01 21:12:51 218

转载 SpringBoot整合redis和elasticsearch的异常问题

链接地址,测试有效

2019-10-16 14:46:52 185

转载 com.zaxxer.hikari.util.DriverDataSource : Registered driver with driverClassName=com.mysql

原创 【日常填坑】com.zaxxer.hikari.util.DriverDataSource : Registered driver with driverClassName=com.mysql. ...

2019-10-09 16:40:52 3590

转载 解决:Hibernate-Validator仅仅返回第一条错误信息

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本...

2019-10-09 14:45:23 861 1

转载 @RequestParam、@RequestBody和@ModelAttribute区别

@RequestParam、@RequestBody和@ModelAttribute区别 </h1> <div class="clear"></div> <div class="postBody"> 一、@RequestParamGET和POST...

2019-10-09 14:35:26 173

转载 SpringBoot与缓存使用及原理

原创 SpringBoot与缓存使用及原理(上) ...

2019-09-30 10:23:51 122

原创 spring与rabbitmq整合

Rabbitmq介绍整合使用1、增加配置<!--rabbitMQ支持--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependenc...

2019-09-29 15:16:41 84

转载 springboot与ActiveMQ整合

springboot与ActiveMQ整合

2019-09-29 14:33:56 90

原创 git的使用

本地库初始化安装完git之后,在windows任意一目录,鼠标右键选择git bash,进入界面里面的操作完全兼容linux命令,1、新建一个文件 mkdir wechar2、执行 git init,用ls -A 查看里面生成一个隐藏文件夹 (.git)git目录里面存放的是本地库相关的子目录和文件,不要删除,不要胡乱的修改,如果里面文件乱掉,我们就不能用git进行版本控制了设置签...

2019-09-24 00:53:26 310 10

原创 nginx 实例应用

Nginx 的简介1、什么是 nginxNginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。2、正向代理(1)需要在客户端配置代理服务器进行指定网站访问3、反向代理暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。4、负载均衡增加服务器的数量,然后将请求分发到各个服务器上,将...

2019-09-23 01:50:53 299

转载 jieba中文分词详细讲解(实例)

jieba中文分词详细讲解(实例)添加链接描述

2019-09-19 14:01:57 1146

空空如也

空空如也

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

TA关注的人

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