Java2B

一名无缘985,日常996工程师 微信搜:Java2b

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

原创 【金三银四-JVM系列】CMS收集器与GC日志分析定位问题详解

开头:今天2B哥要和大家分享一篇硬货,为什么呀?因为有两个好事情:一、哥升级了LV2了 哈哈心情倍爽。二、拿到了公司给的2千股在公司呆了2年了,终于成为了东哥的好兄弟。CMS收集器实战:实战开始,准备好了没构建Spring Boot项目:模拟业务场景代码:@RestControllerpublic class IndexController {/*** * 存bi.........

2020-01-09 14:35:59 6244 8

原创 【金三银四】JVM虚拟机CMS和G1收集器详解

前言:今天2B哥跟各位牛人分享JVM相关的知识点,今天重点介绍CMS和G1收集器,某些小哥哥就问为什么不讲讲其他收集器?按面试经验来说,这两种收集器问的最多,当然优先讲这两种呀,但是,我说但是,如果你关注我还能看到更多关于JVM的知识,保证让你收获满满,废话不多说,直接上干货。 收集器于JVM堆的关系CMS收集...

2020-01-08 13:44:10 2673 4

原创 面试官:说说事务的ACID,什么是脏读、幻读?

一、事务事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。–摘自百科在MySQL里,事务是在引擎层面实现,比如MyIsam不支持,InnoDB支持二、ACID提到事务,肯定会想到 ACID 是吧,自行感受一下概念,然后我们来讲讲隔离性的问题。原子性:事务的所有操作要么全部成功,要么全部回滚。一致性:总是从一个一致性的状态转换到另一个一致性的状态...

2020-01-07 13:28:01 1565 1

原创 【金三银四】深入理解Mysql索引底层数据结构解密

索引优化面试题案例CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DEFAULT '' COMMENT '姓名', `age` int(11) NOT NULL DEFAULT '0' COMMENT '年龄', `position` var...

2020-01-02 13:15:09 580 2

原创 【金三银四】ArrayList图解存储原理与数据结构揭秘

前言:你好,早上、中午、下午、晚上好。我是辛巴哥。一名无缘985,日常996工程师。今天我辛巴哥来教娜娜学ArrayList开始快速import java.util.ArrayList;/**** * 求关注 微信搜:Java大型网站架构 */public class ArrayListDemo { public static void main(String[] a...

2019-12-28 13:42:35 893 1

原创 【金三银四】HashMap图解原理与数据结构二【JDK8红黑树】

约会被拒上次给娜娜教完【金三银四】《HashMap图解原理与数据结构》之后,娜娜自信满满的去面试了。今天我约娜娜出来看电影。娜娜没心情。 娜娜面试又被虐了,辛巴哥哥很难受,因为周末没人陪我去看电影了,我决定要帮帮娜娜小姐姐。回到过去让我们来回忆下上篇我们介绍的hashmap。JDK1.8以前HashMap底层数据结构和算法:​ 数组+链表+哈希算法数组数组:采用一段连...

2019-12-25 21:32:16 2552 6

原创 【金三银四】HashMap图解原理与数据结构一【JDK7】

面试被虐你好,早上、中午、下午、晚上好。我是狮子王辛巴。一名无缘985,日常996工程师。作为一名为人民币服务的工程师,学好技术是多么重要的事情。今天跟各位老铁们详细说说日常的开发中经常用到的HashMap。怎么可能骗你,真的哦,无论我们在开发中还是在面试的时候HashMap比问好不好。上次“娜娜”去熊厂就被面试官问到了,被虐的体无完肤。哼~哼~哼哼哼哼哼~哼~~~~娜娜宝贝别...

2019-12-19 12:22:33 1163 1

原创 互联网数据库分库分表思路和分法详解附带国内开源中间件

一. 数据切分关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定位、整合。数据切分就是将数据分散存储到...

2019-06-18 11:07:02 1514

原创 互联网电商后端架构高并发分布式演变之路

1. 概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2. 基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍:分布式系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库...

2019-06-05 13:40:21 4119 17

原创 Spring源码编译下载

下载源码2B哥在家远程办公,心血来潮,整理点spring源码玩玩。可以在github上下载 ,也可以下载我课堂的源码(有注释)git clone https://github.com/spring-projects/spring-framework.git配置gradle 编译环境Spring源码是通过gradle编译的,所以要先配置gradle编译环境gradle下载安装 下...

2020-02-04 13:23:36 744

原创 一致性Hash算法实现原理详解

Hash环我们把232次方想成一个环,比如钟表上有60个分针点组成一个圆,那么hash环就是由232个点组成的圆。第一个点是0,最后一个点是232-1,我们把这232个点组成的环称之为HASH环。![图片](https://uploader.shimo.im/f/FcmwzbmsdosBR1Q4.png!thumbnail)​一致性Hash算法将memcached物理机节点通过Has...

2020-01-10 16:14:37 3954 2

原创 【金三银四】Redis面试热点之底层实现篇

0.前言最近一周没有技术文章产出,主要是Q4马上结束各种业务都在冲量,笔者一直都在疯狂工作甚至还有些焦虑到偶尔失眠,由于没有成块的时间研究新东西,所以就把之前看过的东西抽时间总结了下。计划分三篇来梳理Redis的相关热点问题,本次为开山底层实现篇,通过本文你将了解到以下内容: Redis的作者、发展演进和江湖地位 ...

2020-01-06 14:02:22 656

原创 2020年Java工程师成神之路

一、基础篇JVMJVM内存结构堆、栈、方法区、直接内存、堆和栈区别Java内存模型内存可见性、重排序、顺序一致性、volatile、锁、final垃圾回收内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定JVM参数及调优Java对象模型oop-klass、对象头HotSpot即时编译器、编译优化类加载机制classLoader、类加载过程、双亲委派(破...

2020-01-05 15:41:50 578 1

原创 Idea调试Rocketmq源码编译运行

Rocketmq源码编译运行下载从github下载源码,比较慢,也可以从gitee下载源码目录结构名称作用brokerbroker模块:c和p端消息存储逻辑client客户端api:produce、consumer端 接受与发送apicommon公共组件:常量、基类、数据结构tools运维tools:命令行工具模块store存储模块:消...

2020-01-05 12:58:37 1287 1

原创 分库分表知识详解与分库分表中间件介绍

为什么需要分库分表:如果一个网站业务快速发展,那这个网站的流量也会增加。数据的压力也会随着而来。比如电商系统来说双十一大促对订单数据库的压力很大。TPS十几万并发量,如果是传统的架构(一主多从),主库容量肯定无法满足这么高的TPS。业务越来越大,单表数据超出了数据库支持的容量。持久化磁盘IO,传统的数据库性能瓶颈,产品经理业务必须这么做改变程序。数据库下刀子切分优化:1、换数据库》o...

2020-01-03 13:14:10 1693 1

原创 【金三银四】深入理解Mysql索引底层数据结构解密

索引优化面试题案例CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DEFAULT '' COMMENT '姓名', `age` int(11) NOT NULL DEFAULT '0' COMMENT '年龄', `position` var...

2020-01-02 13:21:31 323 1

原创 2019年18家大厂Java面试题整理了350道(分布式+微服务+高并发)

前言2019年还有不到2个月的时间就结束了,这一你,你收获了多少?前段时间一直有粉丝问我,有没有今年一些大厂Java面试题总结?最新抽时间整理了一些,分享给大家,大家一起共享学习! 一、性能调优系列1.Tomcat性能调优JVM参数调优: -Xms<size> 表示JVM初始化堆的大小,一Xmx<size>表示JVM堆的最大值。这两个值的大小一般根据...

2019-12-31 21:43:52 369 1

原创 Mybatis源码分析第三章-映射⽂件解析过程

本章,我们来分析一下映射文件解析的过程。与配置文件不同,映射文件用于配置 SQL语句,字段映射关系等。映射文件中包含、、、、<select|insert|update|delete>等二级节点,这些节点将在接下来内容中进行分析。本章除了分析常规的 XML 解析过程外,还会向大家介绍 Mapper 接口的绑定过程,以及其他一些知识。内容较多,需要有一定的耐心阅读。3、映射⽂件解析...

2019-12-29 14:55:17 297 1

原创 Mybatis源码分析第二章-配置⽂件解析过程

从本章开始,正式进入源码分析阶段。按照 MyBatis 启动流程,本章将会对 MyBatis 解析配置文件的过程进行分析。我们在使用 MyBatis 框架时,通常会进行一定的设置,使其能更好的满足我们的需求。对于一个框架来说,提供较为丰富的配置文件,也是其灵活性的体现。本章将会介绍 MyBatis 配置文件中的大部分节点解析过程,包含但不限于 properties、settings、typeAli...

2019-12-29 14:51:18 272

原创 分布式缓存开源框架Flasher介绍

写在前面今天给大家推荐款国内某一线电商平台Redis分布式缓存框架。推荐理由:日均访问量100亿.QPS:157W。包含57项业务。也是工作3-5年以上的程序员必看的源码资料,千万别错过。Flasher特点1、基于Jedis Cluster开发的客户端支持Redis Cluster集群。2、对被调用方(客户端)侵入极少,上手极快。3、支持动态增加节点,客户端自动感知。4、支持客...

2019-06-18 19:40:24 4952

原创 Redis缓存穿透、缓存雪崩、并发问题分析与解决方案

把redis作为缓存使用已经是司空见惯,但是使用redis后也可能会碰到一系列的问题,尤其是数据量很大的时候,经典的几个问题如下:1、缓存和数据库间数据一致性问题分布式环境下(单机就不用说了)非常容易出现缓存和数据库间的数据一致性问题,针对这一点的话,只能说,如果你的项目对缓存的要求是强一致性的,那么请不要使用缓存。我们只能采取合适的策略来降低缓存和数据库间数据不一致的概率,而无法保证两者间的...

2019-06-12 10:52:10 3528 1

原创 自己动手实现一个简单的JSON解析器

1、背景JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。相对于另一种数据交换格式 XML,JSON 有着诸多优点。比如易读性更好,占用空间更少等。在 web 应用开发领域内,得益于 JavaScript 对 JSON 提供的良好支持,JSON 要比 XML 更受开发人员青睐。所以作为开发人员,如果有兴趣的话,还是应该深入了解一下 JSON 相关的知识...

2019-05-14 22:04:43 2995 11

原创 Dubbo 源码分析 - SPI 机制

1.简介SPI 全称为 Service Provider Interface,是 Java 提供的一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。SPI 机制在第三方框架中也有所应用,比如 Dubbo 就是通过 SPI 机制...

2019-05-14 21:51:13 934 8

空空如也

空空如也

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

TA关注的人

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