自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 十大经典排序算法最强总结(含JAVA代码实现)

0、排序算法说明 0.1排序的定义 对一序列对象根据某个关键字进行排序。 0.2 术语说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序:所有排序操作都在内存中完成;...

2018-05-22 20:25:23 190 0

原创 剑指(滑动窗口的最大值 )

1.题目描述: 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。 例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3, 那么一共存在6个滑动窗口, 他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个:...

2020-06-09 23:31:34 39 0

转载 世界上最好的学习法:费曼学习法

你是否曾幻想读一遍书就记住所有的内容?是否想学习完一项技能就马上达到巅峰水平?除非你是天才,不然这是不可能的。对于大多数的普通人来说,可以通过笨办法(死记硬背)来达到学习的目的,但效率低下。当然,也可以通过优秀的学习法来进行学习,比如今天讲的“费曼学习法”,可以将你的学习效率极大的提高。 #...

2020-03-09 17:12:52 86 0

原创 两个线程轮流打印奇偶数

第一种方式 使用Object的wait和notify实现 package cn.zhm.Thread; import java.util.concurrent.atomic.AtomicInteger; public class test_02 { AtomicInteger co...

2019-11-21 18:30:59 73 0

原创 JVM调优

1.GC调优思路 a.分析场景 例如:启动速度慢;偶尔出现响应慢于平均或者出现卡顿 b.确定目标 内存占用,低延时,吞吐量 c.收集日志 通过参数配置收集GC日志;通过JDK工具查看GC状态 d.分析日志 使用工具辅助分析日志,查看Gc次数,GC时间 e.调整参数 切换垃圾收集...

2019-10-19 23:11:57 82 0

原创 JAVA锁

1.Lock ()(不死不休) 2.boolean tryLock = lock.tryLock();子线程获取锁(浅尝辄止) 只要别人占用了锁 则就会获取锁失败 new Thread(new Runnable() { public void run() { ...

2019-09-27 23:09:51 59 0

原创 Elasticsearch(五)

1.图解partial update 实现原理以及动手实战演练 1.什么是partial update ? PUT /index/type/id 创建文档&替换就是一样 (1)应用程序先发起一个get请求,获取到document,展示到前台界面,供用户查看和修改 (2)用户在前台界...

2019-09-08 09:56:17 54 0

原创 Elasticsearch(四)

1.图解Elasticsearch 容错机制:master选举、replica容错、数据恢复。 master node宕机,自动master选举 red 初步解析document的核心元数:_index,_type,_id { "_index" : "...

2019-09-05 20:05:36 72 0

原创 Elasticsearch(三)

1.Elasticsearch对复杂分布式机制的透明隐藏特性。 分片 cluster discovery, shar负载均衡(举例 假如现在有3个节点 总共25个shard分配到3个节点去,es分自动进行均匀分配,以保持每个节点的均衡的读写负载请求) shard 副本 请求路由 集群扩容 sh...

2019-09-05 00:57:36 30 0

原创 Elasticsearch(二)

1.索引的几种查询 1.query sting search GET /ecummerce/product/_search 1.took :耗费了几毫秒 2.timed_out 是否超时 这里没有 3._shards :数据拆成了一份,所以对于搜索请求,会打到所有primary sha...

2019-09-01 19:13:24 50 0

原创 Elasticsearch(一)

1.定义 如果用数据库做搜索会怎样? 1.每条记录的指定字段的文本可能太长 2.还不能将搜索词拆分来,尽可能去搜索更多的符合的期望的结果。比如输入:生化机 就搜索不出来"生化危机" 用数据库来实现搜索 是不太靠谱 效果比较差。 Elasticsearch 核心概念...

2019-08-30 23:53:53 63 0

原创 Rabbitmq(二)

1.Rabbitmq的消息确认机制(事务+confirm) 在rabbitmq中我们可以通过持久化数据,解决rabbitmq服务器异常的数据丢失问题 问题 :生产者将消息发送出去之后,到底有没有到达rabbitmq服务器 默认情况 不知道 两种方式: AMQP实现了事务机制 confir...

2019-08-18 01:31:27 40 0

原创 ideal

/** * create by: zhaohaiming * create time: $date$ $time$ * description: $TODO$ */

2019-08-16 17:08:49 364 0

原创 RabbitMq订阅模式

RabbitMQ 工作原理 对于 RabbitMQ 来说, 除了这三个基本模块以外, 还添加了一个模块, 即交换机(Exchange). 它使得生产者和消息队列之间产生了隔离, 生产者将消息发送给交换机,而交换机则根据调度策略把相应的消息转发给对应的消息队列. 那么 RabitMQ 的工作流程如...

2019-08-14 01:11:47 157 0

原创 RabbitMQ安装与简单队列

1.先安装esl-erlang_22.0~windows_amd64 2.第二安装:rabbitmq-server-3.7.17 3.在控制页面:rabbitmq-plugins enable rabbitmq_management 进入安装目录\sbin下,使用命令“rabbitmq-plu...

2019-08-11 20:21:57 43 0

原创 CAP理论原理与理解

CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),最多只能同时三个特性中的两个,三者不可兼得。 一、CAP的定义 Consistency (一致性): 在分布式系统...

2019-08-08 22:50:54 57 0

原创 手写一个线程死锁

死锁的原因: a.系统资源不足 b.进程运行推进的 c.资源分配不 当 死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相 等待的现象 若无外力干涉那它们都将无法推进下去。 代码如下: package cn.link.cn; public class Deal...

2019-08-05 22:06:43 124 0

原创 Java几种二叉树的遍历

二叉树节点数 代码如下: package cn.zhm.tree; /** * 二叉树的节点数 */ public class BinaryTreeNode { private int data; private BinaryTreeNode left; pr...

2019-08-03 02:00:43 74 2

原创 Synchronized 和Lock的区别

2019-07-26 00:47:09 33 0

原创 Java几种方式实现生产者与消费者

第一种是 用wait 和 notify 第二种是await 和signal实现 代码实现如下: package cn.link.cn.jisun; import java.util.concurrent.locks.Condition; import java.util....

2019-07-26 00:40:53 42 0

原创 共享锁(读写锁)

1.指该锁可被多个线程所持有 不加出现问题 代码如下: package cn.link.lock; import java.sql.Timestamp; import java.util.HashMap; import java.util.Map; import java.util.Ti...

2019-07-16 23:40:34 374 0

原创 原字符翻转

题目描述 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。 给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。 测试样例: "This is nowcode...

2019-07-15 00:36:15 32 0

原创 剑指(从尾到头打印链表 )

题目   输入一个链表的头结点,从尾到头反过来打印出每个结点的值。结点定义如下: 思路   结点遍历顺序只能从头到尾,但是输出的顺序却为从尾到头,是典型的“后进先出”问题,这就要联想到使用栈,从而也可以联想到使用递归。 代码 package cn.link; public class...

2019-07-13 22:45:24 22 0

原创 集合不安全

1.list集合 a.故障现象 异常:java.util.ConcurrentModificationException b.导致原因: 并发读写 c.解决方案: List list = new Vector();List list = new Collections.synchro...

2019-07-13 21:21:57 25 0

原创 剑指(斐波那契数列 )

题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 现在代码 package zc.zhm.day1; public class Tset_2 { public int fibonacci(in...

2019-07-11 23:08:45 44 0

原创 多线程下的单例模式(双端检索模式)

package zc.zhm.day1; public class SingletonDemo { private static volatile SingletonDemo instance = null; public SingletonDemo() { System.out.pr...

2019-07-06 18:37:07 1282 0

原创 剑指(数值的整数次方 )

题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路: 这道题很容易实现,但需要注意以下陷阱:1)0的负数次方不存在;2)0的0次方没有数学意义;3)要考虑exponent为负数的情况。所以可以对exponent进...

2019-07-04 18:53:12 48 0

原创 剑指(旋转数组最小值)

题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 思路...

2019-07-04 11:15:26 44 0

原创 剑指(用两个栈实现队列 )

题目: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 分析思路: 1.只要stack2不为空则从stack2取数据 2.如果stack2为空则往sctack1插入数据 代码如下 package zhm.day1; import java....

2019-06-29 16:46:31 72 0

原创 剑指(替换空格)

题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 分析思路: 1.先统计空格数量个数count 2.统计新的字符串的长度 originalLength +2*coun...

2019-06-29 16:39:10 106 0

原创 剑指(二维数组中查找)

题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解题分析: 代码如下: package zhm.day1; /** * 在一个...

2019-06-29 00:26:21 54 0

原创 剑指(重建二叉树 )

题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 分析: 二叉树的前序遍历顺序是:先访问根节点...

2019-06-29 00:14:21 30 0

原创 Storm(一)

1.Storm是Twitter开源的分布式实时大数据处理框架,是实时数据处理 Storm的核心组件 Nimbus:即Storm的Master,负责资源分配和任务调度。一个Storm集群只有一个Nimbus。 Supervisor:即Storm的Slave,负责接收Nimbus分配的任务,管理...

2019-06-27 23:17:25 32 0

原创 jvm参数配置

一、垃圾回收判断对象是否存活 (1)引用 计数算法 在对象添加一个用计数器,当有地方引用这个对象的时候,引用计数器的值就+1,当引用失效的时候计数器的值 就-1 缺点 循环引用会有问题。 (2)可达性分析算法 从GCRoot开始访问是否能找到 能找到说明 是活 如果找不到则死亡。 作G...

2019-06-26 22:20:21 60 0

原创 Zookeeper

http://www.massedynamic.org/eclipse/updates/

2019-06-18 21:45:25 29 0

原创 链表操作

package cn.day18; import java.util.ArrayList; import com.sun.org.apache.regexp.internal.recompile; public class LinkData { public ListNode add...

2019-06-15 18:10:53 84 0

原创 把查询到的结果插入到另一个表中

INSERT INTO yun_safe_file ( parent_id, NAME, total_size, record_id, create_time, create_name, STATUS, type, flag, user_type, image_flag ) ...

2019-06-15 15:59:14 362 0

原创 spark-slq

package com.base.spark import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org.apache.spark.sql._ import org.apache.spark.s...

2019-06-12 00:38:47 38 0

原创 使用Fork/Join框架

使用Fork/Join框架首先要考虑到的是如何分割任务,如果希望每个子任务最多执行两个数的相加,那么我们设置分割的阈值是2,由于是4个数字相加,所以Fork/Join框架会把这个任务fork成两个子任务,子任务一负责计算1+2,子任务二负责计算3+4,然后再join两个子任务的结果。因为是有结果的...

2019-06-03 18:26:45 32 0

原创 Mongodb基本操作(-)

1.查询所有 db.getCollection('example_data_1').find({}) 2.单一插入 db.getCollect i on { ’ ex ampl e_data_l ’ ) . 工nsertOne {{ " name ":...

2019-06-01 14:05:47 29 0

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