自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分布式事务解决方案专题

分布式事务解决方案专题什么是分布式事务?分布式理论基础CAP理论BASE理论分布式事务解决方案2PC控制使用Seata实现2PC事务控制TCC控制使用Seata实现TCC事务控制使用Hmily实现TCC事务控制可靠消息最终一致性什么是可靠消息最终一致性解决方案本地消息表方案RocketMQ方案最大努力通知方案什么是最大努力通知最大努力通知和可靠消息最终一致性的区别什么是分布式事务?首先我们明确一下事务的概念,什么是事务呢?事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失

2020-06-09 00:29:11 300

原创 ARTS挑战week1

Algorithm题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。代码(Java实现):方法一(暴力破解):class Solution { public int[] twoSum(int[] nums, int targ...

2019-07-14 14:03:47 165

原创 Linux学习之路-------内核初始化

内核的启动从入口函数start_kernel()开始。在init/main.c文件中,start_kernel相当于内核的main函数。打开这个函数,你会发现,里面是各种个样初始化函数XXXX_init。初始化:首先是项目管理部门,在操作系统中,有一个创始进程,有一行指令set_task_stack_end_magic(&init_task)。这里面有一个参数init_task,它的...

2019-05-06 21:21:26 351

原创 数据结构与算法之二分查找

假设我们有1000万个整数数据,每个数据占8个字节,如何设计数据结构和算法,快速判断某个整数是否出现在这1000万数据中?我们希望这个功能不要占用太多的内存空间,最多不要超过100M,你会怎么做?无处不在的二分思想二分查找时一种非常简单易懂的快速查找算法,生活中到处可见。比如说,我们现在来做一个猜字游戏。我随机写一个0到99之间的数字,然后你来猜我写的是什么。猜的过程中,你每猜一次,我就会告诉...

2019-04-24 10:03:46 143

原创 Linux学习之路------从BIOS到bootloader

当按下计算机的启动按钮时,主板就开始上电。在主板上,有一个东西叫ROM(Read Only Memory,只读存储器)。这和咱们平常说的内存RAM(Random Access Memory,随机存取存储器)不同。咱们平时买的内存条时可读可写的,这样才能保存计算结果。而ROM是只度的,上面早就固化了一些初始化的程序,也就是BIOS(Basic Input and Output System,基本...

2019-04-23 17:37:12 1100 1

原创 Linux学习之路------x86架构

作为Linux操作系统,如果硬件环境千差万别,就会很难集中精力做出让用户易用的产品。x86架构是一个开放的平台。计算机的工作模式是什么样的?还记得咱们攒电脑时买的那堆硬件么?虽然你可以根据经验,把那些复杂的设备和线安装起来,但是你真的了解它们为什么要这么连接么?现在我就把硬件图和计算机的逻辑图对应起来,带你看看计算机的工作模式。对于一个计算机来讲,最核心的就是CPU。这是这台计算机的大脑...

2019-04-20 11:10:03 1223

原创 大数据之Hadoop文件系统HDFS

一 HDFS概述1.1 HDFS产生背景随着数据量越来越大,在一个操作系统管辖的范围内存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统,HDFS只是分布式文件管理系统中的一种。...

2019-04-17 21:33:21 272

原创 数据结构与算法之排序大全

数据结构与算法之排序一 线性排序桶排序:顾名思义,桶排序就是将数据放在一个个桶中,然后对每个桶进行单独排序,最后合并起来成为一个有序的列表。使用场景:适用于在特定数据中,将每个桶内的数据合并起来之后不需要再进行排序。比如在磁盘中存有10G数据,无法一次性读入内存,这时则需要将这些数据按照一定情况进行分组,再进行组内排序。计数排序:计数排序其实是桶排序的一种特殊情况,例如有n个数在区...

2019-04-16 22:35:47 365

原创 大数据之Hadoop完全分布式集群配置

一. Yarn上运行MapReduce大体步骤:准备一台客户机安装jdk配置环境变量安装hadoop配置环境变量配置集群yarn上运行启动,测试集群在yarn上运行wordcount案例配置集群配置yarn-env.sh 配置Java_HOME环境变量配置yarn-site.xml<property> <name>yarn-nodeman...

2019-04-15 20:08:55 197

原创 Linux学习之路------系统调用

系统调用进程管理在Linux中,创建进程的系统调用叫fork,其中老的进程叫做父进程,新的进程叫做子进程。当父进程调用fork创建进程的时候,子进程将各个子系统为父进程创建的数据结构也全部拷贝了一份,甚至连程序代码也是拷贝过来的。按理说,如果不进行特殊的处理,父进程和子进程都按照相同的程序代码进行下去,这样也就没有意义了。所以,我们往往会这样处理:对于fork系统调用的返回值,如果当前进程是...

2019-04-15 19:35:58 134

原创 Java核心技术之反射以及动态代理

0/100发布文章 博文管理我的博客退出 Trash Temp 欢迎使用CSDN-markdown编辑器 数据结构与算法之复杂度分析 数据结构与算法之复杂度分析 数据结构与算法之排序 Java核心技术之动态代理 Java核心技术之强引用,软引用,弱引用和幻象引用 J...

2019-04-11 21:39:38 166

原创 Linux学习之路-----快速上手几个Linux命令

Linux操作系统有很多功能,我们有很多种方式可以使用这些功能,其中最简单和直接的方式就是命令行。命令行就相当于你请求服务使用的专业术语。干任何事情,第一步就是学会使用正确的术语。用户名和密码对于Linux来说,与windows的Administrator相对应的也有一个root用户,可以通过passwd命令修改密码。在Linux中,可以通过useradd cliu8创建用户,同时会默认创建...

2019-04-11 20:57:22 162

原创 大数据之Hadoop环境搭建以及初始用

一 Hadoop组成Haddop HDFS:一个高可靠,高吞吐量的分布式文件系统Hadoop MapReduce:一个分布式的离线并行计算框架Hadoop YARN:作业调度和资源管理的框架Hadoop Common:支持其他模块的工具模块HDFS架构概述NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性,以及每个文件的块列表和块所在的DataNode等。...

2019-04-11 00:08:26 273

原创 Java核心技术之String,StringBuffer,StringBuilder有什么区别

String是Java语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的Immutable类,被声明为final Class,所有的属性也都是final的。也由于它的不可变性,类似凭借,裁剪字符串等动作,都会产生新的String对象。由于字符串操作的普遍性,所以相关操作的效率往往对应用性能有明显影响。StringBuffer是为解决上面提到拼接产生太多中间对象的问题而提供的...

2019-04-10 00:01:21 125

原创 Linux学习之路---六座大山

第一坡抛弃旧的思维习惯,熟练使用Linux命令行推荐书籍:《鸟哥的私房菜》第二坡通过系统调用或者 glibc,学习Linux程序设计推荐书籍:《UNIX 环境高级编程》第三坡了解 Linux 内核机制,反复研习重点突破推荐书籍:《深入理解 LINUX 内核》第四坡阅读 Linux 内核代码,聚焦核心逻辑和场景推荐书籍:《LINUX 内核源代码情景分析》第五坡实验定制化 L...

2019-04-09 12:37:01 127

原创 Linux学习之路

2019-04-09 12:25:59 85

原创 Java核心技术之强引用、软引用、弱引用、幻象引用

Java一共有四种不同的引用类型,主要体现的是对象不同的可达性状态和对垃圾收集的影响。1. 强引用所谓强引用就是我们最常见的普通对象引用,只要还有强对象引用指向一个对象,就能表明该对象还活着,垃圾收集器不会碰这种对象。对于一个普通的对象,如果没有其他引用关系,只要超过了引用的作用域或者显示的将相应(强)引用赋值为null,就是可以被垃圾收集的了,当然具体回收时机还是要看垃圾回收策略。2. 软...

2019-04-01 21:44:47 137

原创 数据结构与算法之递归

推荐注册返佣金的这个功能在很多App中都有。在这个功能中,用户A推荐用户B来注册,用户B又推荐了用户C来注册。我们可以说,用户C的”最终推荐人“为用户A,用户B的”最终推荐人“也是用户A。而用户A没有”最终推荐人“。一般来说,我们会通过数据库来记录这种推荐关系。在数据库表中,我们可以记录两行数据,其中actor_id表示用户id,referrer_id表示推荐人id。基于这个背景,我的问题是...

2019-04-01 20:24:09 245

原创 数据结构与算法之队列:队列在线程池等有限资源池中的应用

我们知道,CPU资源时有限的,任务的处理速度与线程个数并不是线性相关。相反,过多的线程反而会导致CPU频繁切换,处理能力下降。所以线程池的大小一般都是综合考虑要在处理任务的特点和硬件环境,来事先设置的。当我们向固定大小的线程池中请求一个线程时,如果线程池中没有空闲资源了,这个时候线程池如何处理这个请求?时拒绝请求还是排队请求?各种处理策略又是怎么实现的呢?实际上,这些问题并不复杂,其底层的数据...

2019-04-01 19:53:57 731 1

原创 数据结构与算法之栈

当你依次访问完一串a-b-c页面之后,点击浏览器的后退按钮,就可以查看之前浏览的页面a和b。当你后退到页面a,点击前进按钮,就可以重新查看页面b和c。但是,如果你后退到页面b后,点击了新的页面d,就无法再通过前进后退功能查看页面c了。要实现上述功能,就需要用到“栈”这个数据结构。一. 简介“栈”是一种有特定规则的数据结构,当某个数据集合只设计在一端进行插入和删除数据的操作,并且满足后进先出,...

2019-04-01 19:08:50 817

原创 数据结构与算法之复杂度分析

其实,只要讲到数据结构与算法,就一定离不开时间,空间复杂度分析。复杂度分析时整个算法学习的精髓,只要掌握了它,数据结构和算法的内容基本上就掌握了一半。*一. 为什么需要复杂度分析你可能会有些疑惑,我把代码跑一遍,通过统计,监控就能得到算法的执行时间和占用的内存大小。为什么还要做时间和空间复杂度分析呢?这种分析方法能比我实实在在跑一遍得到的数据更加准确么?首先,这种方式是正确的,这种方法也叫事...

2019-03-22 23:38:08 272

原创 Java核心技术之final,finally和finalize有什么不同

finalfinal可以用来修饰类,方法和变量。当final用来修饰类时,代表这个类不能被继承;当final用来修饰方法时,代表这个类不能被重写;当final用来修饰变量时则代表这个变量不能被修改。在日常使用中,我们推荐使用final关键字来明确表示我们代码的语义,逻辑的意图,我们可以将一些方法或者类声明为final,这样就可以明确告诉别人,这些行为是不允许被修改的;我们也可以使用final修...

2019-03-22 13:21:12 116

原创 Java核心技术之Eexception和Error

Java核心技术之Eexception和ErrorException和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成部分。Exception和Error体现了Java平台设计者对不同的异常情况的分类。Exception是程序正常运行过程中,可以预料的意外情况,并且可以被捕获并且进...

2019-03-21 13:22:05 211

原创 Java核心技术之谈谈你对Java平台的理解

Java核心技术之谈谈你对Java平台的理解什么是Java?Java本身是一种面向对象的语言,其跨平台性和通过垃圾回收器进行垃圾回收是它的最主要的两个特性。刚开始学习Java的人通常会被Jre和JDK的概念困扰。JRE,也就是Java的运行环境,包含了JVM和Java类库以及一些模块等;而JDK除了JRE之外还提供了一些工具。对于Java来说,在一次编译之后,生成了字节码,通过JVM内嵌的解...

2019-03-20 23:09:14 126

空空如也

空空如也

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

TA关注的人

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