2 君莫笑(๑˙ー˙๑)

学生身份

我要认证

欢迎互关,一起学习,共同进步

等级
TA的排名 2w+

ArrayList 面试题

1,初始容量大小?最大容量?A:10。Integer.MAX_VALUE。2,触发扩容机制?A:当调用 add 时,计算当前 size + 1,如果大于数组长度,扩容3,add 过程如果当前数组为空,创建容量为10的数组;如果size + 1 > length,扩容。赋值。public boolean add(E e) { //确保数组容量 ensureCapacityInternal(size + 1); // Increments modCount!! //赋值

2020-08-17 17:07:37

MySQL 索引笔记

目录B TreeB+ Tree五种索引聚簇索引联合索引辅助索引覆盖索引用不到索引B TreeAVL Tree 的进化,一个 Node 上可以储存多个值,充分利用一个 Page 的内存大小(默认16 KB)。B+ TreeB Tree 的进化,增强了扫表能力,IO性能更好(非叶子节点没有放数据,能够放更多的指针),效率更稳定。五种索引普通索引:没有限制唯一索引:每行数据该列唯一,可以为 NULL,可以多个。主键索引:有且必有一个,不能为 NULL。联合索引:见下文。全文索引:用特殊的

2020-08-14 14:53:59

拓扑排序

目录适用场景前提思路代码适用场景将图里的定点按照相连的性质进行排序排序结果应为:1 2 4 3 5前提必须是有向无环图思路不断找一个入度为 0 的点,放入结果集,再删除节点(更新入度表)。代码public class TopologicalSort { public static List<Integer> sort(boolean[][] adj, int[] indegree){ List<Integer> ans = new Link

2020-08-12 15:47:37

为什么要重写 hashCode() 和 equals()

目录Object 的 hashCode() 与 equals()hashCodeequals重写 equals() 的场景String 的 equals()重写 hashCode() 的场景Object 的 hashCode() 与 equals()hashCodepublic native int hashCode();原生的 hashCode() 是一个本地方法,返回的是根据物理地址换算出来的一个唯一值。equalspublic boolean equals(Object obj) {

2020-07-19 17:47:06

关于 String、StringBuffer、StringBuilder 的常见面试题

目录String创建方式一方式二方式三最大长度拼接方式一方式二StringBuilderappendtoStringStringBuffertoStringString类不可变(final),内部维护的 char[] value 数组不可变(final)。创建方式一String str = "xxx";字符串常量池如果有 “xxx”,不创建对象;如果没有,在字符串常量池创建"xxx"。方式二String str = new String("xxx");字符串常量池如果有 “xxx”,创

2020-07-19 16:45:15

Docker 面试题

目录DockerDocker镜像Docker容器Docker仓库Docker与虚拟机有何不同Docker的工作原理Docker容器的几种状态DockerDocker是一个容器化平台,它以容器的形式将应用程序及其所有依赖项打包在一起,以确保应用程序在任何环境中运行。Docker镜像Docker 镜像是 Docker 容器的只读模板,用于创建容器。Docker容器Docker容器包括应用程序及其所有依赖项,但与其他容器共享内核,作为主机操作系统上用户空间中的独立进程运行。Docker容器不依赖于任何

2020-07-19 11:48:09

Eureka 的多级缓存设计

目录三种缓存三种缓存Eureka Server 存在三个变量:registry、readWriteCacheMap、readOnlyCacheMap 保存服务注册信息。类 AbstractInstanceRegistryprivate final ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>> registry = new ConcurrentHashMap<

2020-07-18 18:17:55

SpringBoot 整合 Mybatis 源码阅读(2.3.1.RELEASE)

目录从 spring.factories 开始MybatisAutoConfiguration@MapperScanMapperScannerRegistrarrefreshinvokeBeanFactoryPostProcessorsConfigurationClassPostProcessor从 spring.factories 开始导入依赖 mybatis-spring-boot-starter 后,会出现如图所示这么一个包,主要看 MybatisAutoConfigurationMybati

2020-07-14 10:02:41

EurekaClient 服务注册流程

服务注册的入口 这篇文章最后一段代码@Overridepublic void start() { // only set the port if the nonSecurePort or securePort is 0 and this.port != 0 if (this.port.get() != 0) { if (this.registration.getNonSecurePort() == 0) { this.registration.setNonSecurePort(this.p

2020-07-12 16:54:01

服务注册的入口

目录接口服务注册的触发路径接口SpringCloud 是一个生态,它提供了一套标准,这套标准可以通过不同的组件来实现,其中就包含服务注册/发现、熔断、负载均衡等,在 spring-cloud-commons 这个包中, org. springframework. cloud. client. serviceregistry路径下,可以看到个服务注册的接口定义 ServiceReglstry。它就是定义了 SpringCloud 中服务注册的一个接口。public interface Servi

2020-07-12 14:34:17

Spring5 源码阅读笔记(1.5)finishRefresh() 完成刷新

protected void finishRefresh() { //清空上下文级别的资源缓存 clearResourceCaches(); //初始化上下文的LifecycleProcessor 见1.5.1 initLifecycleProcessor(); //调用所有LifeCycle的start方法 见1.5.2 getLifecycleProcessor().onRefresh(); //发布ContextRefreshedEvent publishEvent(new Co

2020-07-12 11:26:54

Eureka 自我保护机制

什么是自我机制?自我保护机制是一种应对网络异常的安全保护措施。它的架构哲学是宁可保留不健康的微服务,也不轻易注销健康的微服务。Eureka在运行期间会统计全部服务总体的心跳失败的比例,在15分钟内是否低于85%。如果低于,则认为是网络异常问题,应该保护,Eureka Server会将当前的实例注册信息保护起来,同时提示一个警告。一旦进入保护模式:Eureka Server将会不再删除服务注册表中的数据。也就是不会注销任何微服务。Eureka server仍然能够接受新服务的注册和查询请求,但是不

2020-07-11 20:54:30

push 和 pull 的优缺点

push 和 pull 的优缺点push优点缺点适用场景优化pull优点缺点优化方案适用场景push优点生产者主动推送给消费者,及时性很高缺点当消费者消费能力远低于生产者生产能力,那么一旦生产者推送大量消息到消费者时,就会导致消费者消息堆积,处理缓慢,甚至服务崩溃。(那么如何解决这个问题呢?需要mq提供流控制,也就是依据消费者消费能力做流控。比如rabbitmq设置Qos,限制消费数量。)生产者需要维护和每个消费者之间的会话。适用场景对于数据实时性要求高的场景优化不采用

2020-07-09 16:44:50

Netty 源码阅读笔记(4) ServerBootStrap

目录类关系图4 bind4.1 initAndRegister4.1.1 newChannel4.1.2 init4.1.2.1 ServerBootstrapAcceptor类关系图4 bind类 AbstractBootstrappublic ChannelFuture bind() { validate(); SocketAddress localAddress = this.localAddress; if (localAddress == null) {

2020-07-05 17:34:28

Netty 源码阅读笔记(5) NioServerSocketChannel

目录类关系图5.1 构造方法类关系图5.1 构造方法public NioServerSocketChannel() { this(newSocket(DEFAULT_SELECTOR_PROVIDER));}public NioServerSocketChannel(ServerSocketChannel channel) { //注册接收事件 super(null, channel, SelectionKey.OP_ACCEPT); config = ne

2020-07-04 21:03:56

Netty 源码阅读笔记(6) DefaultChannelPipeline

目录类关系图6.1 构造方法6.1.1 TailContext6.1.2 HeadContext类关系图6.1 构造方法protected DefaultChannelPipeline(Channel channel) { this.channel = ObjectUtil.checkNotNull(channel, "channel"); succeededFuture = new SucceededChannelFuture(channel, null); voidPro

2020-07-04 21:01:34

Netty 源码阅读笔记(1) NioEventLoopGroup

目录类结构图1.1 构造方法1.1.1 newChild类结构图1.1 构造方法public NioEventLoopGroup() { this(0);}public NioEventLoopGroup(int nThreads) { this(nThreads, (Executor) null);}public NioEventLoopGroup(int nThreads, Executor executor) { this(nThreads, executo

2020-07-04 19:39:18

Netty 源码阅读笔记(3) NioEventLoop

目录类关系图3.1 构造方法3.2 run3.2.1 select3.2.2 processSelectedKeys类关系图3.1 构造方法NioEventLoop(NioEventLoopGroup parent, Executor executor, SelectorProvider selectorProvider, SelectStrategy strategy, RejectedExecutionHandler rejectedExecutionHandler)

2020-07-04 19:33:51

Netty 源码阅读笔记(2)ThreadPerTaskExecutor

public final class ThreadPerTaskExecutor implements Executor { private final ThreadFactory threadFactory; public ThreadPerTaskExecutor(ThreadFactory threadFactory) { if (threadFactory == null) { throw new NullPointerException("

2020-07-04 15:32:46

基于 SpringBoot 手写 RPC 框架

目录文件目录Messageconsumer@EnableRpcConsumer@ReferenceReferenceInvokeProxyRpcHandlerprovider@EnableRpcProvider@ServiceBeanMethodInitialMediatorMediatorServiceHandlerSocketServerInitial示例consumer启动类配置文件TestControllerprovider启动类配置文件ExampleServiceImpl结果文件目录Mess

2020-06-20 11:46:48

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。