自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黄小斜学Java

公众号【黄小斜学Java】专注分享Java领域干货,不限于BAT面试,算法、计算机基础、数据库、分布式、spring全家桶、微服务、高并发、JVM、Docker容器,ELK、大数据等相关知识,希望我们可以一起进步。

  • 博客(668)
  • 论坛 (4)
  • 收藏
  • 关注

转载 Linux常见面试题,一网打尽!

Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什么是BASH?什么是CLI?什么是GUI?开源的优势是什么?GNU项目的重要性是什

2021-05-15 17:40:17 550

转载 一文梳理2021年常见消息中间件MQ与RabbitMQ面试题

文章目录为什么使用MQ?MQ的优点消息队列有什么优缺点?RabbitMQ有什么优缺点?你们公司生产环境用的是什么消息中间件?Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?MQ 有哪些常见问题?如何解决这些问题?什么是RabbitMQ?rabbitmq 的使用场景RabbitMQ基本概念RabbitMQ的工作模式如何保证RabbitMQ消息的顺序性?消息如何分发?消息怎么路由?消息基于什么传输?如何保证消息不被重复消费?或者说,如何保证消息消费时的

2021-05-15 17:26:39 90

转载 一文整理Java工程师常被问到的Spring Cloud面试题

大家好,我是CSDN的博主ThinkWon,“2020博客之星年度总评选"开始啦,希望大家帮我投票,每天都可以投多票哦,点击下方链接,然后点击"最大”,再点击"投TA一票"就可以啦!投票链接:https://bss.csdn.net/m/topic/blog_star2020/detail?username=thinkwon在技术的世界里,ThinkWon将一路与你相伴!创作出更多更高质量的文章!2020为努力奋斗的你点赞????,️新的一年,祝各位大牛牛气冲天,牛年大吉!????????文章目录

2021-05-15 17:17:38 57

转载 Java工程师最常遇到的Spring Boot面试题,我帮你整理好了!

文章目录概述什么是 Spring Boot?Spring Boot 有哪些优点?Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?配置什么是 JavaConfig?Spring Boot 自动配置原理是什么?你如何理解 Spring Boot 配置加载顺序?什么是 YAML?YAML 配置的优势在哪里 ?Spring Boot 是否可以使用 XML 配置 ?spring boot 核心配置文件是什么?bootstrap.properties 和 applicatio

2021-05-15 17:13:28 54

转载 数据结构常见面试题,一网打尽!

(1) 红黑树的了解(平衡树,二叉搜索树),使用场景把数据结构上几种树集中的讨论一下:1.AVLtree定义:最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。节点的平衡因子是它的左子树的高度减去它的右子树的高度(有时相反)。带有平衡因子1、0或 -1的节点被认为是平衡的。带有平衡因子 -2或2的节点被认为是不平衡的,并需要重新平衡

2021-05-14 21:10:18 47

转载 操作系统常见面试题,一网打尽!

过操作系统内核来完成的。内核的这种切换过程伴随的最显著的性能损耗是将寄存器中的内容切换出。2、另外一个隐藏的损耗是上下文的切换会扰乱处理器的缓存机制。简单的说,一旦去切换上下文,处理器中所有已经缓存的内存地址一瞬间都作废了。还有一个显著的区别是当你改变虚拟内存空间的时候,处理的页表缓冲(processor's Translation Lookaside Buffer (TLB))或者相当的神马东西会被全部刷新,这将导致内存的访问在一段时间内相当的低效。但是在线程的切换中,不会出现这个问题。转自.

2021-05-14 20:57:43 39

转载 计算机网络常见面试题,一网打尽!

计算机网络常见面试题一 OSI与TCP/IP各层的结构与功能,都有哪些协议?学习计算机网络时我们一般采用折中的办法,也就是中和 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。结合互联网的情况,自上而下地,非常简要的介绍一下各层的作用。1.1 应用层应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需

2021-05-14 19:50:12 290

转载 一份Netty最全面试题!让面试官难不倒你!

文章目录 1.Netty 是什么? 2.Netty 的特点是什么? 3.Netty 的优势有哪些? 4.Netty 的应用场景有哪些? 5.Netty 高性能表现在哪些方面? 6.BIO、NIO和AIO的区别? 7.NIO的组成? 8.Netty的线程模型? 9.TCP 粘包/拆包的原因及解决方法? 10.什么是 Netty 的零拷贝? 11.Netty 中有哪种重要组件? 12.Netty 发送消息有几种方式? 13.默认情况 Netty 起多少线程?

2021-05-13 16:58:20 42

转载 你应该知道的RPC原理

你应该知道的RPC原理  在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。  而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。这时就会遇到两个问题:1)要搭建一个新服务,免不了需要依赖他人的服务,而现在他人的服务都在远端,怎么调用?2)其它团队要使用我们的新服务,我们的服务该怎么发布以便他人调用?下文将对这两个问题展开探

2021-05-12 19:20:12 44

转载 开启springcloud全家桶10:用SpringCloud Admin快速搭建你的监控中心

Spring Boot Admin实例生命状态实例的细节信息实例的信息清单Spring Boot Admin看到这几个页面是不是觉得还是蛮炫酷的,毕竟是Spring自家的产品,做的还是可以的。我们就来简易的搭一下这个监控中中心1. 新建Springboot项目<dependencies> <dependency> <groupId>org.springframew...

2021-05-12 18:18:58 43

转载 开启springcloud全家桶9:springcloud的分布式链路追踪利器 Sleuth

一、概述软件项目随着业务发展,一个单体的应用的问题会暴露出来,各个开发人员开发不同的功能模块,造成代码冲突,单体应用上线必须所有功能一起上线,风险较大。这时项目必然需要被拆分,拆分为一个个独立的应用服务,拆分后会导致系统服务间调用链路愈发复杂。此时,一个前端请求可能最终需要调用多个后端服务才能完成实现,当整个请求不可用出现问题时,我们是没有办法判断请求是由哪个后端服务引发问题,这时我们需要快速定位故障点,找到调用异常的服务,跟进一个请求到底有哪些服务参与,参与顺序是怎样,从而达到每个请求的步骤清晰可

2021-05-12 15:00:19 30

转载 开启springcloud全家桶8:配置中心的好搭档 Spring Cloud Bus 消息总线

Springboot: 2.1.6.RELEASESpringCloud: Greenwich.SR1如无特殊说明,本系列教程全采用以上版本前面两篇文章我们聊了Spring Cloud Config配置中心,当我们在更新github上面的配置以后,如果想要获取到最新的配置,需要手动刷新或者利用webhook的机制每次提交代码发送请求来刷新客户端,客户端越来越多的时候,需要每个客户端都执行一遍,这种方案就不太适合了。使用Spring Cloud Bus(国人很形象的翻译为消息总线,我.

2021-05-12 14:46:13 23

转载 开启springcloud全家桶7:使用spring cloud config来统一管理配置文件

这篇文章主要介绍了详解使用spring cloud config来统一管理配置文件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧当一个系统中的配置文件发生改变的时候,我们需要重新启动该服务,才能使得新的配置文件生效,spring cloud config可以实现微服务中的所有系统的配置文件的统一管理,而且还可以实现当配置文件发生变化的时候,系统会自动更新获取新的配置。其架构原理图大致如下:我们将配置文件放入git或者svn等服务中,通过一个Config Serv

2021-05-12 14:37:23 21

转载 开启springcloud全家桶6:Spring Cloud 服务网关 Zuul 快速入门

服务网关和Zuul为什么要有服务网关:我们都知道在微服务架构中,系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?难道要一个个的去调用吗?很显然这是不太实际的,我们需要有一个统一的接口与这些微服务打交道,这就是我们需要服务网关的原因。我们已经知道,在微服务架构中,不同的微服务可以有不同的网络地址,各个微服务之间通过互相调用完成用户请求,客户端可能通过调用N个微服务的接口完成一个用户请求。比如:用户查看一个商品的信息,它可能包含商品基本信息、价格信息、评论信息、折扣信息、

2021-05-12 14:23:06 22

转载 开启springcloud全家桶5:探索负载均衡组件 Ribbon实现与原理

前段时间,笔者为了解决微服务多版本共存调用的问题,笔者深入调研了Ribbon,并将调研的内容记录了下来,以供后续查阅。Ribbon是Spring Cloud核心组件之一,它提供的最重要的功能就是负载均衡,和硬件负载均衡F5不同,它的负载均衡是基于客户端的,Zuul网关和Feign可以通过Ribbon轻松的实现服务的负载均衡,同时避免了与业务无关的冗余代码。在这篇文章中,笔者会讲解负载均衡请求调用的流程以及过程中涉及的一些重要接口。1. Ribbon示例下面的代码是利用ribbon实现负载均衡。

2021-05-12 14:08:27 27

转载 开启springcloud全家桶4:极简API调用方式 Spring Cloud Feign 总结

变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。Spring Cloud中, 服务又该如何调用 ?各个服务以HTTP接口形式暴露 , 各个服务底层以HTTP Client的方式进行互相访问。SpringCloud开发中,Feign是最方便,最为优雅的服务调用实现方式。Feign 是一个声明式,模板化

2021-05-12 13:59:39 31

转载 开启springcloud全家桶3:服务注册中心erueka原理与实践

Erueka 概念 一、Erueka 组件   Eureka 由两个组件组成:Eureka 服务端和Eureka 客户端。1.1、Eureka Server( 服务端) Eureka Server( 服务端)就是注册中心   Eureka 服务端担任注册中心的角色,提供了服务的发现和注册功能。     1.2、Eureka Client (客户端) Eureka Client (客户端) ...

2021-05-12 13:07:04 47

转载 开启springcloud全家桶2:初探Hystrix原理与实践

背景分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服务资源耗尽,无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递,这种现象被称为雪崩效应。雪崩效应常见场景硬件故障:如服务器宕机,机房断电,光纤被挖断等。 流量激增:如异常流量,重试加大流量等。 缓存穿透:一般发生在应用重启,所有缓存失效时,以及短时间内大量缓存失效时。大量的缓存不命中

2021-05-12 12:55:08 22

转载 开启springcloud全家桶1:springcloud套餐简介

为什么需要学习Spring Cloud不论是商业应用还是用户应用,在业务初期都很简单,我们通常会把它实现为单体结构的应用。但是,随着业务逐渐发展,产品思想会变得越来越复杂,单体结构的应用也会越来越复杂。这就会给应用带来如下的几个问题:代码结构混乱:业务复杂,导致代码量很大,管理会越来越困难。同时,这也会给业务的快速迭代带来巨大挑战; 开发效率变低:开发人员同时开发一套代码,很难避免代码冲突。开发过程会伴随着不断解决冲突的过程,这会严重的影响开发效率; 排查解决问题成本高:线上业务发现 bug,修

2021-05-12 12:29:13 57

原创 开启springcloud全家桶:springcloud常见面试题

微服务面试题一、Spring Cloud有哪些特点?Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。特点:1、约定优于配置。2、适用于各种环境。开发、部署PC Server或各种云环境如阿里云、AWS等。3、隐藏了组件的复杂性,并提供声明式、无xml的配置方式。4、开箱即用快速启动。5、轻量级组.

2021-05-12 12:20:24 287

转载 深入理解JVM虚拟机15:Java线上故障排查全套路总结

作者:fredalxin来源:https://fredal.xin/java-error-check线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是 df、free、top 三连,然后依次 jstack、jmap 伺候,具体问题具体分析即可。CPU一般来讲我们首先会排查cpu方面的问题。cpu异常往往还是比较好...

2021-05-10 13:55:14 53

转载 深入理解JVM虚拟机14:JVM性能调优的6大步骤,及关键调优参数详解

JVM内存调优对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。1.Full GC会对整个堆进行整理,包括Young、Tenured和Perm。Full GC因为需要对整个堆进行回收,所以比较慢,因此应该尽可能减少Full GC的次数。2.导致Full GC的原因1)年老代(Tenured)被写满调优时尽量让对象在新生代GC时被回收、让对象在新生代多存活一段时间和不要创建过大的对象及数组避免直接在旧生代创建对象 。2)持久代Pemanet Gener

2021-05-10 13:53:58 647

转载 Java面试多半爱问:mybatis常见面试题汇总

1、什么是Mybatis?(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,加载驱动、创建连接、创建statement等繁杂的过程,开发者开发时只需要关注如何编写SQL语句,可以严格控制sql执行性能,灵活度高。(2)作为一个半ORM框架,MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。称Mybatis是半自动ORM映射工具,是因为在查询关联对象

2021-05-08 11:09:20 39

转载 Spring面试题汇总4:关于Spring事务的面试题

数据库事务和 Spring 事务是一般面试都会被提到,很多朋友写惯了代码,很少花时间去整理归纳这些东西,结果本来会的东西,居然吞吞吐吐答不上来。下面是我收集到一些关于Spring事务的问题,希望能帮助大家过关。事务是逻辑处理原子性的保证手段,通过使用事务控制,可以极大的避免出现逻辑处理失败导致的脏数据等问题。事务最重要的两个特性:事务的传播级别:定义了事务在 传播 方面的控制范围。数据的隔离级别:定义了事务在 数据库读写 方面的控制范围。事务的7种传播级别:1) PROPAGATION_REQ

2021-05-08 11:06:12 34

转载 Java网络编程与NIO详解14:Tomcat 常见面试题汇总

1、Tomcat的缺省端口是多少,怎么修改?1)找到Tomcat目录下的conf文件夹2)进入conf文件夹里面找到server.xml文件3)打开server.xml文件4)在server.xml文件里面找到下列信息<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" uriEncoding="utf-8"/>port="8080"改成你想要的端口

2021-05-08 11:00:59 28

转载 Spring面试题汇总3:SpringBoot面试题及答案整理

SpringBoot面试题及答案整理1、什么是 Spring Boot?多年来,随着新功能的增加,spring 变得越来越复杂。访问spring官网页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。如果必须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程序服务器,添加 spring 配置。因此,开始一个新的 spring 项目需要很多努力,因为我们现在必须从头开始做所有事情。Spring Boot 是解决这个问题的方法

2021-05-08 10:55:53 110

转载 Spring面试题汇总2:SpringMVC常见面试题

SpringMVC 面试题什么是Spring MVC ?简单介绍下你对springMVC的理解?Spring MVC是一个基于MVC架构的用来简化web应用程序开发的应用开发框架,它是Spring的一个模块,无需中间整合层来整合 ,它和Struts2一样都属于表现层的框架。在web模型中,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。SpringMVC的流程?(1)

2021-05-08 10:38:31 29

转载 Spring面试题汇总1:史上最全Spring面试题

目录1、不同版本的 Spring Framework 有哪些主要功能? 2、什么是 Spring Framework? 3、列举 Spring Framework 的优点。 4、Spring Framework 有哪些不同的功能? 5、Spring Framework 中有多少个模块,它们分别是什么? 6、什么是 Spring 配置文件? 7、Spring 应用程序有哪些不同组件? 8、使用 Spring 有哪些方式? 9、什么是 Spring IOC 容器? 10、什么是依赖注入?

2021-05-08 10:10:09 29

转载 夯实Java基础系列28:java里的浅拷贝、深拷贝

假如说你想复制一个简单变量。很简单:int apples = 5;int pears = apples;不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类情况。但是如果你复制的是一个对象,情况就有些复杂了。class Student { private int number; public int getNumber() { return number;

2021-05-08 09:53:33 54

转载 夯实Java基础系列27:关于Java序列化的13个面试问题

什么是 Java 序列化序列化是把对象改成可以存到磁盘或通过网络发送到其他运行中的 Java 虚拟机的二进制格式的过程, 并可以通过反序列化恢复对象状态. Java 序列化API给开发人员提供了一个标准机制, 通过 java.io.Serializable 和 java.io.Externalizable 接口, ObjectInputStream 及ObjectOutputStream 处理对象序列化. Java 程序员可自由选择基于类结构的标准序列化或是他们自定义的二进制格式, 通常认为后者才是最佳

2021-05-08 09:51:25 43

转载 夯实Java基础系列26:主流大厂最新Java注解面试问题

1.简介自Java 5以来,注释已经出现,而现在,它们是无处不在的编程结构,可以丰富代码。在本文中,我们将回顾一些关于注释的问题; 通常会在技术面谈时询问,并在适当情况下; 我们将实施示例以更好地理解他们的答案。2.问题Q1。什么是注释?他们的典型用例是什么?注释是绑定到程序源代码元素的元数据,对它们运行的​​代码的操作没有影响。他们的典型用例是:编译器的信息 - 使用注释,编译器可以检测错误或抑制警告编译时和部署时处理 - 软件工具可以处理注释并生成代码,配置文件等。运行时处理 - 可以

2021-05-08 09:44:05 48

转载 夯实Java基础系列25:java反射常见面试题,你都掌握了么?

1. 什么是反射?反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。2. 哪里用到反射机制?JDBC中,利用反射动态加载了数据库驱动程序。Web服务器中利用反射调用了Sevlet的服务方法。Eclispe等开发工具利用反射动态刨析对象的类型与结构,动态提示对象的属性和方法。很多框架都用到反射机制,注入属性,调用方法,如Spring。3. 什么叫对

2021-05-07 08:43:47 28

转载 Java并发指南18:JUC常见面试题及答案

什么是 CAS 吗?CAS(Compare And Swap)指比较并交换。CAS算法CAS(V, E, N)包含 3 个参数,V 表示要更新的变量,E 表示预期的值,N 表示新值。在且仅在 V 值等于 E值时,才会将 V 值设为 N,如果 V 值和 E 值不同,则说明已经有其他线程做了更新,当前线程什么都不做。最后,CAS 返回当前 V 的真实值。Concurrent包下所有类底层都是依靠CAS操作来实现,而sun.misc.Unsafe为我们提供了一系列的CAS操作。CAS 有什么缺点?AB

2021-05-06 14:51:45 49

转载 Java并发指南17:Java常见多线程面试题及答案

Java多线程面试题及答案(2020版)前言个人珍藏的80道Java多线程/并发经典面试题,因为篇幅太长,现在先给出1-10的答案解析哈,后面一起完善~1. synchronized的实现原理以及锁优化?synchronized的实现原理synchronized作用于「方法」或者「代码块」,保证被修饰的代码在同一时间只能被一个线程访问。 synchronized修饰代码块时,JVM采用「monitorenter、monitorexit」两个指令来实现同步 synchronized修饰

2021-05-06 11:42:08 51

转载 Java网络编程与NIO详解13:epoll、poll、select面试题汇总

文章目录一、文件描述符与IO模型二、端口和地址复用三、select四、poll五、epoll六、相关面试题1、epoll读到一半又有新事件来了怎么办?一、文件描述符与IO模型  文件描述符:当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。  IO多路复用是一种同步IO模型,实现一个进程可以监视多个文件句柄(socket、文件或者管道等等),一旦某个文件句柄就绪,就能够通知程序进行相应的读写操作。  IO多路复用相比于多线程的优势在于系统的开销小,系统不必创

2021-05-06 11:29:46 40

转载 Java网络编程与NIO详解12:常见NIO和BIO的Java面试题,一网打尽!

首先我们分别画图来看看,BIO、NIO、AIO,分别是什么?BIO:传统的网络通讯模型,就是BIO,同步阻塞IO它其实就是服务端创建一个ServerSocket, 然后就是客户端用一个Socket去连接服务端的那个ServerSocket, ServerSocket接收到了一个的连接请求就创建一个Socket和一个线程去跟那个Socket进行通讯。接着客户端和服务端就进行阻塞式的通信,客户端发送一个请求,服务端Socket进行处理后返回响应。在响应返回前,客户端那边就...

2021-05-06 11:23:18 31

转载 深入理解JVM虚拟机13:JVM面试题,看这篇就足够了(87题详解)

1、java中会存在内存泄漏吗,请简单描述。会。自己实现堆载的数据结构时有可能会出现内存泄露,可参看effective java.2、64 位 JVM 中,int 的长度是多数?Java 中,int 类型变量的长度是一个固定值,与平台无关,都是 32 位。意思就是说,在 32 位 和 64 位 的 Java 虚拟机中,int 类型的长度是相同的。3、Serial 与 Parallel GC 之间的不同之处?Serial 与 Parallel 在 GC 执行的时候都会引起 stop-the-wor

2021-05-06 10:44:10 299

转载 Java集合详解12:arraylist和linkedlist面试题汇总,可能没有你想象中那么简单!

ArrayList 无参数构造器构造,现在 add 一个值进去,此时数组的大小是多少,下一次扩容前最大可用大小是多少?此处数组的大小是 1,下一次扩容前最大可用大小是 10,因为 ArrayList 第一次扩容时,是有默认值的,默认值是 10,在第一次 add 一个值进去时,数组的可用大小被扩容到 10 了。如果我连续往 Arraylist 里面新增值,增加到第 11 个的时候,数组的大小是多少?这里的考查点就是扩容的公式,当增加到 11 的时候,此时我们希望数组的大小为 11,但实际上数组的最大容

2021-05-04 11:51:05 52

转载 Java集合详解10:ConcurrentHashmap面试题汇总,最近找工作老是被问!

ConcurrentHashMap篇HashMap 和 ConcurrentHashMap 的区别ConcurrentHashMap对整个桶数组进行了分割分段(Segment),然后在每一个分段上都用lock锁进行保护,相对于HashTable的synchronized锁的粒度更精细了一些,并发性能更好,而HashMap没有锁机制,不是线程安全的。(JDK1.8之后ConcurrentHashMap启用了一种全新的方式实现,利用CAS算法。) HashMap的键值对允许有null,但是ConCur

2021-05-03 12:28:30 67

转载 Java集合详解9:2021年的hashmap面试题怎么考?涵盖性能优化、扩容、并发问题等核心考点

摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMa

2021-05-03 12:08:09 80

空空如也

黄小斜的留言板

发表于 2020-01-02 最后回复 2020-04-30

怎么删掉博客专栏

发表于 2018-04-26 最后回复 2019-09-10

用户名能不能改

发表于 2018-08-03 最后回复 2018-08-03

申请了专栏毫无动静

发表于 2018-04-23 最后回复 2018-04-23

空空如也

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

TA关注的人 TA的粉丝

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