关注分布式系统及高可用架构,探讨职业规划,实践持续学习,公众号「越哥聊IT」
能力说明:
熟悉微服务常用开放框架,理解Spring、Spring Boot,以及Spring Cloud的概念和不同,对Spring Cloud Alibaba有较为全面的认知。对Istio具备基础运维能力,掌握基本组件的知识。
阿里云技能认证
详细说明依赖于引用判断的内存管理机制 Java中对内存对象的访问,使用的是引用的方式。 在Java代码中我们维护一个内存对象的引用变量,通过这个引用变量的值,我们可以访问到对应的内存地址中的内存对象空间。
ORM的全称是Object Relational Mapping,即对象关系映射。它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 使用索引的目的在于提高查询效率,这篇文章梳理一下索引的实现原理和应用。
树旋转(Tree rotation)是二叉树中的一种子树调整操作,每一次旋转并不影响对该二叉树进行中序遍历的结果。 树旋转通常应用于需要调整树的局部平衡性的场合。
>>40亿数据排序问题 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数(在文件中至少缺失这样一个数——为什么?)。在具有足够内存的情况下,如何解决该问题?(编程珠玑) >>应用BitMap存储大数据 数据的存在性可以使用bit位上的1或0来表示;一个bit具有2个值:0和1,正好可以用来表示false和true。
类似物理上的计算机系统,Java虚拟机规范中也定义了一种Java内存模型,即Java Memory Model(JMM), 来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。
JVM的类加载机制是指虚拟机 把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型的实现过程。 类加载过程具体可以分成下面几个步骤: (1)装载:查找和导入Class文件; (2)链接:把类的二进制数据合并到JRE中; 校验:检查载入Class文件数据的正确性; 准备:给类的静态变量分配存储空间,赋默认值; 解析:将符号引用转成直接引用; (3)初始化:对类的静态变量,静态代码块执行初始化操作。
归并操作(merge),也叫归并算法,指的是将两个已经排序的序列合并成一个序列的操作。 归并排序算法依赖归并操作。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 归并排序在众多排序算法中既是稳定排序,效率也比较高,同时,归并排序不仅可以用于内排序,还可以用于外排序。
模块拆分是Maven经常使用的功能,简单梳理一下如何使用Maven进行多模块拆分, 只做归纳总结,网上资料很多,不再一步一步实际创建和部署。 一个简单的Java Web项目,Maven模块结构是这样的: 上述示意图中,有一个父项目(parent)聚合很多子项目(mytest-controller,mytest-util, mytest-dao, mytest-service, mytest-web)。
部署和启动ActiveMQ 去官网下载:http://activemq.apache.org/ 我下载的是apache-activemq-5.12.0-bin.tar.gz, 解压到本地目录,进入到bin路径下, 运行activemq启动ActiveMQ。
消息中间件 消息中间件即Message-oriented middleware(MOM),消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。 通过提供消息传递和消息排队模型,消息中间件可以在分布式环境下扩展进程间的通信。
transient的作用及使用方法 一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。
消息是指在两个独立的系统间传递的数据,这两个系统可以是两台计算机,也可以是两个进程。 消息可以非常简单,可以是简单的字符串,也可以是保存了数据持久化的各种类型的文档集合。 队列是在消息的传输过程中的通道,是保存消息的容器,根据不同的情形,可以有先进先出,优先级队列等区别 。
BitMover公司收回Linux社区的BitKeeper免费使用权,Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git。
Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。与二叉查找树不同,Trie树的键不是直接保存在节点中,而是由节点在树中的位置决定。
搜索引擎通常检索的场景是:给定几个关键词,找出包含关键词的文档。 怎么快速找到包含某个关键词的文档就成为搜索的关键。这里我们借助单词——文档矩阵模型, 通过这个模型我们可以很方便知道某篇文档包含哪些关键词,某个关键词被哪些文档所包含。
Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。
生产者消费者问题也称作有界缓冲区(bounded-buffer)问题, 是操作系统中一个经典的线程同步问题,问题描述如下: 生产者在生产产品提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个具有多个缓冲区,生产者将它生产的产品放入缓冲区中,消费者可以从缓冲区中取走产品进行消费,两个进程共享一个公共的固定大小的缓冲区。