自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试官:如何决定使用 HashMap 还是 TreeMap?

问:如何决定使用 HashMap 还是 TreeMap?介绍TreeMap<K,V>的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap默认是按照Key值升序排序的;TreeMap的实现是基于红黑树结构。适用于按自然顺序或自定义顺序遍历键(key)。HashMap<K,V>的Key值实现散列hashCode(),分布是散列的、均匀的,不支持排序;数据结构主要是桶(数组),链表或红黑树。适用于在Map中插入、删除和定位元素。结论

2020-07-14 14:23:46 220

原创 纯CSS实现自定义单选框和复选框

目录1 实现效果2 知识点讲解2.1 标签2.2 CSS3 box-shadow 属性2.3 CSS3 transition 属性2.4 CSS3 :checked 选择器2.5 CSS element+element 选择器3 代码实现1 实现效果2 知识点讲解2.1 <label>标签在html中,<label>标签通常和<input>标签一起使用,<label>标签为input元素定义标注(标..

2020-07-14 08:55:32 558

原创 讲烂了的mysql,今天再给大家重温一下

mysql事务:MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!• 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。• 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。• 事务用来管理 insert,update,delete 语句一般来说,事务是必须满足4个条件(A

2020-07-13 14:38:50 262

原创 设计模式(1)—什么是设计模式?设计模式的六大原则是什么?

只有登上山顶,才能看到那边的风光目录1.什么设计模式2.设计模式的发展3.设计原则6大原则3.1 开闭原则3.2 里氏转换原则3.3 依赖倒转原则3.4 接口隔离原则3.5 合成/聚合复用原则3.6 迪米特原则1.什么设计模式软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。设计模...

2020-07-13 09:00:41 276

原创 不会有人还不知道全文检索工具Lucene怎么用吧?文字长文教程

1.什么是LuceneApache Lucene 是完全用Java编写的高性能,功能齐全的,全文检索引擎工具包,通过lucene可以让程序员快速开发一个全文检索功能。1.1什么是全文检索在我们的生活中数据总体分为两种:结构化数据和非结构化数据。结构化数据:具有固定格式或有限长度的数据,如数据库,元数据等。非结构化数据:不定长或无固定格式的数据,如邮件,word文档等。非结构化数据又叫全文数据。当然有的地方还会提到第三种,半结构化数据,如XML,HTML等,半结构...

2020-07-11 20:16:39 389

原创 Git 如何优雅地回退代码

前言从接触编程就开始使用 Git 进行代码管理,先是自己玩 Github,又在工作中使用 Gitlab,虽然使用时间挺长,可是也只进行一些常用操作,如推拉代码、提交、合并等,更复杂的操作没有使用过,看过的教程也逐渐淡忘了,有些对不起 Linus 大神。出来混总是要还的,前些天就遇到了 Git 里一种十分糟心的场景,并为之前没有深入理解 Git 命令付出了一下午时间的代价。先介绍一下这种场景,我们一个项目从 N 版本升到 A 版本时引入了另一项目的 jar 包,又陆续发布了 B、C...

2020-07-11 14:34:12 156

原创 终于有人把Elasticsearch架构原理讲明白了,感觉之前看的都是渣

架构原理本文作为 Elastic Stack 指南,关注于 Elasticsearch 在日志和数据分析场景的应用,并不打算对底层的 Lucene 原理或者 Java 编程做详细的介绍,但是 Elasticsearch 层面上的一些架构设计,对我们做性能调优,故障处理,具有非常重要的影响。所以,作为 ES 部分的起始章节,先从数据流向和分布的层面,介绍一下 ES 的工作原理,以及相关的可控项。各位读者可以跳过这节先行阅读后面的运维操作部分,但作为性能调优的基础知识,依然建议大家抽时间返回来了解。

2020-07-11 09:05:27 426

原创 GitHub上40K+star的宝藏级SpringBoot核心文档,看完献出膝盖

SpringBoot 以其轻量级、内嵌 Web 容器、一键启动、方便调试等特点被越来越多的微服务实践者所采用。然而知其然还要知其所以然,本 Chat 就来讲解 SpringBoot 核心模块的实现原理,在面试的时候也是会被经常问到的,核心内容主要包括:spring-boot-load 模块,正常情况下一个类加载器只能找到加载路径的 jar 包里面当前目录或者文件类里面的 *.class 文件,SpringBoot 允许我们使用 java -jar archive.jar 运行包含嵌套依赖 jar 的 j

2020-07-10 13:56:29 165

原创 数据持久化框架为什么放弃JPA、Mybatis,最终选择JDBCTemplate!

因为项目需要选择数据持久化框架,看了一下主要几个流行的和不流行的框架,对于复杂业务系统,最终的结论是,JOOQ是总体上最好的,可惜不是完全免费,最终选择JDBC Template。【文末放送面试题,纯福利】Hibernate和Mybatis是使用最多的两个主流框架,而JOOQ、Ebean等小众框架则知道的人不多,但也有很多独特的优点;而JPA则是一组Java持久层Api的规范,Spring Data JPA是JPA Repository的实现,本来和Hibernate、Mybatis、.

2020-07-08 13:51:59 604

原创 杀鸡焉用宰牛刀?就是几个if else场景我需要用到策略模式?!

我想大家肯定都或多或少的看过各种“策略模式”的讲解、布道等等,这篇文章就是来好好“澄清”一下策略模式,并尝试回答以下的问题:策略模式是如何优化业务逻辑代码结构的? 杀鸡焉用宰牛刀?就是几个if else场景我需要用到策略模式?! 有没有什么更好的代码结构来实现策略模式的吗?策略模式是如何优化业务逻辑代码结构的?要回答这个问题,我们还得先扒一扒策略模式的定义,从定义着手来理解它策略模式的教科书定义它的定义很精简:一个类的行为或其算法可以在运行时更改。我们把它降维到代码层面,用人话翻.

2020-07-08 09:06:45 187

原创 不了解JVM原理,还想要年薪50万?老实看完这篇文章

概念虚拟机:指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 ,是物理机的软件实现。常用的虚拟机有VMWare,Visual Box,Java Virtual Machine(Java虚拟机,简称JVM)。Java虚拟机阵营:Sun HotSpot VM、BEA JRockit VM、IBM J9 VM、Azul VM、Apache Harmony、Google Dalvik VM、Microsoft JVM…启动流程基本架构Ja...

2020-07-07 14:20:41 109 1

原创 使用Hystrix实现Spring Cloud的熔断机制

1. 熔断机制介绍在介绍熔断机制之前,我们需要了解微服务的雪崩效应。在微服务架构中,微服务是完成一个单一的业务功能,这样做的好处是可以做到解耦,每个微服务可以独立演进。但是,一个应用可能会有多个微服务组成,微服务之间的数据交互通过远程过程调用完成。这就带来一个问题,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“...

2020-07-07 09:09:16 185

原创 面试官80%会问的分布式事务中的“最大努力通知”事务

一、概述咱们今天聊聊分布式事务系列中的最后一个方案:最大努力通知事务。最大努力通知事务的主流实现仍是基于MQ来进行事务控制。最大努力通知事务和事务消息都是通知型事务,主要适用于那些需要异步更新数据,并且对数据的实时性要求较低的场景。最大努力通知事务主要用于外部系统,因为外部的网络环境更加复杂和不可信,所以只能尽最大努力去通知实现数据最终一致性,比如充值平台与运营商、支付对接、商户通知等等跨平台、跨企业的系统间业务交互场景;而事务消息主要适用于内部系统的数据最终一致性保障,因为内部相对比较可控,比

2020-07-06 14:40:55 1172

原创 面试官:为什么需要happens-before规则和什么是指令重排序

本篇文章从happens-before定义、用途以及具体规则三个方面对happens-before进行解读,并通过源码案例深入了解为什么需要happens-before规则和什么是指令重排序。什么是happens-beforehappens-before:A happens-before B就是A先行发生于B(这种说法不是很准确),定义为hb(A, B)。在Java内存模型中,happens-before的意思是前一个操作的结果可以被后续操作获取。为什么需要happens-before..

2020-07-06 09:08:32 245

原创 ConcurrentHashMap里面也有死循环

这篇文章,聊一下我最近才知道的一个关于 JDK 8 的 BUG 吧。首先说一下我是怎么发现这个 BUG 的呢?大家都知道我对 Dubbo 有一定的关注,前段时间 Dubbo 2.7.7 发布后我看了它的更新点,就是下面这个网址:https://github.com/apache/dubbo/releases/tag/dubbo-2.7.7其中有 Bugfixex 这一部分:每一个我都去简单的看了一下,其他的 Bugfixes 或多或少都和 Dubbo 框架有一定的关联..

2020-07-04 20:19:55 1230

原创 不必东奔西走,Java 集合框架看这一篇就够了

Java 集合,也称作容器,主要是由两大接口 (Interface) 派生出来的:Collection 和 Map顾名思义,容器就是用来存放数据的。那么这两大接口的不同之处在于:Collection 存放单一元素; Map 存放 key-value 键值对。就是单身狗放 Collection 里面,couple 就放 Map 里。(所以你属于哪里?学习这些集合框架,我认为有 4 个目标:明确每个接口和类的对应关系; 对每个接口和类,熟悉常用的 API; 对不同的场...

2020-07-04 17:48:10 213

原创 阿里巴巴美团等大厂面试大火的微服务架构还不懂?速来看

务架构和Spring Cloud。第3、4章讲解了用Spring Cloud构建微服务的准备工作。第5~12 章以案例为切入点,讲解了Spring Cloud构建微服务的基础组件,包括Eureka、Ribbon、Feign、 Hystrix、 Zuul、Config、Sleuth、 Admint 等组件。第13~ 15章讲述了使用Spring Cloud OAuth2来保护微服务系统的相关知识。第16章用个综合案例, 全面讲解了如何使用Spring Cloud 构建微服务,可

2020-07-04 15:01:51 176

原创 资深架构师分享的秘密武器,Spring Boot面试题(2020最新版)

概述什么是 Spring Boot?Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。Spring Boot 有哪些优点?Spring Boot 主要有如下优点:容易上手,提升开发效率,为 Spring 开发提供一个更快、更广泛的入门体验。 开箱即用,远离繁琐的配置。 提供了一系列大型项目通用的非业务性功能,例如:内嵌服务器、安全管理、运行数

2020-07-04 09:19:41 262

原创 Spring实战—使用注解保护方法,附上spring全家桶!

尽管Spring Security为我们提供了Web层的安全保护,我们依旧有可能会疏忽而导致用户通过正常访问路径访问到不应该访问的方法,所以除了在web层实施保护以外,我们还需要给底层的方法施加保护层。这样就能保证如果用户不具备权限的话,就无法执行相应的逻辑文末分享的一线架构师的Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC,如果你想要一起学习那就添加小助手VX:xuanwo008免费领取不要错过哦Spring Security 提供.

2020-07-04 09:02:01 250

转载 《大厂面试》面试官看了直呼想要的简历

前言昂每周我的邮箱都会收到各式各样的简历,但是说实话通过率真的太低了,hr都要吐槽我了,大家还是要好好写简历呀,能力再强简历差了,也不行啊。HR经常一天过几百份,甚至上千份简历,可能看10-30秒就会觉得留下来继续看一下,是邀约面试,还是PASS掉,但是很多简历甚至那10秒都撑不到。都说“人靠衣装佛靠金装”,同理我们出去找工作,简历也是我们的门面了,你想找到好工作,就得先过简历这一关了。那被PASS的原因就很多了,要么是不符合招聘要求,比如学历不符、个人硬实力不符、年限、薪资不匹配、简历

2020-07-03 14:08:01 571 1

原创 面试官:源码你完全搞懂了吗?用这20个问题检验你

【高能预警】:两万字长文,建议先收藏再看,深度源码分析,二十个问题带你一网打尽集合面试。由于文章篇幅过长,本文将持续更新中 添加小助手VX:xuanwo008即可领取全部面试题问题一:看到这个图,你会想到什么?(PS:截图自《编程思想》)答:这个图由Map指向Collection的Produces并不是说Map是Collection的一个子类(子接口),这里的意思是指Map的KeySet获取到的一个视图是Collection的子接口。我们可以看到集合有两个基本接口:Map和..

2020-07-02 15:10:30 233

原创 面试官:遇到过什么系统故障?怎么解决?看完后能轻松应对

很多人在面试时,会被问到这样的问题:遇到过什么系统故障?怎么解决的?下面是笔者根据自己15年互联网研发经历总结的多个线上故障真实案例。相信可以帮你从容应对面试官的提问!本文图不多,但内容很干!理解为主,面试为辅,学以致用!添加小助手VX:xuanwo008即可获取2020年互联网大厂真实面试题故障一:JVM频繁FULL GC快速排查在分享此案例前,先聊聊哪些场景会导致频繁Full GC:内存泄漏(代码有问题,对象引用没及时释放,导致对象不能及时回收) 死循环 大对象尤其是大对象,8.

2020-07-02 09:24:54 1449

原创 码住!架构师精心整理的Spring Boot从入门到实践文档

猿灯塔第一部分:基础应用开发(1~5章)针对性的介绍了Springboot入门、数据库的使用和访问性能提升、界面设计安全设计等重要技术知识,以实用性为组,旨在帮助读者快速掌握Springboot开发和精髓,尽快融入生产实践中。有需要SpringBoot核心笔记完整文档可添加小助手VX:xuanwo008 领取资料备注好“CSDN”信息获取!第一章 Springboot入门第二章 在Springboot中使用数据库第三章 Springboot界面设计第...

2020-07-01 20:08:19 154

原创 面试题:从 URL 在浏览器被输入到页面展现的过程中发生了什么?

曾经有这么一道面试题:从 URL 在浏览器被被输入到页面展现的过程中发生了什么?相信大多数准备过的同学都能回答出来,但是如果继续问:收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢?要搞懂这个问题,我们需要先解决下面五个问题:现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开? 一个 TCP 连接可以对应几个 HTTP 请求? 一个 TCP 连接中 HTTP 请求发.

2020-07-01 14:27:09 146

原创 真的懂源码吗?Spring看明白了吗?这20道源码面试题答得出吗?

面试官(非常严肃):你真的懂源码吗?Spring看明白了吗?这20道源码面试题答得出吗?你真的懂源码吗?Spring看明白了吗?这20道源码面试题答得出吗?话说,看戏的盆友们,能抵挡的住面试官的连环炮疯狂轰炸吗????挡不住,那就来看前方高能预警,深度源码分析之Spring,还有20道源码面试题带你一网兜住问题一:看到这个图,你会想到什么?问题二:列出常见的集合,并进行简单的介绍问题三:关于Iterator,聊聊你的看法问题四:对于Collection,你了解多少?.

2020-07-01 09:09:29 588

原创 没想到使用MyBatis Generator自动创建代码,真的香

1、基本概念MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java

2020-06-30 20:07:28 103

原创 简单快速了解一下Maven之阿里云镜像仓库配置

方式一:全局配置可以添加阿里云的镜像到maven的setting.xml配置中,这样就不需要每次在pom中,添加镜像仓库的配置,在mirrors节点下面添加子节点:<id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/gro...

2020-06-30 15:38:09 513

原创 快来 GET java代码日志的正确打印姿势!

使用slf4j1.使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一2.实现方式统一使用: Logback框架打日志的正确方式什么时候应该打日志当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统,是可以通过日志进行问题定为的。 当你碰到if…else 或者 switch这样的分支时,要在分支的首行打印日志,用来确定进入了哪个分支 经常以功能为核心进行开发,你应该在提交代码前,可以确定通过日志可以看到整个流程基本格式必须使用参数化信息的方式

2020-06-30 09:02:27 231 1

原创 一条java入门到进阶成神之路

计算机领域技术更迭非常之快,内容博大精深。涉及到分布式架构,更是分支众多,知识庞杂。很多新人在最初往往找不到头绪,不知道从何处下手来一步步提升自己的技术水准。本文将介绍要成为1个技术大牛的18般兵器谱,以及这条打怪升级之路,希望可以让新人少走弯路,在这条路上一步步提升自己。阶段1: 计算机功底(开源框架大纲和微服务架构大纲)(1)常用数据结构,算法的时间/空间复杂度的计算(随便找本大学教科书都有的内容)(2)Linux操作系统(从各种命令操作,到原理的理解:比如各种IO,磁盘文件组织、进.

2020-06-29 21:05:37 157

原创 Web中的Spring

前言:前面我们学习了关于Spring核心的IOC和AOP知识,除此之外,以此为基础,Spring的MVC框架还经常被用于Web开发(SpringMVC)一、什么是SpringMVC框架?在了解SpringMVC之前,我们先回顾一下Spring基础架构:Spring MVC 是Spring的一部分,基于模型 - 视图 - 控制器( Model-View-Controller , MVC )模式实现,它能够帮你构建像 Spring 框架那样灵活和松耦合的 Web 应用程序。在实际开发中,接收.

2020-06-27 17:23:52 368

原创 看好了,这才是递归的正确打开方式

递归,是一个非常重要的概念,也是面试中非常喜欢考的。因为它不但能考察一个程序员的算法功底,还能很好的考察对时间空间复杂度的理解和分析。本文只讲一题,也是几乎所有算法书讲递归的第一题,但力争讲出花来,在这里分享四点不一样的角度,让你有不同的收获。时空复杂度的详细分析 识别并简化递归过程中的重复运算 披上羊皮的狼 适当炫技助我拿到第一份工作算法思路大家都知道,一个方法自己调用自己就是递归,没错,但这只是理解递归的最表层的理解。那么递归的实质是什么?答:递归的实质是能够把一个大问题.

2020-06-27 16:14:33 205

原创 高性能架构面试题总结

分布式架构(一)大型互联网架构演进过程,架构师应具备的分布式知识,主流分布式架构设计详解分布式系统分布式系统是一个由硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。其拥有如下特点(1)分布性(2)对等性(3)并发性(4) 缺乏全局时钟(5)故障总是会发生分布式协调和分流(二)Zookeeper分布式环境指挥官,Nginx高并发分流进阶实战应用场景Zookeeper的功能很强大,应用场景很多,结合我实际工作中使用Dubbo框

2020-06-27 10:11:45 278

原创 Git合并到dev分支的命令是什么?及常用的git命令

1.选择dev分支。 pull dev分支。 merge into 自己开发的分支。 在merge dev 。 dev pull dev push。 再切换到自己的分支上进行开发。常用的git命令:1.mkdir[文件名] //创建文件。2 cd[文件名] //到文件路径下3pwd //查看文件路径4. git init //创建本地仓库5 git add 文件名 //提交文件 git add . //提交修改的全部6 git commit -m"描述内容.

2020-06-26 21:24:31 769

原创 简历好也很难拿到offer?看这篇教你准备面试

我经历过大大小小的面试也去过一些大公司,还经历过一些大的找工作浪潮,也看到过很多身边的同事找工作的经历,也有招聘的经历。有的实现了自我超越,而有的只能小步慢跑,而有的还可能很长一段时间找不到好的工作。作者经历了不少弯路,希望大家能避免。工作来源我们站在公司的招聘的角度我们来看,招聘员工的话有几种常用的来源渠道,我要心中有数。公司内部员工推荐;哪个开发 leader 过来了,带来了几个人;通过圈子内的朋友推荐过来;各大招聘渠道上找 (Boss, 拉钩) 等;猎头。.

2020-06-24 21:21:08 354

原创 BigDecimal一定不会丢失精度吗?

我们基本已经形成了常识,需要用到金钱的地方要用 BigDecimal 而不是其他,而我们也都知道浮点型变量在进行计算的时候会出现丢失精度的问题。那么,你知道其实 BigDecimal 也会丢失精度吗?而使用 BigDecimal 的背后又有什么值得去探究的地方吗?今天,告诉你,知其然,也知其所以然。如下一段代码:System.out.println(0.05+0.01);System.out.println(1.0-0.42);System.out.println(4.01...

2020-06-16 17:40:14 246 1

原创 Spring Security 要怎么处理 session 共享?

今天我们就来看看集群化部署,Spring Security 要如何处理 session 并发。1.集群会话方案在传统的单服务架构中,一般来说,只有一个服务器,那么不存在 Session 共享问题,但是在分布式/集群项目中,Session 共享则是一个必须面对的问题,先看一个简单的架构图:在这样的架构中,会出现一些单服务中不存在的问题,例如客户端发起一个请求,这个请求到达 Nginx 上之后,被 Nginx 转发到 Tomcat A 上,然后在 Tomcat A 上往 session 中保.

2020-06-16 16:39:26 2852 1

原创 手把手教你定制 Spring Security 中的表单登录

1.登录接口很多初学者分不清登录接口和登录页面,这个我也很郁闷。我还是在这里稍微说一下。登录页面就是你看到的浏览器展示出来的页面,像下面这个:登录接口则是提交登录数据的地方,就是登录页面里边的 form 表单的 action 属性对应的值。在 Spring Security 中,如果我们不做任何配置,默认的登录页面和登录接口的地址都是/login,也就是说,默认会存在如下两个请求: GET http://localhost:8080/login POST http://.

2020-06-16 13:59:27 285

原创 这35 个小细节大大提升 java 代码的运行效率

代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。代码优化的目标是代码优化细节

2020-06-16 10:48:59 133

原创 大型网站架构技术一览

大型网站的挑战主要来自庞大的用户,高并发的访问和海量数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得棘手。大型网站架构主要就是解决这类问题。更多内容也可以阅读各大互联网公司架构演进之路汇总、大型网站架构演化历程两篇文章。本文内容大部分来自《大型网站技术架构》,这本书很值得一看,强烈推荐。网站系统架构层次如下图所示:1.前端架构前端指用户请求到达网站应用服务器之前经历的环节,通常不包含网站业务逻辑,不处理动态内容。浏览器优化技术并不是优化浏览器,.

2020-06-16 09:34:02 148

原创 这份源码分析让你秒懂 ConcurrentHashMap

1. ConcurrentHashMap 1.71. 存储结构Java 7 中 ConcurrentHashMap 的存储结构如上图,ConcurrnetHashMap 由很多个 Segment 组合,而每一个 Segment 是一个类似于 HashMap 的结构,所以每一个 HashMap 的内部可以进行扩容。但是 Segment 的个数一旦初始化就不能改变,默认 Segment 的个数是 16 个,你也可以认为 ConcurrentHashMap 默认支持最多 16 个线程并发。2. 初

2020-06-16 09:13:09 128

空空如也

空空如也

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

TA关注的人

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