自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 JPDA学习

一、JPDA简介JPDA is a multi-tiered debugging architecture that allows tools developers to easily create debugger applications which run portably across platforms, virtual machine (VM) implementations and JDK versions.---文档原介绍, 我理解JPDA就是对Java整个调试和监控体系的集成,我们实际

2021-03-08 17:15:24 2321

转载 缓存更新问题

https://www.cnblogs.com/rjzheng/p/9041659.html

2019-08-31 21:44:56 204

原创 Leetcode 152. Maximum Product Subarray

Given an integer arraynums, find the contiguous subarray within an array (containing at least one number) which has the largest product.Example 1:Input: [2,3,-2,4]Output: 6Explanation:[2,3] h...

2019-08-28 10:33:08 163

转载 Redis Hash一致性算法学习

https://blog.51cto.com/zero01/2115528

2019-08-26 13:45:32 103

原创 leetcode 9.Palindrome Number

public boolean isPalindrome(int x) { if(x < 0 || (x != 0 && x % 10 == 0 )) { return false; } int sum = 0; while(x > sum) { su...

2019-08-25 19:30:32 96

原创 Windows 本地启动Flink.

首先需要安装jdk8版本,并且配置环境变量, 然后上官网http://mirror.bit.edu.cn/apache/flink/flink-1.8.1/flink-1.8.1-bin-scala_2.11.tgz下载flink1.8版本。到解压后的目录下启动start-cluster.sh脚本, 然后在网页上输入localhost:8081进行验证发现可以看到Flink UI说明成功....

2019-08-22 13:45:30 979

原创 Flink比赛之前的基础学习

本博客描述了我学习flink的来龙去脉,不保证最终的学习效果!!!http://wuchong.me/可以先看大牛博客里的几篇文章建议就看两篇Flink原理与实现:理解Flink中的计算资源Flink原理与实现:架构和拓扑概览。接下来主要是对Flink Table & SQL的文档 API进行翻译和解读。文档地址:https://ci.apache.or...

2019-08-19 13:13:41 394

转载 sparksql的sql实现原理

SQL语句首先通过Parser模块被解析为语法树,此棵树称为Unresolved Logical Plan;Unresolved Logical Plan通过Analyzer模块借助于Catalog中的表信息解析为Logical Plan;此时,Optimizer再通过各种基于规则的优化策略进行深入优化,得到Optimized Logical Plan;优化后的逻辑执行计划依然是逻辑的,并不能被S...

2019-08-18 20:43:31 198

转载 S2算法和GEOHASH算法

https://www.jianshu.com/p/7332dcb978b2学到了 这两个算法主要是对二维数据转换成一维数据,然后可以建立索引。 所谓滴滴附近的人等等功能的实现原理就是这样的...

2019-08-17 22:50:47 1507

原创 Flink学习笔记之Process Function

预计一周时间来完成这篇文章, 对Flink文档提供的基础入门的每个环节进行研究记录(目的是想参加阿里的Flink编程比赛):如图Flink提供了不同级别的抽象编程模型,先看最低级别的Stateful Stream Processing,它通过Process Function嵌入到DataStream API当中(有说法是在Flink未来的迭代过程当中会移除DataSet API, 在现有...

2019-08-17 10:59:48 572

原创 The Dataflow Model论文学习笔记

因为是被誉为流计算基石的论文,所以决定花时间学习一下。这篇论文在开篇总结了流计算的应用场景 主要是说现在对数据处理的语义越来越复杂, 对延时性的要求越来越苛刻。。在这里对Spark Streaming的微批次流处理模型进行了批评,在流计算的时候应该遵从的理念是我们不知道数据何何时流何时被终结,何时数据会完整,唯一确信的是新的数据会源源不断的进来,老的数据会被撤销或者更新。基于这个思路来设计...

2019-08-06 09:16:34 600 1

原创 约瑟夫环问题数学推导(看不懂请举报作者)

题目:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去....直...

2019-08-04 16:47:18 788

转载 困扰已久的大数据场景题

由于每次面试我都没有答出来该类场景题,现在做一个记录来避免下一次答不出来的困扰。另外感谢https://blog.csdn.net/v_july_v/article/details/7382693july 转载1、海量日志数据,提取出某日访问百度次数最多的那个IP。 内存为XXX。 (XXX一定是不足以存下所有的IP的)IP地址基数大概有2的32次方个,那么就将访问百度的日志中的IP...

2019-08-03 12:28:06 912

原创 Spark Stage划分和Task提交源码清晰总结版(看不懂请举报作者)

Spark的Action算子会触发job的执行,job执行流程中的数据依赖关系是以Stage为单位的,同一Job里的Stage可以并行,但是一般如果有依赖则是串行。所有Action算子都会执行SparkContext的RunJob-》DagScheduler的Runjob->DagScheduler的submitJob()接下来进行源码分析SubmitJob方法def submit...

2019-08-02 23:31:23 340 2

转载 类图学习

车的类图结构为<<abstract>>,表示车是一个抽象类; 它有两个继承类:小汽车和自行车;它们之间的关系为实现关系,使用带空心箭头的虚线表示; 小汽车为与SUV之间也是继承关系,它们之间的关系为泛化关系,使用带空心箭头的实线表示; 小汽车与发动机之间是组合关系,使用带实心箭头的实线表示; 学生与班级之间是聚合关系,使用带空心箭头的实线表示; 学生与身份证之...

2019-07-18 12:46:12 288

翻译 Spark内核剖析

我们先将编写的应用程序Application打成jar包,用spark-submit结合shell来提交这个应用程序。如果是StandAlone模式的话会通过反射的方式创建和构造一个Driver进程,driver进程负责运行application应用程序的main函数和创建sparkContext.Spark Context: 另外一种意义上的Spark入口类,SparkContext相当于连...

2019-07-06 14:13:51 121

转载 B树和B+树:漫画转载

一个m阶的B树具有如下几个特征:1.根结点至少有两个子女。2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m4.所有的叶子结点都位于同一层。5.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。imag...

2019-07-05 10:50:28 395

原创 Leetcode 73.Set Matrix Zeroes

看起来很容易,但是按照正常的思路来解却有很多坑, 如果一个值==0, 那么它所在的那行和列全部设为0, 好像表面看起来直接根据这个逻辑写个for循环就AC了, 但是实际上要考虑一个问题就是会出现递归的情况, 就是设为0以后 这些变成0的值又执行了上述的这个逻辑,这就比较麻烦了。 但是 实际上出现这种情况的原因自己跑一遍逻辑就会发现是[i][0] [0][j]这些元素搞的鬼。 所以做赋值操...

2019-07-01 11:07:17 117

原创 SQL练习题50道

// 首先是数据库脚本CREATE DATABASE babel;USE `babel`;CREATE TABLE `course` ( `cid` int(20) unsigned NOT NULL AUTO_INCREMENT, `cname` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAUL...

2019-06-26 17:47:38 420

原创 Leetcode 47. Permutations II

Given a collection of numbers that might contain duplicates, return all possible unique permutations.Example:Input: [1,1,2]Output:[ [1,1,2], [1,2,1], [2,1,1]]这道题现在的水平只考虑学会用回溯来解, 当时对于回溯...

2019-06-24 10:21:33 88

原创 Leetcode 45. Jump Game II

Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that position.Your goal is to...

2019-06-23 09:26:08 57

原创 Leetcode 37. Sudoku Solver

数独题 是道比较费脑筋的题Write a program to solve a Sudoku puzzle by filling the empty cells.Asudoku solution must satisfyall ofthe following rules:Each of the digits1-9must occur exactlyonce in each ...

2019-06-21 14:02:23 70

原创 Leetcode 34. Find First and Last Position of Element in Sorted Array

Given an array of integersnumssorted in ascending order, find the starting and ending position of a giventargetvalue.Your algorithm's runtime complexity must be in the order ofO(logn).If the...

2019-06-21 11:30:16 87

原创 Leetcode 33. Search in Rotated Sorted Array

这道题要在一个已经被旋转后的数组当中找到目标数值target;Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.(i.e.,[0,1,2,4,5,6,7]might become[4,5,6,7,0,1,2]).You are given a ...

2019-06-21 11:05:28 75

原创 Leetcode 32. Longest Valid Parentheses

Given a string containing just the characters'('and')', find the length of the longest valid (well-formed) parentheses substring.Example 1:Input: "(()"Output: 2Explanation: The longest valid...

2019-06-21 10:54:40 83

原创 Leetcode 10. Regular Expression Matching

matching with support for'.'and'*'.'.' Matches any single character.'*' Matches zero or more of the preceding element.The matching should cover theentireinput string (not partial).Note:...

2019-06-19 17:15:53 87

翻译 Netty学习

首先需要对IO的模型有些了解, 分成阻塞、非阻塞, 异步、同步这几款。之前会经常对这些知识分不清楚。现在做个总结。1.异步和同步: 异步和同步的区别主要通过这个调用的返回结果的获取是通过谁来进行的, 如果是同步的话这个结果是通过请求方主动来获取的, 而异步是服务方通过状态、回调等机制来通知请求方。阻塞和非阻塞是描述在这个调用返回的时刻该线程的状态是阻塞的还是非阻塞的。 非阻塞意味着可以做其他的...

2019-06-17 00:17:52 79

原创 HashMap接口

// 1. putMap<String, String> map = new HashMap<>(); map.put("a","A"); map.put("b","B"); String v = map.put("b","v"); // 输出 B System.out.println(v); ...

2019-06-15 12:08:20 2618

原创 牛客网(剑指offer)二叉树的下一个结点

这道题的思路是这样的, 首先根据节点是否有右子树, 有的话找到右子树的最左结点返回,没有的话 可以再进一步思考这个节点的3种情况1.是父节点的左孩子这种情况返回父节点2.是父节点的右孩子(1)如果父节点是爷爷节点的左孩子,那么返回爷爷节点,(2)如果父节点是爷爷节点的右孩子, 再看爷爷节点是不是祖父的左孩子,是就返回祖父, 不是的话再往上继续找3.没有父节点。...

2019-06-14 17:27:25 96

翻译 RestFul代码风格的一次吐槽

https://www.zhihu.com/question/28570307参考知乎链接(一直发现知乎上讨论技术的话题往往会出现很精髓的回答,有技术问题真的可以先搜搜知乎- -)在上家实习公司实习时就经常痛恨这种事情, 就是RestFul的设计风格, 它导致了所有的应用资源化, 第一是不方便快速的定位代码片段(看起来很微弱,但给我的感觉来看实际上影响很大), 将同一资源的所有操作...

2019-05-24 12:27:20 162

原创 Leetcode 146 LRU

实现LRU缓存, 学会两种实现方式, 原始一点的用HashMap,可以了解更多实现细节, 还有就是LinkedHashMap(比较简单 就省略了)( 可以先将代码放到Leetcode上跑通过后再来看代码), 看了半天别人的代码然后跑过去通不过是件很沮丧的事情。1. HashMap版本package com.azhou.xiaoming;import java.util.HashMap...

2019-05-23 22:10:28 145

原创 Leetcode 144~145

在这里会将树的前中后序遍历的非递归进行总结。先记住一个要点, 所有的非递归和递归操作其实思路是一样的, 只是形式不一样。 根据我的实习经验来看,实际上工作日常编码如果能用递归尽量用递归,方便代码维护。废话说完开始正篇:前中后序的非递归版本其实操作的流程是一样的 先附上高赞总结的代码//1. 前序public List<Integer> preorderTraversal...

2019-05-23 20:10:34 160

原创 Leetcode 143. Reorder List

Given a singly linked listL:L0→L1→…→Ln-1→Ln,reorder it to:L0→Ln→L1→Ln-1→L2→Ln-2→…Example 1:Given 1->2->3->4, reorder it to 1->4->2->3.Example 2:Given 1->2->3->4-...

2019-05-23 11:29:12 85

翻译 Kafka学习

先贴一个Kafka大牛的博客链接https://blog.csdn.net/u013256816/article/details/89529752Kafka作为一个消息系统主要是用来解决应用解耦问题、异步消息问题、流量削峰问题。同时也提供了流处理等能力。消息队列主要有两种消息模型: 点对点和发布订阅模式。(1)点对点:每条消息只发送给一个消费者。(2)发布订阅:多个消费者订阅主题...

2019-05-16 17:07:31 246

原创 类加载机制

什么是类的加载机制?JVM将编译后生成的class字节码文件加载到内存中, 并将这些静态数据转换成方法区中的运行时数据结构,在内存中生成一个代表这个类的java.lang.Class 对象,作为虚拟机来访问相关信息的入口。类加载机制过程:5个阶段1.加载通过类的全限定名来获取定义此类的二进制字节流将这个类字节流代表的静态存储结构转为方法区的运行时数据结构在堆中生成一个代表此...

2019-05-14 15:51:23 69

翻译 HashMap源码分析

HashMap 成员变量主要是负载因子和阈值。// 根据构造函数查看阈值的计算public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < 0) throw new IllegalArgumentException("Illegal initial...

2019-05-14 15:51:10 77

翻译 图解ConcurrentHashMap1.8源码

1.8的ConcurrentHashMap在线程安全方面做的设计主要是通过CAS + Synchronized 来保证并发操作的。数据结构和HashMap一致,但是在设计方面会有细节的区别, 首先从Node类开始参考,我会尽量找出一些和HashMap不同的关键点来做分析有助于帮助理解线程安全的设计思想。另外补充一个CAS的开销问题https://www.jianshu.com/p/21be83...

2019-05-13 18:56:15 582 2

原创 volatile学习

代码编译成字节码被类加载器加载到jvm当中,jvm执行这个字节码转成汇编指令在cpu上执行,volatile修饰的共享变量在进行写操作的这个代码转化成汇编时会多出一个Lock指令前缀, 这个指令在多核处理器下会引发两件事1)将当前处理器缓存行的数据写回到系统内存。2)这个写回内存的操作会使在其他CPU里缓存了该内存地址的数据无效.先说一下带有高速缓存的CPU执行计算的流程 程序以...

2019-05-10 16:16:28 79

翻译 JVM学习

JVM内存模型管理1.程序计数器可看做是当前线程所执行的字节码的行号指示器,字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器完成。(线程执行Java方法时计数器记录的是虚拟机字节码指令的地址,Native方法时计数器值为空)。2.虚拟机栈描述的是Java方法执行的内存模型,每个方法在执行的同...

2019-05-10 14:22:03 68

翻译 Java锁机制(偏向锁、轻量级锁、重量级锁)

从synchronized举例,在java1.6当中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。·对于普通同步方法,锁是当前实例对象。·对于静态同步方法,锁是当前类的Class对象。·对于同步方法块,锁是Synchonized括号里配置的对象。JVM基于进入和退出Monitor对 象来实现方法同步和代码块同步,但两者的实现细节不一样。代码块同...

2019-05-10 10:12:05 1037

空空如也

空空如也

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

TA关注的人

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