自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 servlerless 是什么

serverless简介,通过对比的方式让你快速理解serverless的概念

2021-12-04 22:48:19 556

原创 MySQL8 MVCC源码分析

隔离级别和MVCC本文源码基于mysql8.0.25大家都知道数据库定义了四个隔离级别,分别对应了在多个事务同时进行时读取数据的表现:隔离级别行为读未提交可以读到其它进行中的事务已执行但是未提交的数据读提交其它事务写的数据,只有当该事务提交后才能读到可重复读在自己的事务中每次读取的结果必然相同序列化事务好像是一个个串行执行一样上面的可重复读还可能产生幻读问题,所以还要序列化这个级别;MySQL幻读的一个例子是:两个事务并发写入一条id相同的数据,

2021-12-04 18:47:26 758

原创 GC Handbook 笔记

TLAB (Thread Local Allocation Buffer), 线程本地分配缓冲区,大部分对象直接在TLAB中分配,避免与其他线程的同步操作。对象的内存分配策略:首先在TLAB分配。TLAB空间不足就在Eden分配Eden 不足就触发一次young gc。young gc之后还是 不行就分配到老年代。java8 使用Metaspace 保存类定义...

2019-05-21 14:36:22 229

原创 各种工厂模式

本文介绍各种工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式。文章部分内容来自网址简单工厂模式需求将实例化类的代码抽象出来,使用一个类专门负责实例化各种类,使用者不显示使用new关键字创建类。UML代码public interface Product {}public class ProductImpl1 implements Product {}public class ...

2019-05-19 23:32:39 172

原创 面试题汇总

java面试题数据库面试题大数据面试题(hadoop生态, spark, es, flink)redis 面试题

2019-05-19 12:42:35 257

原创 UML建模工具简介

本文简单介绍了UML建模工具,主要介绍了类之间的几种关系。类图上面是一个类图,从上到下依次表示了类名、类的成员变量、类的成员函数。成员变量前面使用+/-/#分别表示可见性是public,private,protected接口没有成员变量,所以只有两个格子。关系依赖关系依赖关系指的是一个类的修改会对另一个类产生影响。最简单的例子是一个类使用了另一个类提供的服务。依赖关系A依赖B表现...

2019-01-12 17:35:36 2032

原创 单例模式

需求创建一个全局唯一的对象,在对象创建并初始化完成之前不允许任何其它线程获取该对象的引用。在对象创建并初始化完成之后不允许创建新的对象代替该对象。解决思路在类方法中提供一个getSingleton()方法,保证此方法的所有调用中始终返回同一个对象。UML类图实现方式懒汉模式public class Singleton { private static Singleton i...

2019-01-12 11:44:11 120

原创 Redis 底层数据结构

Redis底层使用了6种数据结构来实现上层的各种数据结构,本文将对这6种数据结构分别进行简单的介绍。本文中的图片来自《Redis设计与实现第二版》。Redis数据结构和底层数据结构的对应关系如下:简单动态字符串Redis没有直接使用C字符串来保存字符串值,而是自己实现了名为SDS的结构体。Redis中数据的值都是使用sds保存。sds是一个结构体,包含三个成员。上图中的sds中保存了...

2018-12-21 11:46:15 3841

原创 Spark 运行架构

本文是《图解Spark核心技术与案例实战》一书的读书笔记,将简单介绍一下几种Spark运行架构。总体介绍三种角色Spark有本地运行模式,stand alone模式,集群模式,yarn模式,mesos模式等多种模式。这些模式的主要组成部分都可以看成SparkContext,Cluster Manager,Executor三个部分,其中SparkContext负责管理Application的执...

2018-12-18 23:05:06 870

原创 Spark Shuffle解析

本文是《图解Spark核心技术与案例实战》一书的读书笔记,简单讲解了Spark Shuffle的相关内容。Shuffle 介绍shuffle 在spark 中是连接不同stage的桥梁,连续的若干个算子如果不涉及到shuffle操作,那么就可以作为一个stage使用流水线的方式执行,不用生成和读取中间结果,提高速度。而shuffle就是前一个stage输出中间结果和后一个stage读取中间结果...

2018-12-17 19:02:29 293

原创 jvm 之垃圾收集

本文是阅读深入理解java虚拟机之后对jvm垃圾收集机制进行总结的读书笔记。java 内存布局以上就是1.7及之前的java内存的布局,在java1.8之后使用Meta Space取代了方法区。接下来详细介绍一下每一部分。程序计数器程序计数器线程私有,在程序运行时,每个线程实际上都是一系列的方法调用的过程,而方法调用的过程最后转化为字节码一条条执行的过程,在这个过程中,程序计数器pc记载...

2018-12-14 22:24:54 98

原创 Spark 存储模型

本文简单介绍Spark 的数据存储原理,是《图解Spark核心技术与案例实战》一书的读书笔记。组件spark 存储模型是主从模型,其中Driver是Master,Executor是Slave。Driver负责数据的元信息管理,Slave 负责存储数据,执行Driver传递过来的数据操作命令。Driver应用启动时,SparkContext会在Driver端创建SparkEnv,在Spark...

2018-12-14 17:53:21 1354

原创 Spark 执行流程

本文结合源代码和《图解Spark核心技术与案例实战》简单分析了Spark的job执行过程。分析的案例代码如下,是一个简单的word count 函数。public static void main( String[] args ) { String logFile = "wordcount.txt"; SparkConf conf = new Spar...

2018-12-11 14:32:13 316

原创 java集合类之ConcurrentHashMap

本文从线程安全的角度结合源代码介绍了ConcurrentHashMap,不介绍与HashMap雷同的部分,如果对HashMap的实现有兴趣,可以参考java 集合类之HashMap。本文介绍的ConcurrentHashMap基于Java1.8源代码,ConcurrentHashMap的实现在1.8有重大调整,使用CAS的方式取代了之前的分段锁。接下来分析一下put方法,以及其实现线程安全的原理...

2018-12-06 17:57:19 138

原创 java 集合类之HashMap

本文从源代码角度简单介绍HashMap。继承架构可以看出,HashMap主要是继承了AbstractMap,实现了Map接口。类似的继承了AbstractMap的还有ConcurrentHashMap,TreeMap等等抽象数据模型HashMap的抽象数据模型来自于算法中查找技术的散列算法针对碰撞提出的拉链表。具体示意图如下:拉链表散列表是为了快速查找而设计的一类数据结构,为了能快速...

2018-12-04 21:32:04 126

原创 java 集合类之LinkedList

本文将结合源代码简单介绍一下java 中LinkedList的实现。继承结构相比ArrayList,LinkedList的继承结构要复杂一些,可以看出,LinkedList还是双向队列的实现。也意味着LinkedList可以作为栈使用。重要的字段 transient int size = 0; /** * Pointer to first node. ...

2018-12-04 15:32:53 154

原创 Mysql 事务与MVCC并发控制

本文简单介绍了事务的ACID特性和Mysql事务的四种隔离级别,以及MVCC并发控制手段。事务的ACID特性原子性(Atomicity)原子性强调事务作为一个整体,要么完全执行成功,要么完全执行失败,不能存在一些操作成功,而其他的操作失败这样的可能会破坏数据一致性的情况。一致性(Consistency)一致性指的是数据永远在一致的状态,而不会存在一部分数据在一个一致的状态,另一部分数据...

2018-12-04 10:47:44 181

原创 mysql逻辑架构

mysql 逻辑架构组成

2018-12-03 10:57:39 2782 2

原创 数据库设计范式总结

这篇文章简单介绍一下数据库的1NF范式、2NF范式、3NF范式。1NF1NF范式要求数据库中不能有可以继续拆分的列,使数据库满足1NF范式要求的方法是拆分列。实例如下:姓名电话张三手机:18000001111,固话:010-99001100这样一张表不满足1NF的要求,因为电话那一列显然可以拆分为多个列,拆分之后如下:姓名手机固定电话张三...

2018-12-03 10:44:48 184

原创 java 集合类之ArrayList

本文将从源代码的角度对Java 最常用的集合类ArrayList进行介绍,代码版本为1.8_121。继承结构除了一些功能性的接口,ArrayList的继承大致可以看成是从Collection=>AbstractCollection=>AbstractList=>ArrayList的一个继承流程,接下来依此看看这些类都做了什么工作。Collection类collect...

2018-11-19 12:26:02 204

原创 文章汇总

文章汇总javaspring源码spring bootmybatismysqlredishadoopyarnsparkstormhbaseflinkkafkazookeeperelasticsearchTCP/IPpythonangular js今年开始,陆续试着投了一些实习,奈何总是面试失败,仔细回想下来,还是自己技术沉淀不够,很多东西知其然不知其所以然,学习的方法还是和以前一样死记硬背,面试...

2018-11-19 10:15:01 137

原创 下载jdk

wget –no-cookies –no-check-certificate –header “Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F;oraclelicense=accept-securebackup-cookie” “http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-l

2016-12-19 11:37:45 252

原创 Shell编程 笔记

shell编程就是将shell命令写在一个.sh文件里面,类似批处理文件,一次执行多条语句使用readonly关键字可以建立只读变量,不能修改readonly mm="ss"#这条语句报错mm='ss'unset 可以删除已经声明的变量mm ='mm'unset mm#这条语句没有输出echo $mmshell循环,以下代码实现循环for skill in Ada Coffe Actio

2016-12-14 11:44:46 422

原创 nodejs+angularjs+npm+gulp+bower+jade+less构建前端框架

名词解释nodejs:nodejs是这个框架的基础,nodejs可以理解成js解释器,相对于Python语言而言,以前运行js代码必须使用浏览器,现在就可以使用nodejs,nodejs还扩充了js语言,编写了包括文件,网络,进程管理在内的许多模块。angularjs:angularjs是一个js框架,类似于jquery,但是比jquery更加强大,angularjs通过model绑定简化了前端中的

2016-12-08 15:08:53 1837

原创 nodejs创建代理

http-proxy-middlewarehttp-proxy-middleware是一个nodejs模块,使用http-proxy-middleware可以方便地创建http代理,使前端和后端在开发过程中分离开,将后台部分的请求过滤分离转发。下例将本地8888端口代理到远程端口//引入依赖,express是node上的一个web框架var express = require('express')

2016-12-08 12:54:32 419

原创 Node.js笔记

简介nodejs是一个js解析器,类似Python,可以直接运行js文件或者在交互命令中运行js代码,安装好了nodejs之后只要运行node.exe就能进入交互式环境模块require,require类似Python里面的import,用于将一个模块导入到当前模块,但是require的使用形式类似函数,使用如下:main.js//这一行代码引入相同路径下的tt.js作为一个模块,赋值给变量ava

2016-12-07 14:54:33 217

原创 文档分类算法总结

文档分类的概念文档分类就是将一篇文档自动指定到几个预定义的文本类别中。向量空间模型文档分类多使用向量空间模型(VSM,vector space model),向量空间模型将文档中提取出若干特征词,按照特征词出现的的频率,将文本转换成空间中的点,通过比较点之间的距离确定文档的类别。机器学习算法机器学习算法分为两个阶段,第一阶段是学习阶段,第二阶段是分类阶段,学习阶段使用训练集构造分类器进行分类朴素贝叶

2016-03-21 20:36:11 778

空空如也

空空如也

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

TA关注的人

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