自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

昨日的桥

多目标优化没有最优解,只有Pareto最优解集

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

原创 Java虚拟机早期(编译期)优化

从计算机程序出现的第一天起,对效率的追求就是程序天生的坚定信仰,这个过程犹如一场没有终点、永不停歇的F1方程式竞赛,程序员是车手,技术平台则是在赛道上飞驰的赛车。01、3种编译器Java语言有3类编译过程,分别对应着3种编译器:1、前端编译器:把*.java文件转成*.class文件(字节码文件),比如Javac。2、JIT编译器:把字节码转成机器码。3、AOT编译器:把*.java文件...

2020-01-31 23:28:21 117

原创 虚拟机类加载机制

代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。01、虚拟机类加载机制是什么?虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,...

2020-01-30 15:54:53 93

原创 垃圾收集器与内存分配策略

你知道么?GC的历史比Java还要久远。1960年诞生于麻省理工的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。目前内存的动态分配与内存回收技术已经相当成熟。但是,当需要排查各种内存溢出、内存泄露问题时,当垃圾收集成为系统达到高并发量的瓶颈时,我们需要对这些内存动态分配和垃圾收集技术进行必要的监控和调节。以下对Java垃圾收集器与内存分配策略进行了归纳总结。01、哪些内存需要回收...

2020-01-17 17:09:35 120

原创 MySQL中的分区表

对用户来说,分区表是一个独立的逻辑表,但是底层是由多个物理子表组成。实现分区的代码实际上是对一组底层表的句柄对象的封装。对分区表的请求,都会通过句柄对象转化成存储引擎的接口调用。分区表在很多场景中可以起到非常大的作用,但是其本身也存在一些限制。以下对MySQL中的分区表作一个简单的归纳。01 分区表的原理1、MySQL在创建时使用PARTITION BY子句定义每个分区存放的数据。2、分区的...

2020-01-15 22:31:32 320

原创 MySQL查询性能优化

优化查询、索引优化、库表结构设计三者其实需要齐头并进,一个不能落下。在获得编写MySQL查询经验的同时,也应该学习如何设计为高效的查询设计表和索引。同样的,也可以学习到在优化库表结构时会影响到哪些类型的查询。01、为什么查询速度会慢?1、首先需要清楚一点,对于查询而言,真正重要的是响应时间。如果把查询看作是一个任务,那么它由一些列子任务组成,每个子任务都会消耗一定的时间。如果要优化查询,实际上...

2020-01-15 15:22:06 134

原创 HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程

三个过程:对象创建、内存布局、访问定位。1、对象的创建(1)虚拟机遇到一条new指令时,首先将取检查这个指令的参数是否能在常量池中定位到一个类的引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。(2)在类加载检查通过后,虚拟机将为新生对象分配内存。假设Java堆中内存时绝对规整的,所有用过的内存都放在一边,空闲的内存放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存...

2020-01-14 15:47:42 153

原创 MySQL中的索引

索引是一个比较复杂的模块,需要花一定的时间去学习。但是,索引又是MySQL进行查询优化的一个很重要的手段,如果用得好,可以成为数据访问的有力而且灵活的工具,所以还是有必要好好学习和思考这一块内容。下面,对MySQL中索引的内容做了一下归纳总结,有点零散。01、索引基础1、索引是存储引擎用于快速找到记录的一种数据结构。2、索引是对查询性能优化最有效的手段。3、B-树索引能够加快访问数据的速度...

2020-01-13 18:18:10 125

原创 MySQL之Schema与数据类型优化

抽空整理了一下MySQL中的Schema与数据类型优化相关的知识点,有点零碎。MySQL的数据类型相对来说比Oracle的数据类型要多,所以,MySQL使用起来也会相对更加灵活一些。在数据存储管理方面,MySQL的使用者可以根据自己的需求更容易找到可以满足业务场景同时又最节省磁盘空间的数据类型。另外MySQL还有一点优势在于,MySQL支持主键自增,而Oracle并不支持,在Oracle实现主键自...

2020-01-10 09:50:49 139

原创 大数据分析与挖掘之关联规则挖掘

关联规则挖掘是大数据分析与挖掘的基础,通过在大量数据中挖掘数据项之间的强关联关系,可以得到很多有趣而且有价值的信息。01、基本概念1、关联规则的挖掘是在大量数据的基础上,通过分析哪些数据项频繁地一起出现,可以得到很多频繁一起出现的数据项集合。2、根据频繁项集的元素个数X,将频繁项集称为频繁k-项集。3、项集X的支持度计数σ(X)=∣ti∣X⊆ti,ti∈T∣\sigma(X) = | t...

2020-01-09 21:05:33 2206

原创 MySQL架构及基础知识归纳

数据库的知识都比较零散,内容也比较多,筛选了一些比较重要且常见的知识点,做了归纳整理,方便后续回顾和学习。01、MySQL服务器逻辑架构图图1 MySQL服务器逻辑架构图第一层:连接/线程处理。大多数基于网络的客户端/服务器的工具或者服务都有类似的架构。比如连接处理、授权认证、安全等。第二层:查询缓存、解析器、优化器。MySQL的核心功能,包括查询解析、分析、优化、缓存以及所有的内...

2020-01-07 23:21:41 227

原创 LinkedHashMap是什么?

大家都知道,HashMap是一个无序的集合,所有存入HashMap的元素都会根据它的key值对应的hashCode来映射到一个Entity数组上,而不是根据存入的顺序进行排列的。对于一些需要使用排序的情况,HashMap是无能为力的,为了可以应对这种需要HashMap并且需要排序的情况,JDK 便推出了LinkedHashMap。LinkedHashMap继承了HashMap,通过使用一个双向...

2020-01-06 23:44:07 365

原创 流式处理的设计模式

每一个流式处理系统都不一样,从基本的消费者、处理逻辑和生产者的组合,到使用了Spark Streaming和机器学习软件包的复杂集群,以及其他很多处于中间位置的组件。这里,对一些常见的流式处理的设计模式进行了罗列,具体如下:1、单个事件处理处理单个事件是流式处理最基本的模式。这个模式也叫map或filter模式,因为它经常被用于过滤无用的事件或者用于转换事件(map这个术语是从Map-Redu...

2020-01-06 19:20:26 1243

原创 Kafka中的流式处理及相关概念汇总

Kafka中的流式处理是Kafka的一个中功能,通过流式处理,Kafka可以对实时数据进行实时处理,虽然,数据处理的响应时间并没有“请求-响应”模式的迅速,但是相对于一般的批处理模式还是要快很多的。对于一般的客户服务、物联网系统的状态预测、异常检测等还是非常高效的、实用的方法。所以,还是有必要好好掌握这方面的知识。下面对Kafka中流式处理及相关的概念进行了汇总。01、什么是流式处理数据流(也...

2020-01-06 19:16:51 1279 1

原创 Kafka中消费者的主要内容归纳

Kafka是一款基于发布与订阅的消息系统。其中消息的订阅以及最终的消费是由Kafka中的消费者来完成。关于Kafka中的消费者,其包含的内容比较多,现在归纳如下:01、消费者和消费者群组Kafka消费者从属于消费者群组。一个群组里的消费者订阅的是同一个主题,每个消费者接受主题一部分分区的消息。往群组里增加消费者是横向伸缩消费能力的主要方式。但是要注意,不要让消费者的数量超过主题分区的数量,多...

2020-01-05 21:01:13 242

原创 Kafka中的生产者详解

Kafka中的生产者主要是用来向Kafka中写入消息。其包含的主要内容有如下个方面:01、应用程序往Kafka中写入消息的场景记录用户的活动(用于审计好分析)、记录度量指标、保存日志消息、记录智能家电的信息、与其他应用程序进行异步通信、缓冲即将写入到数据库的数据,等等。02、Kafka发送消息的过程1、创建ProducerRecord对象2、使用send()发送ProducerRecor...

2020-01-04 23:21:35 675

原创 Kafka安装时的参数配置

一、常规配置1、broker.id:broker标识符,默认是0。2、port:端口,如果使用配置样本来启动Kafka,会默认监听9092端口。3、zookeeper.connect:用于保存broker元数据的ZooKeeper地址。该配置参数是用逗号分隔的一组hostname:port/path列表,每一部分含义如下:(1)hostname是ZooKeeper服务器的机器名或IP地址;...

2020-01-04 10:39:22 110

原创 Kafka中的常见概念归纳

Kakfa中有很多概念,以下对其中常见的概念进行整理,方便学习和后续回顾。01、消息和批次Kafka的数据单元被称为消息,可以把消息看成是数据库里的一个“数据行”或一条“记录”。消息被分批次写入Kafka,批次就是一组消息,这些消息属于同一个主题和分区。02、模式根据应用程序的需求,消息模式有许多可用的选项。Kafka的许多开发者喜欢使用Apache Avro,Avro提供了一种紧凑的序列...

2020-01-03 20:59:15 188

原创 从Java后端开发转大数据方向的个人之见

个人觉得,Java开发对于初入互联网的人来说是一个不错的选择,前不久一个不知名的招聘平台(Boss直聘)发布了一个自己统计的2019年的就业岗位的需求情况。技术类岗位中Java开发稳居第一,达到20%左右,远远高于第二名的Web前端开发。所以,至少到目前来说,Java的需求决定着选择Java开发是一个不错的职业方向。但是,一直做Java开发好不好呢?当然这个仁者见仁,智者见智。鄙人之见,Jav...

2020-01-03 00:04:45 3799 1

原创 Java虚拟机管理的内存包括哪些运行时数据区?

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。主要包括以下几个运行时数据区域。1、程序计数器(Program Counter Register)程序计数器是一块很小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程...

2020-01-02 14:59:27 530

原创 在IDEA上commit代码之后,GitHub上并没有更新

一、问题与原因在IDEA上将修改后的代码进行了commit,但是在GitHub上却并没有看到更新。原因是commit只是将代码提交到了本地仓库Local Repository,并没有上传到GitHub上的远程仓库Remote Repository。二、解决commit之后,再进行git——push即可。...

2020-01-01 21:29:59 3855 1

原创 ZooKeeper中的数据同步

数据同步的过程就是Leader服务器将那些没有在Learner服务器上提交过的事物请求同步给Learner服务器。ZooKeeper集群数据同步通常分为四类,分别是直接差异化同步(DIFF同步)、先回滚再差异化同步(TRUNC + DIFF同步)、仅回滚同步(TRUNC同步)和全量同步(SNAP同步)。peerLastZxid:该Learner服务器最后处理的ZXID。minComm...

2020-01-01 20:23:46 1130

原创 ZooKeeper中的Leader选举

一、Leader选举流程1、每个Server会发出一个投票投票的形式为(SID, ZXID)。其中,SID为所推举的服务器的id,ZXID为所推举的事务ID。2、接收来自各个服务器的投票3、处理投票优先检查ZXID。ZXID比较大的服务器优先作为Leader。如果ZXID相同的话,那么就比较SID,SID比较大的服务器作为Leader。4、统计投票每次投票后,服务器都会统计所有投票...

2020-01-01 20:19:35 99

原创 ZooKeeper中的数据类型、节点类型和Watcher

一、数据模型ZNode是ZooKeeper中数据的最小单元,每个ZNode上都可以保存数据,同时可以过载子节点,因此构成了一个层次化的命名空间,也就是树。广义上来讲,事务是对物理和抽象的应用状态上的操作集合。(《事务处理:概念与技术》),从狭义上讲,事务就是指数据库事务,具有ACID特性,即原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)和持久性(Dura...

2020-01-01 20:13:05 750

原创 ZooKeeper在Dubbo中的应用

Dubbo是阿里巴巴开源的一个由Java语言编写的分布式服务框架,核心部分包括以下三块:远程通信、集群容错、自动发现。其中Dubbo中的服务注册中心是基于ZooKeeper实现的,工作流程如下:1、服务提供者服务提供者在初始化启动的时候,会首先在ZooKeeper的/dubbo/com.foo.BarService/providers节点下创建一个子节点,并写入自己的URL地址。2、服务消费...

2020-01-01 19:39:51 142

空空如也

空空如也

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

TA关注的人

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