- 博客(375)
- 收藏
- 关注
原创 ZooKeeper 会话的秘密
会话,即 session,这个词语或者说概念很多地方都有用到,在 ZK 中会话指的是两个不同的机器建立了网络连接后,就可以说他们之间创建了一个会话。 ZK 的会话是有超时的概念的,当会话超时后,会由服务端主动关闭,当然客户端也可以主动请求服务端想要关闭会话。你可能会问,为什么要搞这个麻烦,直接两边连上一直用不就好了吗?有了会话这个概念就是为了防止,在建立连接后,有些客户端不常使用,早点关闭连接可以节省资源。我发现我好久没有 cue 鸡太美了,这次就让他再 C 位出道一次吧。我们的鸡太美每天起床后,日常发微博
2022-07-03 17:26:16 95
原创 字节二面:能说说 Kafka 处理请求的流程么?越详细越好
今天来讲讲 端处理请求的全流程,剖析下底层的网络通信是如何实现的、Reactor 在 kafka 上的应用。再说说社区为何在 2.3 版本将请求类型划分成两大类,又是如何实现两类请求处理的优先级。不过在进入今天主题之前我想先叨叨几句,就源码这个事儿,不同人有不同的看法。有些人听到源码这两个词就被吓到了,这么多代码怎么看。奔进去就像无头苍蝇,一路断点跟下来,跳来跳去,算了拜拜了您嘞。而有些人觉得源码有啥用,看了和没看一样,看了也用不上。其实上面两种想法我都有过,哈哈哈。那为什么我会开始看 源码呢?其实就是
2022-07-03 17:14:01 102
原创 如果你是 JDK 设计者,如何设计线程池?我跟面试官大战了三十个回合
这两面试题是基友朋友最近去面滴滴遇到的,今天就借着这两面试真题来深入一波线程池吧,这篇文章力求把线程池核心点和常问的面试点一网打尽,当然个人能力有限,可能会有遗漏,欢迎留言补充!先把问题列出来,如果你都答得出来,那没必要看下去:为什么会有线程池?简单手写一个线程池?为什么要把任务先放在任务队列里面,而不是把线程先拉满到最大线程数?线程池如何动态修改核心线程数和最大线程数?如果你是 JDK 设计者,如何设计?如果要让你设计一个线程池,你要怎么设计?你是如何理解核心线程的?你是怎么理解 KeepAliveTim
2022-07-03 16:56:58 392
原创 为什么一个还没毕业的大学生能够把 IO 讲的这么好?
Java IO 是一个庞大的知识体系,很多人学着学着就会学懵了,包括我在内也是如此,所以本文将会从 Java 的 BIO 开始,一步一步深入学习,引出 JDK1.4 之后出现的 NIO 技术,对比 NIO 与 BIO 的区别,然后对 NIO 中重要的三个组成部分进行讲解(缓冲区、通道、选择器),最后实现一个简易的客户端与服务器通信功能。Java IO 流是一个庞大的生态环境,其内部提供了很多不同的输入流和输出流,细分下去还有字节流和字符流,甚至还有缓冲流提高 IO 性能,转换流将字节流转换为字符流・・・・・
2022-07-03 16:42:50 181
原创 你见过哪些目瞪口呆的 Java 代码技巧?
本文不是一个吹嘘的文章,不会讲很多高深的架构,相反,会讲解很多基础的问题和写法问题,如果读者自认为基础问题和写法问题都是不是问题,那请忽略这篇文章,节省出时间去做一些有意义的事情。基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能。项目地址:https://github.com/YunaiV/ruoyi-vue-pro不知道有多少”老”程序员还在使
2022-07-03 15:54:22 71
原创 Nginx 面试题 40 问
什么是Nginx?Nginx 有哪些优点?Nginx应用场景?Nginx怎么处理请求的?Nginx 是如何实现高并发的?什么是正向代理?什么是反向代理?反向代理服务器的优点是什么?Nginx目录结构有哪些?Nginx配置文件nginx.conf有哪些属性模块?cookie和session区别?为什么 Nginx 不使用多线程?nginx和apache的区别什么是动态资源、静态资源分离?为什么要做动、静分离?什么叫 CDN 服务?Nginx怎么做的动静分离?Nginx负载均衡的算法怎么实现的?策略有哪些?如何
2022-07-03 15:39:24 165
原创 阿里 Seata 新版本终于解决了 TCC 模式的幂等、悬挂和空回滚问题
今天来聊一聊阿里巴巴 Seata 新版本(1.5.0)是怎么解决 TCC 模式下的幂等、悬挂和空回滚问题的。TCC 模式是最经典的分布式事务解决方案,它将分布式事务分为两个阶段来执行,try 阶段对每个分支事务进行预留资源,如果所有分支事务都预留资源成功,则进入 commit 阶段提交全局事务,如果有一个节点预留资源失败则进入 cancel 阶段回滚全局事务。以传统的订单、库存、账户服务为例,在 try 阶段尝试预留资源,插入订单、扣减库存、扣减金额,这三个服务都是要提交本地事务的,这里可以把资源转入中间表
2022-07-03 14:50:45 210
原创 不同业务场景该如何选择缓存的读写策略?
缓存的读写策略。你可能觉得缓存的读写很简单,只需要优先读缓存,缓存不命中就从数据库查询,查询到了就回种缓存。实际上,针对不同的业务场景,缓存的读写策略也是不同的。而我们在选择策略时也需要考虑诸多的因素,比如说,缓存中是否有可能被写入脏数据,策略的读写性能如何,是否存在缓存命中率下降的情况等等。接下来,我就以标准的“缓存 + 数据库”的场景为例,带你剖析经典的缓存读写策略以及它们适用的场景。这样一来,你就可以在日常的工作中根据不同的场景选择不同的读写策略。我们来考虑一种最简单的业务场景,比方说在你的电商系统中
2022-07-03 14:39:32 87
原创 手撸了一个 starter,同事直夸我 666~
Spring Boot 将常见的开发功能,分成了一个个的 starter,这样我们开发功能的时候只需要引入对应的 starter,而不需要去引入一堆依赖了!starter 可以理解为一个依赖组,其主要功能就是完成引入依赖和初始化配置。Spring 官方提供的 starter 命名规范为 ,第三方提供的 starter 命名规范为 。这里我们以 的依赖 来学习 starter 的原理。在项目中引入 之后,实际上就引入了 的一些相关依赖。在 中有一个自动装配的类 ,我截取了其中的一小段代码,一起
2022-07-02 06:45:00 161
原创 某小公司:MySQL 连环问
MySQL 面试题开始要更新啦!请接招。我:有的,因为单点故障的情况不可避免,所以我们公司有主从。面试官:那你知道主备、主从、主主有什么区别?备机是不干活的,也就是不对外提供服务,只是默默地在同步主机的数据,然后等着某一天主机挂了之后,它取而代之!至于切换的话主要有两种方式:人工切换,得知主机挂了之后手动把备机切成主机,缺点就是慢。利用 keepalived 或者自己写个脚本来作监控,然后自动切换。从机和备机的区别在于,它是对外提供服务的,一般而言主从就是读写分离,写请求指派到主机,读请求指派到从机。一般情
2022-07-02 06:15:00 103
原创 2022年面试,整理全网初、中、高级常见 Java 面试题
面试题答案见微信小程序 “Java 精选面试题”,3000 + 道面试题。内容持续更新中包含基础、集合、并发、JVM、Spring、Spring MVC、Spring Boot、Spring Cloud、Dubbo、MySQL、Redis、MyBaits、Zookeeper、Linux、数据结构与算法、项目管理工具、消息队列、设计模式、Nginx、常见 BUG 问题、网络编程等。————————————————面向对象编程有哪些特征?一、抽象和封装类和对象体现了抽象和封装抽象就是解释类与对象之间关系的词。类
2022-07-01 16:40:09 2105
原创 阿里三面:让你怀疑人生的 Java 锁机制夺命连环 21 问
锁机制无处不在,锁机制是实现线程同步的基础,锁机制并不是 Java 锁独有的,其他各种计算机语言中也有着锁机制相关的实现,数据库中也有锁的相关内容,这篇文章总结的 Java 锁机制笔记也为大家打包好了,需要的自取即可,希望可以帮助大家从 Java 入手,深入学习、理解 Java 中的锁机制,提升 Java 并发编程能力。 乐观锁是一种乐观思想,假定当前环境是读多写少,遇到并发写的概率比较低,读数据时认为别的线程不会正在进行修改(所以没有上锁)。写数据时,判断当前 与期望值是否相同,如果相同则进行更新(更新期
2022-07-01 16:28:57 177
原创 面试:听说你用过 MQ,能具体说说吗?
为什么使用消息队列?消息队列的优点和缺点?kafka、activemq、rabbitmq、rocketmq 都有什么优缺点?面试官角度分析:(1)你知不知道你们系统里为什么要用消息队列这个东西?(2)既然用了消息队列这个东西,你知不知道用了有什么好处?(3)既然你用了 MQ,那么当时为什么选用这一款 MQ?面试官问这个问题的期望之一的回答是,你们公司有什么业务场景,这个业务场景有什么技术挑战,如果不用 MQ 可能会很麻烦,但是再用了之后带来了很多好处。消息队列的常见使用场景有很多但是核心的有三个:解耦、异步
2022-07-01 16:13:31 522
原创 重磅!腾讯正式开源 Spring Cloud Tencent,功能真心强大!
Spring Boot + Spring Cloud 仍是 Java 生态最主流的框架2014 年 4 月 Spring Boot 发布 1.0 版本,经过 8 年时间的发展,Spring Boot 已然成为 Java 开发框架的事实标准。在分布式微服务领域,2016 年 1 月 Spring Cloud 发布 Angel.SR5 版本。Spring Cloud 延承了 Spring Boot 最核心的组件化、低配置快速集成的核心思想,同时定义了一套标准的微服务 SPI。基于这套 SPI 出现了 Sprin
2022-07-01 15:31:09 279
原创 微服务容错与隔离:限流保护,计数器+漏桶+令牌桶算法限流实现
限流保护限流的目的是保护系统不被大量请求冲垮,通过限制请求的速度来保护系统。在电商的秒杀活动中,限流是必不可少的一个环节。计数器比较简单的限流做法是维护一个单位时间内的计数器,每次允许请求计数器都加1,当单位时间内计数器累加到设定的阈值后,之后的请求都被拒绝,直到超过单位时间,再将计数器重置为零。此方式有一个弊端:如果在单位时间1s内允许100个请求,10ms已经通过了100个请求,那后面的990ms只能拒绝请求,我们把这种现象称为“突刺现象”。常用的更平滑的限流算法有两种:漏桶算法和令牌桶算法。漏桶算法漏
2022-07-01 15:26:02 151
原创 程序员都应该懂的微服务容错与隔离:熔断保护、超时与重试原理
本文给大家讲解的内容是微服务容错与隔离:熔断保护、超时与重试;断路器(Circuit Breaker)就像保险丝,在电路系统中,一般在所有的家电系统连接外部供电的线路中间都会加一个保险丝,当外部电压过高,达到保险丝的熔点时,保险丝就会被熔断,从而可以切断家电系统与外部电路的联通,进而保障家电系统不会因为电压过高而损坏。Hystrix提供的熔断器就有类似功能,在一定时间内调用的服务次数达到设定的阈值,并且出错的次数也达到设置的出错阈值时,就会进行服务熔断,让服务调用方执行本地设置的降级策略。但是Hystrix
2022-07-01 15:23:41 597
原创 微服务的风险:分布式固有的复杂性、服务的依赖性及雪崩效应
本文就给大家来介绍微服务容错与隔离:微服务的风险;在微服务架构下,传统的单体应用被拆分为多个服务后,服务的数量变多了,同时之前单体架构下进程内部的方法调用转变为分布式网络环境下的远程调用,因此构建分布式微服务系统带来了额外的开销。● 性能:分布式系统是跨进程、跨网络的调用,受网络延迟和带宽的影响。● 可靠性:由于高度依赖于网络状况,任何一次的远程调用都有可能失败,随着服务的增多还会出现更多的潜在故障点。因此,如何提高系统的可靠性、降低因网络导致的故障率是系统构建的一大挑战。● 异步:异步通信大大增加了功能实
2022-07-01 15:10:25 278
原创 嗨!程序员,可能你还不懂得微服务容错与隔离:隔离机制是什么
本文给大家介绍的内容是微服务容错与隔离:隔离机制。容错与隔离微服务需要具备应对分布式环境的可容错性。在构建软件的开始阶段,就应该认识到网络和信息传递的不可靠性。我们需要对可能发生的故障设计出相应的软件隔离机制和措施,制定相应的容错策略,这个基本原则就是“Design for Failure”:为失败而设计。微服务架构可以在发生故障时通过合理的行为快速做出错误隔离和恢复机制,提供高可用性的服务。在构建可容错软件系统的过程中要解决的本质问题就是故障隔离。在传统的单体架构下一旦应用出现故障,整个服务的可用性都会受
2022-07-01 14:55:10 494
原创 DDD实战-笔记
todo0 开篇中台本质是业务模型,微服务是业务模型的系统落地,DDD 是一种设计思想,它可以同时指导中台业务建模和微服务设计,它们之间就是这样的一个铁三角关系。DDD 强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是脱离领域模型来谈微服务设计。1 微服务 DDD2 领域、子域、核心域、通用域和支撑域DDD 的领域就是这个边界内要解 决的业务问题域。我们把划分出来的多个子领域称为子域,每个子域对应一个更小的问题域或更小的业务范围。领域的核心思想就是将问题域逐级细分,来降低业务理解和系统
2022-06-30 16:42:43 206
原创 Redis分布式锁实现Redisson 15问
在一个分布式系统中,由于涉及到多个实例同时对同一个资源加锁的问题,像传统的synchronized、ReentrantLock等单进程情况加锁的api就不再适用,需要使用分布式锁来保证多服务实例之间加锁的安全性。常见的分布式锁的实现方式有zookeeper和redis等。而由于redis分布式锁相对于比较简单,在实际的项目中,redis分布式锁被用于很多实际的业务场景中。redis分布式锁的实现中又以Redisson比较出名,所以本文来着重看一下Redisson是如何实现分布式锁的,以及Redisson提供
2022-06-30 16:28:30 1105
原创 中小研发团队架构实践之大纲
第一篇 开篇——照着做,你也能成为架构师第1章 可参考的才是有价值的,附案例和代码 一、框架篇——工欲善其事,必先利其器 二、架构篇——思想提升 三、公共应用篇——业务与技术的结合 四、进阶篇——从架构到管理 五、案例参考和Demo下载第二篇 架构篇——思想提升第2章 企业总体架构 一、企业商务模型 二、架构现状 2.1 功能架构 2.2 应用架构 2.3 数据设计 2.4 物理架构 三、领域模型 四、架构规划 4.1 顶层架构规
2022-06-30 16:25:38 87
原创 Redis 6 中的多线程是如何实现的!?
Redis 是一个高性能服务端的典范。它通过多路复用 epoll 来管理海量的用户连接,只使用一个线程来通过事件循环来处理所有用户请求,就可以达到每秒数万 QPS 的处理能力。单线程的 Redis 虽然性能很高,但是却有两个问题。一个问题是没有办法充分发挥现代 CPU 的多核处理能力,一个实例只能使用一个核的能力。二是如果某个用户请求的处理过程卡住一段时间,会导致其它所有的请求都会出现超时的情况。所以,在线上的 redis 使用过程时是明确禁止使用 keys * 等长耗时的操作的。那如何改进呢,思路和方向其
2022-06-30 16:21:43 449
原创 这个队列的思路真的好,现在它是我简历上的亮点了。
前几天在一个开源项目的 github 里面看到这样的一个 pr:光是看这个名字,里面有个 MemorySafe,我就有点陷进去了。我先给你看看这个东西:这个肯定很眼熟吧?我是从阿里巴巴开发规范中截的图。为什么不建议使用 FixedThreadPool 和 SingleThreadPool 呢?因为队列太长了,请求会堆积,请求一堆积,容易造成 OOM。那么问题又来了:前面提到的线程池用的队列是什么队列呢?用的是没有指定长度的 LinkedBlockingQueue。没有指定长度,默认长度是 Integer.
2022-06-30 16:15:36 94
转载 还在用 SimpleDateFormat 做时间格式化?小心项目崩掉!
今天聊聊 SimpleDateFormat 在多线程环境下存在线程安全问题。1 SimpleDateFormat.parse() 方法的线程安全问题1.1 错误示例错误使用SimpleDateFormat.parse()的代码如下:报错: 1.2 非线程安全原因分析查看源码中可以看到:SimpleDateFormat继承DateFormat类,SimpleDateFormat转换日期是通过继承自DateFormat类的Calendar对象来操作的,Calendar对象会被用来进行日期-时间计算,
2022-06-30 16:08:18 88
原创 PostgreSQL超越MySQL
Stack Overflow 2022 开发者调查报告现已出炉。Stack Overflow 年度开发者调查是面向全球开发者进行的规模最大、最全面的调查,调查涵盖了从开发者喜爱的技术到工作偏好等内容。2022 年是 Stack Overflow 发布年度开发者调查报告的第十二年,有来自 180 个国家 / 地区的 73000 多名开发人员参与了这个调查。其中,依旧是来自美国和印度的受访者数量最多,其次是德国和 UKI(英国和爱尔兰);仅有 632 份调查反馈来自中国开发者,占比为 0.88%。此次调查的一些
2022-06-30 16:00:48 122
原创 阿里出品!SpringBoot应用自动化部署神器,IDEA版Jenkins?
是阿里出品的一款IDEA插件,通过它我们可以更方便地实现自动化部署,其内置的终端工具和文件上传功能,即使用来管理服务器也非常方便!这款IDEA插件不仅功能强大,而且完全免费!CloudToolkit的安装是非常简单的,直接在IDEA的插件市场中搜索然后进行安装即可。插件安装完成后,打开左侧面板,右键图标我们就可以添加服务器的连接信息了,实现自动化部署之前需要先配置好连接信息;一般情况下我们如果想部署本地SpringBoot应用到Docker环境需要经过如下步骤,使用CloudToolkit我们只要配置好流程
2022-06-30 15:58:50 119
原创 社招两年半10个公司28轮面试面经
你信我,真学习还得看书,看书能让你的知识体系更加健全。当然,平时也可以看一些大佬的文章扩充一下知识库。我看过的 Java 相关的书单如下:Java:《Java 并发编程的艺术》、《Java 并发编程实战》JVM:《深入理解 Java 虚拟机》第三版、《深入 Java 虚拟机:JVM G1GC 的算法与实现》、《新一代垃圾回收器 ZGC 设计与实现》、美团技术团队相关 JVM 的文章、R 大相关 JVM 文章MySQL:《MySQL 技术内幕:InnoDB 存储引擎》、《高性能 MySQL》、《MySQL 实
2022-06-30 15:54:03 194
原创 4年工作经验,多线程间的5种通信方式都说不出来,你敢信?
有两个线程,A 线程向一个集合里面依次添加元素“abc”字符串,一共添加十次,当添加到第五次的时候,希望 B 线程能够收到 A 线程的通知,然后 B 线程执行相关的业务操作。线程间通信的模型有两种:共享内存和消息传递,以下方式都是基本这两种模型来实现的。基于 volatile 关键字来实现线程间相互通信是使用共享内存的思想。大致意思就是多个线程同时监听一个变量,当这个变量发生变化的时候 ,线程能够感知并执行相应的业务。这也是最简单的一种实现方式二、使用 Object 类的 wait()/notify(
2022-06-30 15:39:13 70
原创 能让程序员涨薪5K的Hystrix核心工作原理,你真的不打算学吗?
本文给大家介绍的内容是Hystrix的核心工作原理;Hystrix的本质作用是当系统资源过载(Over Load Control)时提供服务状态保护机制,包括下面四个方面。● 熔断:当失败率达到阈值时自动触发降级(如因网络故障或超时造成的失败率高),熔断器触发的快速失败会进行快速恢复。● 隔离(线程池隔离和信号量隔离):限制调用分布式服务的资源使用,某一个调用的服务出现问题不会影响其他调用。● 降级:超时降级、资源不足时(线程或信号量)降级,降级后可以配合降级接口返回托底数据,做到优雅降级。● 缓存:提供了
2022-06-29 21:55:01 81
原创 揭秘:春晚微信红包,是如何抗住 100 亿次请求的?
从事软件开发多年,我偏爱架构设计。无论是电商系统、社交系统还是金融系统,我基本都有涉猎。对于初级工程师而言,最基本的要求是要实现功能,但对于高级工程师和专家工程师而言,更多是要关注架构和性能。今天,来聊聊红包问题,你可能疑惑:春晚微信红包,是如何扛住 100 亿次请求的?那么,今天就一起来看看这篇分享。今天跟大家分享的主题是如何实现 “有把握” 的春晚摇一摇系统。回忆一下春晚的活动,有什么样的活动形式呢?当时我们是直接复用客户端摇一摇入口,专门给春晚摇一摇定制了一个页面,可以摇出 “现金拜年”、“红包”。底
2022-06-28 19:48:42 116
原创 电商红包雨是如何实现的?拿去面试用(典型高并发)
想必大家应该都点过红包雨,就是各大电商大促时候都会搞的那个活动。那具体如何实现红包雨的功能呢?我们来看下勇哥的分享。我服务的一家电商公司也加入了这次热潮,技术团队研发了直播答题功能。答题结束之后,红包会以红包雨的形式落下,用户点击屏幕上落下的红包,若抢到红包,红包会以现金的形式进入用户账户。红包雨是一个典型的高并发场景,短时间内有海量请求访问服务端,技术团队为了让系统运行顺畅,抢红包采用了基于 Redis + Lua 脚本的设计方案。我们分析下抢红包的整体流程 :运营系统配置红包雨活动总金额以及红包个数,提
2022-06-28 19:38:29 859
原创 社招两年半10个公司28轮面试面经
学历:二本工作年限:2 年半你信我,真学习还得看书,看书能让你的知识体系更加健全。当然,平时也可以看一些大佬的文章扩充一下知识库。我看过的 Java 相关的书单如下:Java:《Java 并发编程的艺术》、《Java 并发编程实战》JVM:《深入理解 Java 虚拟机》第三版、《深入 Java 虚拟机:JVM G1GC 的算法与实现》、《新一代垃圾回收器 ZGC 设计与实现》、美团技术团队相关 JVM 的文章、R 大相关 JVM 文章MySQL:《MySQL 技术内幕:InnoDB 存储引擎》、《高性能 M
2022-06-28 19:35:08 576
原创 一个朋友面试一个月的经验总结
本次分享一个后端朋友最近面试的经验总结,希望能对你有启发。朋友坐标北京,裸辞在家找工作。线上面试一共58场,投递公司包含a轮-c轮、上市公司或者知名互联网公司,除了中途放弃面试或者谈薪阶段放弃之外,基本做到面试一路绿灯,最后拿到了包括阿里、字节等offer。朋友赋闲在家,7月1日打开某招聘app,上传简历后开始投递简历,然后每天进行3-6场的面试,两周后面试大多结束开始进入谈薪阶段,第三周收尾一些面试和谈薪,第四周入职新公司。如果是部门直推的话,面试邀请会非常快,最快当天就有邀约,因为业务方看到简历比较满意
2022-06-28 19:31:06 135
原创 作为一面面试官,如何考察候选人
从去年开始,作为一面面试官,陆续面试了30+候选人,在这里分享一下感悟。以我经历的面试为例,基本的流程如下:候选人进入一面,说明已经通过了HR与leader的简历筛选,我认为一面的定位是: 筛选技术能力与工程能力良好、沟通顺畅的候选人。这么定义有些宽泛,下面我会详细讨论。不同公司的业务差异很大,即使是同一公司同一小组,每个人做的事情也各不相同。考察的要点是:这里详细说下对项目收益的评估,做项目的目的是解决问题,既然通过了需求评审+技术评审,就需要评估项目上线后的收益,不做无用功。根据不同的项目分类,我提供几
2022-06-28 16:33:48 765
原创 2022年MySQL面试连环夺命50问,刷完面试通过率提升95%
Java面试中,数据库MySQL是面试重点,这里给大家整理了一份跟平时不同的MySQL面试题。这个是在今年去面试回来同学面试中整理出来的MySQL高频面试题,精选了其中的50道。大家可以看看这些面试自己都能回答出来吗? 文章末尾有答案,需要的可以si xin!1、MySQL 中有哪几种锁?2、MySQL 中有哪些不同的表格?3、简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别4、MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?5、CHAR 和 VARCHAR
2022-06-28 16:19:51 186
原创 三年半经验,成功拿下字节阿里网易offer
先说下自己的情况吧,本科 211,硕士 985,计算机相关专业,前端。工作三年半。本次求职的目标很明确就是大厂,原因如下:在第二家公司待了八个月,就直接平跳了到了下家。到了下家之后不到一个月,公司爆雷了,股价大跌,有好几个小伙伴都直接被卡转正了,还有人走了,这个时候我的内心是崩溃的,刚经历完了求职的失败的打击,现在又有可能不给转正,我当时手头上负责的项目只迭代了一次就停了,我当时其实挺压抑的,对自我的无限否定,感觉自己是一个又菜运气又差的人。甚至当时想着再接着找工作了。做了一次新人分享,我分享了关于 js
2022-06-28 16:11:52 1770 2
原创 2022广深Java中小厂面试记录
反正就是一些常见没有意义的题问期望工资优缺点沟通情况等等1.你们布隆过滤器怎么实现的?2.怎么在BitMap上解决哈希冲突问题的?3.为什么不直接用Order作为Key,直接以KV形式存储在Redis里面?(占内存)4.Redis用的什么集群?Redis有做读写分离吗?5.怎么利用Redis做的MQ幂等性?6.怎么利用Redis来设计每日热搜排行榜?7.Redis分布式锁有几种实现方式?8.Redission底层是怎么实现分布式锁的?9.Java中Syncroinze锁和ReenTrantLock有什么区别
2022-06-28 16:04:27 2012 4
原创 java面试基础(三)
21. static关键的独特之处?答:static修饰类的成员变量被所有实例所共享。student类定义了静态变量schoolName,被所有实例所共享。static修饰方法不需要创建对象,直接通过类名调用static修饰了静态的代码块,当类被加载时,由于类被加载一次,静态代码块只执行一次22. 谈谈你对java集合的理解?答:set,list,quque,map是java集合中的四大类。set, list, quque都继承自collection接口。set是无序的、元素不可重复,list有序,元素可以
2022-06-26 19:36:44 197
原创 java面试题续集(二)
1.抽象类和接口的区别?同:异:声明上:抽象类使用abstract关键字,接口使用interface关键字实现上:子类使用extends关键字来继承抽象类;子类使用implements关键字实现接口构造器:抽象类可以有构造器,接口不能有构造器访问修饰符:抽象类方法可以任意访问修饰符;接口方法默认修饰符public字段声明:抽象类的字段声明可以是任意的;接口的字段默认是static和final多继承:一个类最多只能继承一个抽象类;一个类可以实现多个接口2.hashmap实现hashmap集合时map接口的一个
2022-06-26 19:34:15 172
原创 Java基础面试
1. String 和 StringBuilder、StringBuffer 的区别?Java中定义了string和stringbuffer两个类封装字符串,提供了一系列操作字符串的方法。string是final类型所以使用string定义字符串是一个常量,一旦创建了string它的内容和长度是不可变的,如果想要修改字符串,需要创建新的字符串。stringbuffer类(字符串缓冲区)它的内容和长度都是变化的,stringbuffer相当于字符容器,在添加或删除操作不会产生的新的buffer对象。strin
2022-06-26 17:09:54 145
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人