自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构和算法:实现LRU缓存机制

题目题目连接运用你所掌握的数据结构,设计和实现一个LRU(最近最少使用)缓存机制。它应该支持以下操作:获取数据get和写入数据put获取数据get(key):如果密钥存在缓存中,则获取密钥的值(总是正数),则返回-1;写入数据put(key,value):如果密钥不存在,则写入其数据值,当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数据,从而为新的数据值留出空间。在...

2020-02-27 11:18:19 763

原创 Hadoop--Hadoop基准测试(读/写)

Hadoop自带了几个基准测试,本文使用的是hadoop-2.6.0一、Hadoop Test 的测试[root@master hadoop-2.6.0]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.6.0-tests.jar  An example program must be g...

2020-02-25 20:27:58 575

原创 Java高并发--线程池大小的设定

线程池大小设定Java线程被一对一的映射为内核线程,Java在使用线程执行程序时,需要创建一个内核线程;当Java线程被终止时,这个内核线程也会被挥手。Executor实现了以下四种类型的ThreadPoolExecutor在实际生产环境下,不推荐使用以上四种,因为会忽略很多线程池的参数设置!可以使用ThreadPoolExecutor定制一套线程池 public ThreadP...

2020-02-24 22:28:50 831

原创 数据结构和算法:冒泡、选择、插入、归并及快排的Java实现

package Sort;import java.util.ArrayList;import java.util.Arrays;public class Sort { //交换元素 public static void swap(int [] arr, int i, int j){ int tmp = arr[i]; arr[i] = ar...

2019-12-09 14:44:59 198

原创 HDFS源码阅读--Namenode文件系统目录树及数据块管理

文章目录Namenode一、文件系统目录树1. INode相关类1.1 INode类1.2 INodeWithAdditionalFields类1.3 INodeDirectory类1.4 INodeFile类1.5 INodeReference类2. FSEditLog类2.1 transactionId机制2.2 FSEditLog状态机2.3 EditLogOutputStream类2.4 ...

2019-12-06 17:03:02 752

原创 MySQL:SQL的语法和规则

目录条件:数字(where)条件:文本(where)排序(rows)连表(join)算式(select / where)统计(select)子表(table)SELECT col, col, col; //找什么FROM table; //从哪找WHERE col条件 ; //条件是啥条件:数字(where)当查找条件col是数字: select * from table whe...

2019-12-04 19:32:59 285

原创 数据结构和算法:二叉树的前序、中序、后序、层次遍历(递归/非递归)

目录一、递归实现1、前序遍历2、中序遍历3、后序遍历二、非递归实现1、层次遍历2、前序遍历3、后序遍历4、中序遍历一、递归实现1、前序遍历前序遍历的顺序是:中左右public class preOrderSolution { public void preOrder(TreeNode root){ ArrayList<Integer> res = new ArrayLis...

2019-12-04 11:45:12 331

原创 数据结构和算法:字符串的排列(全排列)

全排列:字符串的排列题目连接.输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。解题思路1.假设给定的一些序列中第一位都不相同,那么就可以认定说这些序列一定不是同一个序列,这是一个很显然的问题...

2019-11-28 10:25:43 264

原创 Spark--Shuffle原理和Shuffle调优

shuffle调优配置项如何使用?在代码中,不推荐使用,硬编码:new SparkConf().set("Spark.shuffle.file.buffer", "64")在提交spark任务的时候,推荐使用:spark-submit --conf spark.shuffle.file.buffer= 64 -conf在conf下的spark-default.conf配置文...

2019-11-27 15:23:44 225

原创 数据结构和算法:栈的压入、弹出序列

栈的压入、弹出序列题目连接.输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路借助一个辅助栈,遍历压栈顺序,先将第一个放入栈中,这里...

2019-11-27 11:18:56 267

原创 数据结构和算法:顺时针打印矩阵

顺时针打印矩阵题目连接.输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.解题思路1.顺时针打印其实就是按圈数循环打印,一圈包含两行或者两列;2.在打印的时候会出现某一圈...

2019-11-26 10:29:47 146

原创 数据结构与算法:LRU缓存机制的算法实现

LRU的算法实现解法一题目连接.运用所掌握的数据结构,设计和实现一个==LRU(最近最少使用)==缓存机制,支持一下操作:1.获取数据get:如果key在缓存中,则获取秘钥的值,否则返回-1;2.写入数据put:如果秘钥不存在,则写入数据值,当到达上限时,应该删除最近最少使用的值,为新的数据流出空间。3.LRU的容量为2.解法一解题思路知识点:哈希表、双向链表,LRU缓存机制。1...

2019-11-25 16:22:58 321

原创 数据结构和算法:链表中倒数第k个节点

数值的整数次方题目连接.输入一个链表,输出该链表中倒数第k个结点。解题思路利用两个指针:cur和pre:1.pre先停在head处,让cur先走k个节点;2.此时让pre和cur一起向前走,直到cur==null。此时pre指向的点就是倒数第k个节点需要考虑的两个问题1.head为空,那么直接返回null;2.链表长度小于k,此时直接返回null。/*public clas...

2019-11-25 14:11:47 109

原创 数据结构和算法:调整数组顺序,使得奇数在偶数前面

数值的整数次方解法一解法二详细步骤可见下图题目连接.输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解法一解题思路利用额外空间,遍历整数数组,将奇数按顺序放入一个数组,将偶数按顺序放入一个数组,最后合并。public class Solution { publ...

2019-11-25 13:57:05 534

原创 数据结构和算法:数值的整数次方

数值的整数次方题目连接.给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponen不同时为0解题思路首先要清除进行次方运算的规则:1.如果exponent<0,那么则base需要取倒数;2.如果exponent=0,那么始终为1,3.如果exponent>0,正常运算public clas...

2019-11-25 10:44:06 120

原创 数据结构和算法:二进制中1的个数

二进制中1的个数解法一解法二链接: https://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8?tpId=13&tqId=11164&tPage=1&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fq...

2019-11-25 10:21:52 126

原创 数据结构和算法:从尾到头打印链表

从头到尾打印链表链接: 题目连接.输入一个链表,按链表从尾到头的解题思路原地排序:1.将字符串设为足够大的容量可以放入替换后的字符串;2.从尾部开始插入;3.采用setCharAt()函数替换字符public class Solution { public String replaceSpace(StringBuffer str) { if(str == null...

2019-11-23 13:10:39 108

原创 数据结构和算法:剑指offer-替换空格

替换空格链接: https://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3e17650423?tpId=13&tqId=11155&tPage=1&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ra...

2019-11-23 11:21:20 92

原创 数据结构和算法:搜索二位矩阵

Leetcode74:搜索二维矩阵解法一:时间复杂度O(m * n)解法二:时间复杂度O(log(m*n))链接: https://leetcode-cn.com/problems/search-a-2d-matrix/.编写一个高效的算法来判断m x n 矩阵中,是否存在一个目标值。该矩阵具有如果如下特性1,每行的整数从左到右按升序排列;2,每行的第一个整数大于前一行的最后一个整数解法...

2019-11-23 10:32:52 190

原创 数据结构和算法:合并两个有序数组

Leetcode88:合并两个有序数组链接: https://leetcode-cn.com/problems/merge-sorted-array/.给定两个有序证书数组nums1和nums2,将nums2合并到nums1中,使得nums1成为一个有序数组说明:1,初始化nums1和nums2的元素数量分别位m和n;2,可以假设nums1有足够多的空间来保存nums2的元素解题思路...

2019-11-23 09:31:48 233

原创 JavaSE--static

静态修饰符:static何为静态: 在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,但是用static修饰的成员可以通过类名加“.”进行直接访问。用public修饰的static成员变量和成员方法本质是全局变量和全局方法,...

2019-10-21 11:36:26 97

原创 Java高并发--BlckingQueue/生产者-消费者模式

生产者-消费者模式为多线程间的协作提供了良好解决方案。在C-P模式中,通常有两个线程:若干个生产者线程和若干个消费者线程。生产者线程负责提交用户请求,消费者线程负责处理生产者提交的任务。生产者和消费者之间则通过内存共享缓冲区进行通信。数据共享通道:BlockingQueueBlockingQueue是一个接口,主要的实现有下面这些:1 ArrayBlockingQueue基于数组实现...

2019-10-20 11:31:12 295

原创 Java高并发--ThreadLocal和ThreadLocalMap

ThreadLocal:线程本地变量。也就是说如果定义了一个ThreadLocal,每个线程往这个ThreadLocal中读写是线程隔离,互相之间不会影响的。它提供了一种将可变数据通过每个线程有自己的独立副本从而实现线程封闭的机制。大致的实现思路是怎样的?Thread类有一个类型为ThreadLocal.ThreadLocalMap的实例变量threadLocals,也就是说每个线程有一个自...

2019-10-19 17:28:31 296

原创 Java高并发--JVM对锁得优化

锁偏向如果一个线程获得了锁,那么锁就进入了偏向模式,当这个线程再次请求锁时,无需再做任何同步操作。在几乎没有锁竞争得场合,偏向锁有较好得优化效果;在锁竞争比较激烈得场合,效果不佳,因为每次都是不同得线程请求,偏向模式会失效。轻量级锁如果偏向锁失败,虚拟机并不会立即挂起线程。它还会使用一种称为轻量级锁得优化手段。将对象头部作为指针,指向持有锁得线程堆栈得内部,判断线程是否持有对象锁,如果线...

2019-10-19 16:50:04 146 1

原创 Java高并发--HashMap源码分析

HashMap是基于哈希表,实现Map接口得双列集合,数据结构是“链表散列”即数组+链表,key唯一得value是可以重复,允许存储null键null值。hash冲突如果两个不同得元素,通过哈希函数得出得实际存储地址相同,称为hash冲突;哈希冲突得解决方法:数组+链表(HashMap)、开放定址法、再哈希法、建立公共溢出区。HashMap存储结构HashMap得底层是一个数组,数组...

2019-10-19 16:11:59 103

原创 Java高并发--线程池

一种最简单得线程创建和回收得方式:new Thread(new Runnable() { public void run() { //do sth } }).start();上述方法在run()方法结束后,自动回收该线程。线程池为了避免得创建和销毁线程,我们可以对创建得线程进行复用。线程池中...

2019-10-19 10:55:27 84

原创 Java高并发--重入锁

重入锁(Java.util.concurrent.locks.ReentrantLock):用来替代synchronized、notify()、notifyAll()。ReentrantLock得几个重要方法整理:lock():获得锁,如果锁被占用,则等待。lockInterruptibly():获得锁,但优先响应中断;tryLock():尝试获得锁,如果成功,返回true;如果返回fa...

2019-10-18 21:44:09 93

原创 Flume--Source、Channel、Sink

Flume 是一个分布式、可靠、高可用的海量日志采集、聚合和传输的系统Flume中的3个重要组件构成:source:完成对日志数据的收集,分成transtion和event打入到channel中;channel:主要提供一个队列的功能,对source提供数据进行简单的缓存;sink:取出Channel中的数据,进行相应的存储文件系统,数据库,或者提交到远程服务器。Channel有多种...

2019-10-18 11:47:51 225

原创 Flume--Event定义及源码解析

Flume基本构成与Event结构1. Event定义一行文本内容被反序列化成一个event。event的最大定义为2048字节,超过会被切割放到下一个event中。public interface Event { /** * Returns a map of name-value pairs describing the data stored in the body. ...

2019-10-18 11:36:58 3446 1

原创 Kafka--分配策略

引言按照Kafka默认的消费逻辑设定,一个分区只能被同一个消费组(ConsumerGroup)内的一个消费者消费。假设目前某消费组内只有一个消费者C0,订阅了一个topic,这个topic包含7个分区,也就是这个消费者C0订阅了7个分区。此时随着消费组内的消费者的加入,分区就会被分配到各个消费者,相互之间不干扰。如上图。如果消费者过多,出现了消费者的数量大于分区的数量的情况,就会有消费者分...

2019-10-18 11:10:00 117

原创 Java高并发--synchronized用法

volatile并不能真正的保证线程安全,只能确保一个线程修改了数据后,其他线程能够看到这个改动,但两个线程同时修改某个数据时,依然会冲突。ublic class AccountVol implements Runnable { static AccountVol instance = new AccountVol(); static volatile Integer i ...

2019-10-17 18:41:00 267

原创 Java高并发--线程

1. 线程1.1 进程和线程​ 进程:是系统进行资源分配和调度的基本单位,进程是程序的基本执行实体;进程是程序的容器​ 线程:线程是轻量级的进程,是程序执行的最小单位。并发程序设计使用多线程是因为线程间的切换和调度的成本远低于进程。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rMwH2DbB-1571301441547)(C:\Users\Nice\A...

2019-10-17 16:38:09 178

原创 Java高并发--基本名词解释

1 概念:1.1 同步(Synchronous)和异步(Asynchronous)同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为;异步方法调用一旦开始,方法调用就会立即返回,调用者可以继续后续的操作。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bntdK0wN-1571278223264)(C:\Users\Nice\AppData...

2019-10-17 10:12:25 492

原创 HBase工具类的定义

HBase工具类的定义这里面使用了ThreadLocal保证线程安全,关于ThreadLocal的详解,参见连接:https://blog.csdn.net/lufeng20/article/details/24314381package com.nice.bigdata.util;import org.apache.hadoop.conf.Configuration;import...

2019-10-12 14:04:44 103

原创 Spark项目在IDEA上的部署的问题

Spark项目在IDEA上的部署的问题在Maven下部署Spark的问题总结一、 IDEA的的Scala插件安装二、关于Maven中pom.xml依赖添加在Maven下部署Spark的问题总结一、 IDEA的的Scala插件安装一、查看IDEA的版本号,我这里是2019.2.2然后到jetrbrains官网上找对应的插件,这里千万不要在插件里面直接搜scala安装链接: https:/...

2019-09-21 13:18:57 674

空空如也

空空如也

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

TA关注的人

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