面试
文章平均质量分 90
程序员大彬
非科班转码,校招拿了多家互联网中大厂offer,专注分享Java技术干货
展开
-
华为面经总结
为了帮助大家更好的应对面试,我整理了,供大家参考~原创 2024-01-06 17:50:06 · 890 阅读 · 0 评论 -
大公司为什么禁止SpringBoot项目使用Tomcat?
在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。同时,SpringBoot也支持Undertow容器,我们可以很方便的用Undertow替换Tomcat,而Undertow的性能和内存使用方面都优于Tomcat,那我们如何使用Undertow技术呢?本文将为大家细细讲解。SpingBoot中我们既可以使用Tomcat作为Http服务,也可以用Undertow来代替。Undertow在高并发业务场景中,性能优于Tomcat。原创 2024-01-06 15:21:25 · 1023 阅读 · 0 评论 -
三天吃透Redis面试八股文
Redis 官方站提出了一种权威的基于 Redis 实现分布式锁的方式名叫Redlock,此种方式比原先的单节点的方法更安全。安全特性:互斥访问,即永远只有一个 client 能拿到锁避免死锁:最终 client 都可能拿到锁,不会出现死锁的情况,即使原本锁住某资源的 client 挂掉了容错性:只要大部分 Redis 节点存活就可以正常提供服务。原创 2023-12-29 10:43:38 · 906 阅读 · 0 评论 -
一天吃透Java并发面试八股文
线程死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象。若无外力作用,它们都将无法推进下去。如下图所示,线程 A 持有资源 2,线程 B 持有资源 1,他们同时都想申请对方持有的资源,所以这两个线程就会互相等待而进入死锁状态。下面通过例子说明线程死锁,代码来自并发编程之美。//资源 1//资源 2try {}, "线程 1").start();try {}, "线程 2").start();原创 2023-12-01 08:57:28 · 934 阅读 · 0 评论 -
秋招进入尾声了,还有哪些公司和岗位可以投递?
在这里跟大家分享一份2024届秋招信息汇总表,目前已更新2000家,不仅有互联网公司,还有外企、国企、各类研究所,不断更新中,可以对照投递,抓住秋招的尾巴!24届秋招基本已经进入尾声了,接下来就是秋招补录了,最近在微信群看到一些同学再问哪些公司还在招人的。另外还有寒假实习和日常实习内推,感兴趣的同学可以看看~原创 2023-11-10 21:52:21 · 182 阅读 · 0 评论 -
一天吃透Java并发面试八股文
线程死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象。若无外力作用,它们都将无法推进下去。如下图所示,线程 A 持有资源 2,线程 B 持有资源 1,他们同时都想申请对方持有的资源,所以这两个线程就会互相等待而进入死锁状态。下面通过例子说明线程死锁,代码来自并发编程之美。//资源 1//资源 2try {}, "线程 1").start();try {}, "线程 2").start();原创 2023-10-24 08:48:18 · 213 阅读 · 0 评论 -
一天吃透JVM面试八股文
JVM,全称Java Virtual Machine(Java虚拟机),是通过在实际的计算机上仿真模拟各种计算机功能来实现的。由一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域等组成。JVM屏蔽了与操作系统平台相关的信息,使得Java程序只需要生成在Java虚拟机上运行的目标代码(字节码),就可在多种平台上不加修改的运行,这也是Java能够“一次编译,到处运行的”原因。类的加载指的是将类的class。原创 2023-10-23 08:55:02 · 204 阅读 · 0 评论 -
一天吃透Java面试题
给大家分享我整理的Java高频面试题,有小伙伴靠他拿到字节offer了。原创 2023-10-22 21:09:19 · 431 阅读 · 0 评论 -
一天吃透Java集合面试八股文
Hash 值的范围值比较大,使用之前需要先对数组的长度取模运算,得到的余数才是元素存放的位置也就是对应的数组下标。这个数组下标的计算方法是。将HashMap的长度定为2 的幂次方,这样就可以使用位运算代替%取余的操作,提高性能。// 容纳键值对的最大值// 负载因子int size;Node[] table的初始化长度length为16,默认的loadFactor是0.75,0.75是对空间和时间效率的一个平衡选择,根据泊松分布,loadFactor 取0.75碰撞最小。原创 2023-10-19 21:40:58 · 300 阅读 · 0 评论 -
这几个SQL语法的坑,你踩过吗
数据库编译器产生执行计划,决定着SQL的实际执行方式。但是编译器只是尽力服务,所有数据库的编译器都不是尽善尽美的。上述提到的多数场景,在其它数据库中也存在性能问题。了解数据库编译器的特性,才能避规其短处,写出高性能的SQL语句。程序员在设计数据模型以及编写SQL语句时,要把算法的思想或意识带进来。编写复杂SQL语句要养成使用 WITH 语句的习惯。简洁且思路清晰的SQL语句也能减小数据库的负担。来源:yq.aliyun.com/articles/72501。原创 2023-08-17 00:06:41 · 237 阅读 · 0 评论 -
腾讯面经总结
最近在准备面试,看了很多大厂的面经,抽空将腾讯面试的题目整理了一下,希望对大家有所帮助~原创 2023-08-16 00:32:23 · 315 阅读 · 0 评论 -
大公司为什么禁止SpringBoot项目使用Tomcat?
在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。同时,SpringBoot也支持Undertow容器,我们可以很方便的用Undertow替换Tomcat,而Undertow的性能和内存使用方面都优于Tomcat,那我们如何使用Undertow技术呢?本文将为大家细细讲解。SpingBoot中我们既可以使用Tomcat作为Http服务,也可以用Undertow来代替。Undertow在高并发业务场景中,性能优于Tomcat。原创 2023-08-02 00:43:55 · 292 阅读 · 0 评论 -
订单30分钟未支付自动取消怎么实现?
这样可以看出定时轮由个 3 个重要的属性参数,ticksPerWheel(一轮的 tick 数),tickDuration(一个 tick 的持续时间)以及 timeUnit(时间单位),例如当 ticksPerWheel=60,tickDuration=1,timeUnit=秒,这就和现实中的始终的秒针走动完全类似了。结合以上两个特性,就可以模拟出延迟消息的功能,具体的,我改天再写一篇文章,这里再讲下去,篇幅太长。也就是说,如果发布/订阅的客户端断链之后又重连,则在客户端断链期间的所有事件都丢失了。原创 2023-07-29 22:25:15 · 3387 阅读 · 2 评论 -
一文吃透SpringMVC面试八股文
MVC的全名是,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。View,视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。MVC的好处之一在于它能为应用程序处理很多不同的视图。原创 2023-07-27 00:14:38 · 370 阅读 · 0 评论 -
一天吃透消息队列面试八股文
有些特殊框架(如:redis、kafka、zeroMq等)根据自身需要未严格遵循MQ规范,而是基于TCP\IP自行封装了一套协议,通过网络socket接口进行传输,实现了MQ的功能。原创 2023-07-23 13:00:28 · 281 阅读 · 0 评论 -
一天吃透Java并发面试八股文
线程死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象。若无外力作用,它们都将无法推进下去。如下图所示,线程 A 持有资源 2,线程 B 持有资源 1,他们同时都想申请对方持有的资源,所以这两个线程就会互相等待而进入死锁状态。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v37zsLkM-1690037705799)(http://img.topjavaer.cn/img/死锁.png)]下面通过例子说明线程死锁,代码来自并发编程之美。原创 2023-07-22 22:55:52 · 242 阅读 · 0 评论 -
美团面经总结
内容摘自我的学习网站:topjavaer.cn分享一份读者面试美团的面经,比较有参考性,感兴趣的可以看看~原创 2023-07-08 23:40:44 · 372 阅读 · 0 评论 -
Shopee面经总结
进程、线程区别,问使用Java时,里面多线程的概念和os里的线程进程的区别是什么?真正使用时,Java里的线程和进程是如何调度?多线程的同步互斥的方法?答了信号量,问具体怎么实现,答pv操作,给了具体的场景,问变量如何初始化(等同于口述代码)如果有一个很大的文件,TB级别,文件里是乱序的数字,如何排序?答:多搞几台机器,问:多台机器如何协同工作?b树、b+树是什么样的树结构,查询复杂度?等,可以star一下,下次找书直接在上面搜索,很方便~排序过程中的归并排序,请描述一下其过程?使用过redis吗?原创 2023-07-03 09:00:14 · 336 阅读 · 0 评论 -
一天吃透Redis面试八股文
Redis 官方站提出了一种权威的基于 Redis 实现分布式锁的方式名叫Redlock,此种方式比原先的单节点的方法更安全。安全特性:互斥访问,即永远只有一个 client 能拿到锁避免死锁:最终 client 都可能拿到锁,不会出现死锁的情况,即使原本锁住某资源的 client 挂掉了容错性:只要大部分 Redis 节点存活就可以正常提供服务。原创 2023-07-01 11:13:26 · 423 阅读 · 0 评论 -
一天吃透MySQL面试八股文
MySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。索引是存储引擎用于提高数据库表的访问速度的一种数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。索引一般存储在磁盘的文件中,它是占用物理空间的。如果 SQL 语句中用到了组合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个组合索引去进行匹配。当遇到范围查询(原创 2023-06-30 09:11:29 · 366 阅读 · 0 评论 -
一天吃透Spring面试八股文
面向切面编程,作为面向对象的一种补充,将公共逻辑(事务管理、日志、缓存等)封装成切面,跟业务代码进行分离,可以减少系统的重复代码和降低模块之间的耦合度。切面就是那些与业务无关,但所有业务模块都会调用的公共逻辑。在Spring创建对象的过程中,把对象依赖的属性注入到对象中。依赖注入主要有两种方式:构造器注入和属性注入。控制反转,由Spring容器管理bean的整个生命周期。通过反射实现对其他对象的控制,包括初始化、创建、销毁等,解放手动创建对象的过程,同时降低类之间的耦合度。原创 2023-06-26 09:09:18 · 578 阅读 · 0 评论 -
一天吃透SpringCloud面试八股文
Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分为一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调、互相配合,为用户提供最终价值。原创 2023-06-25 08:23:54 · 485 阅读 · 0 评论 -
京东四面面经整理
内容摘自我的学习网站:topjavaer.cn。原创 2023-06-22 14:24:02 · 1268 阅读 · 0 评论 -
一天吃透Redis面试八股文
Redis 官方站提出了一种权威的基于 Redis 实现分布式锁的方式名叫Redlock,此种方式比原先的单节点的方法更安全。安全特性:互斥访问,即永远只有一个 client 能拿到锁避免死锁:最终 client 都可能拿到锁,不会出现死锁的情况,即使原本锁住某资源的 client 挂掉了容错性:只要大部分 Redis 节点存活就可以正常提供服务。原创 2023-06-20 00:37:29 · 665 阅读 · 1 评论 -
华为面经整理(2023最新)
内容摘自我的学习网站:topjavaer.cn最近越来越多公司校招进入面试流程了,为了帮助大家更好的应对面试,大彬整理了,供大家参考~原创 2023-06-11 00:45:13 · 2226 阅读 · 0 评论 -
Java面试都只是背答案吗
Github地址:https://github.com/Tyson0314/Java-learning。等,可以star一下,下次找书直接在上面搜索,仓库持续更新中~最后给大家分享一个Github仓库,上面有大彬整理的。如果访问不了Github,可以访问码云地址。本文已经收录到Github仓库,该仓库包含。等核心知识点,欢迎star~原创 2023-06-09 08:09:45 · 984 阅读 · 0 评论 -
一文吃透Java并发高频面试题
线程死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象。若无外力作用,它们都将无法推进下去。如下图所示,线程 A 持有资源 2,线程 B 持有资源 1,他们同时都想申请对方持有的资源,所以这两个线程就会互相等待而进入死锁状态。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d7NVKug8-1685887928371)(http://img.topjavaer.cn/img/死锁.png)]下面通过例子说明线程死锁,代码来自并发编程之美。原创 2023-06-04 22:14:44 · 493 阅读 · 0 评论 -
这可能是最全面的Java学习路线了
大家好,我是大彬~我本科学的不是计算机,大四开始自学Java,。在学习Java这方面还是比较有经验的,下面我来分享下我整理的。在这里也提醒学弟学妹们,要尽早确定以后的方向,读研还是工作,找工作的话,也要尽快确定工作岗位,想转行的,需要花更多的时间准备。很多同学到了大四快毕业的时候,才思考自己未来要做什么,这个时候已经有点晚了。如果错过了校招,走社招渠道去找工作,难度将会提升一个等级,到时后悔也来不及!下面来说说自己的经历吧(附自学路线)。原创 2023-05-25 09:04:43 · 4337 阅读 · 0 评论 -
华为面经整理(2023)
最近越来越多公司校招进入面试流程了,为了帮助大家更好的应对面试,大彬整理了,供大家参考~原创 2023-05-23 09:13:04 · 1492 阅读 · 1 评论 -
希望所有计算机专业同学都知道这些老师
我看过不同老师讲的操作系统课程,觉得比较好的入门级课程是清华大学开设的网课《操作系统》,该课程由清华大学老师向勇和陈渝授课,虽然大彬上不了清华大学,但是至少可以在网上选择听清华大学的课嘛。bilibili 2021新人奖UP主、亚马逊资深首席科学家,李沐老师的机器学习课程,可以说是机器学习入门课程的天花板,非常适合新手入门,没有很复杂的推导过程和数学知识,偏向于运用的角度。中科大郑烇、杨坚老师的计算机网络,老师讲课很幽默,思路很清晰,最重要的是,可以跟中科大学生一起完成专业知识的学习~原创 2023-05-19 09:09:03 · 5043 阅读 · 0 评论 -
一天吃透Java面试八股文
值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量。引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本,并不是原对象本身,两者指向同一片内存空间。所以对引用对象进行操作会同时改变原对象。java中不存在引用传递,只有值传递。即不存在变量a指向变量b,变量b指向对象的这种情况。StringJoiner是 Java 8 新增的一个 API,它基于 StringBuilder 实现,用于实现对字符串之间通过分隔符拼接的场景。原创 2023-05-18 09:04:41 · 1492 阅读 · 0 评论 -
大公司为什么禁止SpringBoot项目使用Tomcat?
在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。同时,SpringBoot也支持Undertow容器,我们可以很方便的用Undertow替换Tomcat,而Undertow的性能和内存使用方面都优于Tomcat,那我们如何使用Undertow技术呢?本文将为大家细细讲解。SpingBoot中我们既可以使用Tomcat作为Http服务,也可以用Undertow来代替。Undertow在高并发业务场景中,性能优于Tomcat。原创 2023-05-14 22:14:11 · 7780 阅读 · 3 评论 -
一天吃透SpringCloud面试八股文
Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分为一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调、互相配合,为用户提供最终价值。原创 2023-05-14 21:00:12 · 742 阅读 · 0 评论 -
京东面经总结
如果访问不了Github,可以访问gitee地址。本文已经收录到Github,该仓库包含。等核心知识点,欢迎star~原创 2023-05-08 21:49:43 · 662 阅读 · 0 评论 -
美团面经总结(2023最新)
分享一份读者面试美团的面经,比较有参考性,感兴趣的可以看看~原创 2023-05-07 12:30:56 · 841 阅读 · 0 评论 -
MySQL高频面试题
MySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。索引是存储引擎用于提高数据库表的访问速度的一种数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。索引一般存储在磁盘的文件中,它是占用物理空间的。如果 SQL 语句中用到了组合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个组合索引去进行匹配。当遇到范围查询(原创 2023-05-05 08:25:28 · 2156 阅读 · 0 评论 -
一文吃透Tomcat核心知识点
我们在浏览网页时,一般使用的是HTTP 协议或者 HTTPS 协议,这种方式是一种 “请求—响应” 模式,也就是只支持从客户端发送请求,服务器收到后进行处理,然后返回一个响应,但是不能主动发送数据给客户端,这样某些场景下的实现就比较困难,甚至无法实现,比如聊天室实时聊天,可能有人会说直接将在 servlet 中处理向要发送消息的客户端发送不就行了,但是因为是 “请求-响应” 模式,当其他客户端与服务器一段时间没有通信,连接就会断开,服务器也就无法转发消息了。:Coyote 是连接器具体的实现。原创 2023-05-04 15:19:12 · 919 阅读 · 0 评论 -
SpringBoot高频面试题
在项目的开发中,有些配置文件在开发、测试或者生产等不同环境中可能是不同的,例如数据库连接、redis的配置等等。那我们如何在不同环境中自动实现配置的切换呢?Spring给我们提供了profiles机制给我们提供的就是来回切换配置文件的功能Spring Profiles 允许用户根据配置文件(dev,test,prod 等)来注册 bean。因此,当应用程序在开发中运行时,只有某些 bean 可以加载,而在 PRODUCTION中,某些其他 bean 可以加载。原创 2023-05-01 18:18:17 · 1199 阅读 · 0 评论 -
一天吃透Redis面试八股文
Redis 官方站提出了一种权威的基于 Redis 实现分布式锁的方式名叫Redlock,此种方式比原先的单节点的方法更安全。安全特性:互斥访问,即永远只有一个 client 能拿到锁避免死锁:最终 client 都可能拿到锁,不会出现死锁的情况,即使原本锁住某资源的 client 挂掉了容错性:只要大部分 Redis 节点存活就可以正常提供服务。原创 2023-05-01 11:34:49 · 941 阅读 · 0 评论 -
订单30分钟未支付自动取消怎么实现?
这样可以看出定时轮由个 3 个重要的属性参数,ticksPerWheel(一轮的 tick 数),tickDuration(一个 tick 的持续时间)以及 timeUnit(时间单位),例如当 ticksPerWheel=60,tickDuration=1,timeUnit=秒,这就和现实中的始终的秒针走动完全类似了。结合以上两个特性,就可以模拟出延迟消息的功能,具体的,我改天再写一篇文章,这里再讲下去,篇幅太长。也就是说,如果发布/订阅的客户端断链之后又重连,则在客户端断链期间的所有事件都丢失了。原创 2023-04-28 08:31:09 · 3744 阅读 · 6 评论