自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LoganMaaa的博客

肯吃苦,吃苦半辈子;不肯吃苦,吃苦一辈子!一个发展中的Coder。https://github.com/maronghe

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

原创 JVM中堆的结构

新生代 --会发生Minor GC1.EdenEden区包含很多个TLAB(Thread Local Allocation Buffer,即线程私有缓冲区),对象分配于此区域,当内存需求不断扩大时,TLAB会动态扩展,当Eden还有额外空间时,会再分配一个TLAB。当对象太大时JVM会在Eden区寻找一个块连续的空间存储该对象,如果对象过大时,Eden区无法满足其需求时,...

2019-04-22 23:20:41 2717

转载 归并排序 - Java实现

  归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。Git地址:https://github.com/maronghe/arithmetic/blob/master/src/...

2018-08-27 11:51:02 158

原创 tcp udp 面试题

TCPTCP三次握手机制,为什么要三次握手?考点:为什么要握手?TCP最重要的特性就是可靠性,自己发出去的数据要等到对方去确认,并回复收到了(ack),TCP是支持双工协议,所以双方都要去维护自己的序列号(seq,不从0开始,随机生成的)。因为要获取序列号(和MSS,滑动窗口),所以要握手。为什么要三次?因为关闭连接的时候,TCP协议允许连接处于半打开(半关闭)状态。而建立连接不允许连接处于半打开状态,所以Server要把自己的序列号回复过来。HTTP 缓存处理流程?.

2020-06-26 15:50:12 468

原创 defer不同版本之前的区别

Defer 1.12 vs 1.13 vs 1.14原文来自:https://maronghe.github.io/1.12之前defer func(){} —> 会被翻译成两个函数deferproc() : 注册,defer func(){} 到g的defer链表中,头插法。defer需要进行堆分配,而且参数变量需要进行堆栈间拷贝。runtime.deferreturn() : 执行,defer链表的中的每一项(先注册 -》 后执行)// runtime/runtime2.

2020-06-26 15:48:05 288

原创 golang数组和切片的区别

数组和切片的区别底层结构创建varmake[]int{}slice扩容复用底层数组注意:array不能跟nil比较,编译报错make只能用于 map, channel ,slice的创建,不能创建数组var arr [5]int 创建数组,初始化为5个零​数组大小不可变,切片可变kind数组 array [2]int , [3]int[]slice slice []intcopy 仅能用于slice,并且dst必须要有容量复用底部数组 t3 .

2020-06-26 15:46:33 288

原创 线程池的好处和实现

Java 实现Demopackage com.logan;import java.util.concurrent.*;/** * 线程池测试类 * @author logan * @Date 2019年05月08日23:40:49 */public class MyThreadTester { public static void main(String[] ...

2019-05-08 23:45:41 314

原创 算法:青蛙跳台阶

1.一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。典型的斐波那契数列2.青蛙跳台阶plus版本一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。关于本题,前提是n个台阶会有一次n阶的跳法。分析如下:f(1) = 1f(2) = f(2-1) + f(2-2...

2019-05-02 17:22:08 3703

原创 动态代理-CGlib和JDK动态代理

重温jdk动态代理和cglib代理的区别:jdk动态代理实现InvocationHandler接口,重写invoke方法,加上自己想要的逻辑代码。 创建代理目标对象 通过Proxy.newInstance(classLoader,interfaces,InvocationHandler子类);去创建代理类,之后强转或者使用泛型方法。 通过代理类来进行方法的调用。要求:代理类和目标对...

2019-04-20 15:42:24 177

原创 僵死进程 和 孤儿进程

一般,子进程是由父进程产生的。孤儿进程:当子进程存活,父进程死亡,此时的子进程叫孤儿进程,内核就把孤 儿进程的父进程设置为init,而init进程会循环地wait()它的已经退出的子进程。这样,当一个孤儿进程凄凉地结束了其生命周期的时候,init进程就会代表党和政府出面处理它的一切善后工作。因此孤儿进程并不会有什么危害。僵死进程:例如有个进程,它定期的产 生一个子进程,这个子进程需要做的事...

2018-09-06 23:56:58 157

原创 ThreadLocal 原理

由于Alibaba面试官提到ThreadLoacl,但是由于之前根本没有使用过,也没真正的去专研这个类。连夜赶出一篇文章。ThreadLocalThreadLocal是解决多线程访问同一变量,保证线程安全产生的。它为每一个使用变量的线程提供一个独立的副本。换句话说,每个线程都持有一个该对象的副本。自己对自己的副本进行操作就不会出现线程不安全的问题。它将每个线程和对象的副本存放在Thre...

2018-09-06 23:55:29 154

原创 Java 多线程交替打印1~100

Java 多线程交替打印1~100亮点:1. 这个Demo中,利用了static 静态导包。2. 进入Git仓库,在同包下面会找到保证原子性的三个Demo(分别是,利用synchronized,ReentrantLock,和AtomicInteger实现的)。GitHub :https://github.com/maronghe/ODOP/blob/master/src/com...

2018-09-02 21:27:08 10657 3

原创 ElasticSearch创建索引报错

当执行curl -X PUT '9.112.4.34:9200/accounts/person/1' -d '{  "user": "张三",  "title": "工程师",  "desc": "数据库管理"}'报错:{"error":"Content-Type header [application/x-www-form-urlenco

2018-08-29 11:15:58 3178

原创 拓展性的聊一聊RPC(Remote Procedure Call)

拓展性的聊一聊RPC(Remote Procedure Call)RPC使用于大型公司内,由于公司的业务增多避免不了将不同的业务分配到不同的主机上进行解耦,它请求其他主机上的服务就像请求自己本机上的服务一样简单。-HTTP是属于面向接口,通常所谓的RESTful风格的服务接口,很多企业都是这样,一边开发一边写文档。比如,POST http://www.httpexample.com/r...

2018-08-29 10:51:36 324

原创 Hadoop 遇到的【坑】

1.在3.x中,改变了namenode的http端口号(由原来的2.x的50070改成了9870)。2.同样在3.x中,改变了2.x的slaves文件,在3.x中变成了workers文件(在$HADOOP_HOME/etc/hadoop/.)3. 在3.x中,配置好了NN(NameNode)的HA(High Availability,官网写的是这个,居然还看到某网上有人写High Avai...

2018-08-29 10:43:07 186

原创 ElasticSeacrch 启动问题 - max virtual memory areas is too low【亲测】

当修改 $ES_HOME/config/elasticsearch.yml 配置文件中的host地址时,network.host: x.x.x.x再次启动时,如果报错max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]证明虚拟内存太小,至少需要262144...

2018-08-29 10:40:32 697

原创 Leetcode 汇总区间 228

给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。示例 1:输入: [0,1,2,4,5,7]输出: ["0->2","4->5","7"]解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。示例 2:输入: [0,2,3,4,6,8,9]输出: ["0","2->4","6","8

2018-08-21 18:08:09 174

原创 Lambda表达式 Java1.8

Lambda表达式,一看这个写法,我就联想到了ES6中的箭头函数,因为女朋友是做前端的,之前跟她一起学过一些前端的知识,不过学识尚浅,如果有什么想切磋的,直接联系我就好了。Lambda表达式是在Java 1.8后出现的,他是针对接口中只有一个抽象方法,可用@FunctionalInterface修饰告诉JVM,这样JVM就不用挨个的去判断是否只包含一个JVM了。凡是提出某个技术,我就愿意去从它...

2018-08-17 12:55:39 200

原创 BIO 实现Client与Server的通信

    看了一篇BIO(同步阻塞)NIO(同步非阻塞)AIO(异步非阻塞)的文章,就是非阻塞IO,大家都知道,Java中的通信是通过流进行操作的。这样就会提出几个名词。阻塞,非阻塞,同步,异步。同步 - 是针对通信机制而言的,同步是指当我发送一个请求后,我代码就要等待响应,否则不能执行接来下的代码。 异步 - 也是针对通信机制而言的,异步是指当我发送请求后,此时我还可以去做其他的事情,当有结...

2018-08-14 13:49:09 656

原创 Java设计模式-工厂方法模式

    我是一个从用了四年的Eclipse转向用Idea编译器的Coder,但是有人说Idea是非常好的开发工具,那么我就 想尝试一下,这个“好”,好在哪里?但是第一次使用,我连创建个Java项目都不会,只能创建一个J2EE Project。(哈)  此句话来自于《Head First设计模式》中文版:在设计模式中,所谓的“实现一个接口”,并“不一定”表示“写一个类,并领用implement...

2018-08-13 00:26:43 191

转载 阿里面试题之《学生党如何拿到阿里技术offer》

原文转发自:https://yq.aliyun.com/articles/6656https://yq.aliyun.com/articles/7468

2018-08-12 15:47:04 264

转载 阿里巴巴Java开发手册-终极版

下载地址:链接: https://pan.baidu.com/s/1_FdKXOGM21BroiDH1edvIg密码: qsjn

2018-08-12 15:20:12 1133

原创 Hadoop HA 和 MapReduce 学习笔记

一.NameNode上存储着最重要的文件(fsimage和edits文件),但是主从结构的,都存在单点故障问题。所以,需要配置HA高可用(Hight Availability)也不知道在哪看到有人写High Available...(笑声)    那么就需要控制其(产生和变化)一致性         fsimage          edits    fsimage 和 editslog ...

2018-08-11 22:15:42 346

转载 Apache Hadoop 3.0.0 GA版正式发布,可以部署到线上

本博客文章除特别声明,全部都是原创!转载本文请加上:转载自过往记忆(https://www.iteblog.com/)本文链接: 【Apache Hadoop 3.0.0 GA版正式发布,可以部署到线上】(https://www.iteblog.com/archives/2306.html)如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog...

2018-08-10 12:13:04 283

原创 Linux服务器开放端口号

Linux服务器开放端口号:    sudo iptables -I INPUT -p tcp --dport [port] -j ACCEPT    如 sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT 开放8080端口查看端口号状态 netstat -nat | grep 8080...

2018-08-04 19:16:48 8793

原创 Hadoop 3.x slave file changed to '$HADOOP_HOME/etc/workers'

Thank you Google SE! Thank you official document!I am studiny Hadoop, but book and the video usually show the 2.x course.But I follow the most latest version 3.0.3. But I saw the stable version is 2...

2018-08-04 19:12:58 551

转载 HDFS 冗余数据块(Block)的自动删除

本文参考:https://www.jianshu.com/p/4e4316ae0e17https://www.jianshu.com/p/5ef70a66019a    在日常维护Hadoop集群的过程中,发现一种情况(Block 默认3):某节点由于网络故障或者DataNode进程的死亡,被NameNode判定为死亡(此时位2),HDFS马上自动开始数据块的容错拷贝(从2到3)。当该...

2018-08-02 10:22:24 1684

原创 LeetCode 旋转图像【附带解题思路及多种翻转情况】

给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3...

2018-08-01 13:54:43 341

原创 LeetCode 有效的数独【附带最笨解题思路】

判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 '.' 表示。示例 1:输入:[ ["5","3",".",".","...

2018-07-30 17:14:18 904 2

原创 LeetCode 两数之和

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]这个就非常简单了。代码地址:https://github.com/maronghe/O...

2018-07-30 17:11:17 150

转载 Leetcode 移动零【附带解题思路】

每天进步一点点,每天都会不一样。肯吃苦的人吃苦半辈子,不肯吃苦的人,吃苦一辈子。给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。解题思路:从后往前看,当遇到零,则将整后面的所有值依次向前...

2018-07-29 22:02:59 397

翻译 Hadoop的配置及启动【伪分布式】过程

参考原文:https://medium.com/@nidhinmahesh/getting-started-hadoop-mapreduce-hdfs-and-yarn-configuration-and-sample-program-febb1415f945(需要挂代理访问)apt (Advantage package tools)伪分布式:    NameNode:3.x  9870...

2018-07-29 19:05:48 1084

翻译 LeetCode PlusOne (附带解题思路)

给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 43...

2018-07-28 19:41:52 1841

翻译 【转】给定两个数组,写一个方法来计算它们的交集。

例如:给定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].注意:   输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。    我们可以不考虑输出结果的顺序。跟进:如果给定的数组已经排好序呢?你将如何优化你的算法? 如果 nums1 的大小比 nums2 小很多,哪种方法更优? 如果nums2的元素存储在磁盘上...

2018-07-27 17:51:00 3848

原创 Linux scp命令详解

1、从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地目录) 例如scp root@192.168.0.101:/var/www/test.txt  把192.168.0.101上的/var/www/test.txt 的文件下载到/var/www/local_dir(本地目录)2、上传本地文件到服务器...

2018-07-27 15:04:53 2841

原创 ubuntu14.04 163 sources.list [亲测]

deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ ...

2018-07-27 13:32:22 696

原创 设计模式(Design Pattern)

    设计模式是经过长时间的工作和经验的积累总结出来的。不管是开发讨论会上还是学习交流会上,更或者面试的时候,当提及设计模式,都会或多或少的让别人高看你一眼。设计模式分为三类:  -创建型模式 :其关心的是创建如何对象。  -结构型模式 :其关心的是类和类之间的耦合度关系,及以后维护性和代码的健壮性。  -行为型模式 :其注重代码的执行时候的行为关系。 总体分为以下23...

2018-07-26 17:44:52 269

原创 '与或非' 和 逻辑 '与或' 运算

谨记:与或非是针对二进制进行计算的,逻辑与和非是针对事件真假进行计算。- 二进制的‘与’运算A B A & B 0 0 0 1 0 0 0 1 0 1 1 1      - 二进制的‘或’运算A B A | B 0 0 0 1 0 1...

2018-07-26 12:36:59 12910 1

空空如也

空空如也

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

TA关注的人

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