基础学习
文章平均质量分 93
周英俊520
这个作者很懒,什么都没留下…
展开
-
类加载机制
什么是类的加载机制?JVM将编译后生成的class字节码文件加载到内存中, 并将这些静态数据转换成方法区中的运行时数据结构,在内存中生成一个代表这个类的java.lang.Class 对象,作为虚拟机来访问相关信息的入口。类加载机制过程:5个阶段1.加载通过类的全限定名来获取定义此类的二进制字节流将这个类字节流代表的静态存储结构转为方法区的运行时数据结构在堆中生成一个代表此...原创 2019-05-14 15:51:23 · 95 阅读 · 0 评论 -
Java锁机制(偏向锁、轻量级锁、重量级锁)
从synchronized举例,在java1.6当中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。·对于普通同步方法,锁是当前实例对象。·对于静态同步方法,锁是当前类的Class对象。·对于同步方法块,锁是Synchonized括号里配置的对象。JVM基于进入和退出Monitor对 象来实现方法同步和代码块同步,但两者的实现细节不一样。代码块同...翻译 2019-05-10 10:12:05 · 1072 阅读 · 0 评论 -
阻塞、非阻塞,同步异步
作者:严肃链接:https://www.zhihu.com/question/19732473/answer/20851256来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronous communi...转载 2019-05-09 16:22:38 · 122 阅读 · 0 评论 -
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 · 405 阅读 · 0 评论 -
Spark内核剖析
我们先将编写的应用程序Application打成jar包,用spark-submit结合shell来提交这个应用程序。如果是StandAlone模式的话会通过反射的方式创建和构造一个Driver进程,driver进程负责运行application应用程序的main函数和创建sparkContext.Spark Context: 另外一种意义上的Spark入口类,SparkContext相当于连...翻译 2019-07-06 14:13:51 · 130 阅读 · 0 评论 -
类图学习
车的类图结构为<<abstract>>,表示车是一个抽象类; 它有两个继承类:小汽车和自行车;它们之间的关系为实现关系,使用带空心箭头的虚线表示; 小汽车为与SUV之间也是继承关系,它们之间的关系为泛化关系,使用带空心箭头的实线表示; 小汽车与发动机之间是组合关系,使用带实心箭头的实线表示; 学生与班级之间是聚合关系,使用带空心箭头的实线表示; 学生与身份证之...转载 2019-07-18 12:46:12 · 341 阅读 · 0 评论 -
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 · 127 阅读 · 0 评论 -
S2算法和GEOHASH算法
https://www.jianshu.com/p/7332dcb978b2学到了 这两个算法主要是对二维数据转换成一维数据,然后可以建立索引。 所谓滴滴附近的人等等功能的实现原理就是这样的...转载 2019-08-17 22:50:47 · 1547 阅读 · 0 评论 -
Redis Hash一致性算法学习
https://blog.51cto.com/zero01/2115528转载 2019-08-26 13:45:32 · 135 阅读 · 0 评论 -
缓存更新问题
https://www.cnblogs.com/rjzheng/p/9041659.html转载 2019-08-31 21:44:56 · 220 阅读 · 0 评论 -
Druid文档学习笔记
做这个工作的原因是因为书籍和论文给的相关架构已经过时,最明显的就是移除了Real-Time Node.(一)What is Druid ? Druid是一个高性能的OLAP时序分析数据库,最常用于GUI分析应用或者是需要快速聚合的高并发API后端.Druid常用领域包含: 1. 网站点击流量分析 2. 网络流量分析 3.服务器指标存储 ...原创 2019-03-15 17:56:03 · 593 阅读 · 0 评论 -
Kafka学习
先贴一个Kafka大牛的博客链接https://blog.csdn.net/u013256816/article/details/89529752Kafka作为一个消息系统主要是用来解决应用解耦问题、异步消息问题、流量削峰问题。同时也提供了流处理等能力。消息队列主要有两种消息模型: 点对点和发布订阅模式。(1)点对点:每条消息只发送给一个消费者。(2)发布订阅:多个消费者订阅主题...翻译 2019-05-16 17:07:31 · 259 阅读 · 0 评论 -
转载:JDK SCALA Intelij 一条龙
https://blog.csdn.net/guiying712/article/details/68947747#3%E5%AE%89%E8%A3%85scala转载 2018-07-11 17:59:58 · 225 阅读 · 0 评论 -
Gitlab Fork项目同步源项目更新!
查看项目远程仓库的配置。对于Fork出来的项目,如项目B,只显示项目B.git,没有它的源项目A的地址信息。git remote -v添加源项目A的地址git remote add upstream SourceProjectAURL确认是否添加成功git remote -v获取项目A的更新git fetch upstream合并项目A的同步。mater可指...转载 2018-07-25 08:37:18 · 4952 阅读 · 0 评论 -
Scala各种诡异符号汇总
1.:::(三个冒号)表示List的连接操作,比如:vala=List(1,2, 3) valb=List(3,4,5) valc=a:::b:: 表示元素与List连接val c = 1 :: b2.-> 变成元祖a->b 返回的是(a,b)3.<- 遍历a<-1 to 34.: _* 传可...原创 2019-05-09 16:18:47 · 561 阅读 · 0 评论 -
HBase 阅读笔记(第一章. 了解了HBase的作用、存储结构,读写特性)
第一章Apache HBase是一个分布式的基于于读性能优化的列式存储,读性能的优化来自于每个列簇对应一个文件。HBase最初思想来源于Google文件系统。以列为单位进行数据聚合, 可以减少IO, 因为列上的数据结构天生相似,逻辑上来说每行之间只有轻微的不同,所以更有利于提高压缩比从而降低返回结果时的带宽消耗,在网站用户量增加一定程度的时候,减少压力的第一步是增加用于并行读取的从服务器...原创 2018-09-04 21:54:37 · 1237 阅读 · 0 评论 -
ANTLR与与编译原理学习笔记
识别和处理编程语言是 Antlr 的首要任务,编程语言的处理是一项繁重复杂的任务,为了简化处理,一般的编译技术都将语言处理工作分为前端和后端两个部分。其中前端包括词法分析、语法分析、语义分析、中间代码生成等若干步骤,后端包括目标代码生成和代码优化等步骤。Antlr 致力于解决编译前端的所有工作(不包括目标代码生成)。使用 Anltr 的语法可以定义目标语言的词法记号和语法规则,Antlr 自动...原创 2018-09-03 21:57:54 · 1209 阅读 · 0 评论 -
Spark Streaming源码阅读(0)楔子
本篇文章主要是引出作者阅读源码的主要原因: 主要原因就是最近前端和后端BUG都写的太多了,老大无路可走,强心干预我进行项目开发,所以就派了个阅读源码的活交给我,想让我学懂了以后进行分享,基于感恩心理,作者打算认真阅读源码. 最后感叹一句, 写BUG真是太好了!!! ...原创 2018-11-19 13:04:58 · 98 阅读 · 1 评论 -
Spark Streaming源码阅读(1)SparkSession和SparkContext
(一)SparkSession:SparkSession是Spark程序以及用来创建DataSet和DataFrame 的入口类, SparkSession实质上是用来合并这一系列的Context(未来可能还会加上StreamingContext),所以在SQLContext和HiveContext上可用的API在SparkSession上同样是可以使用的。通用的getOrCreat...原创 2018-11-21 20:04:49 · 1470 阅读 · 1 评论 -
Spark Streaming源码阅读(2)DAGScheduler
(一)DAGSchedulerdagScheduler会为每个job计算出它的Stage有向无环图(DAG),它会把每个stage作为1个tasksets提交到taskScheduler 然后将他们运行在集群当中,一个taskset包含多个task, (stage划分的阶段是在submitJob中将job提交到EventLoop的时候,在DAGScheduler当中有一个doOnReceive...原创 2019-05-09 16:24:33 · 249 阅读 · 0 评论