![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程
文章平均质量分 85
烟雨平生V
这个作者很懒,什么都没留下…
展开
-
聪明如我,一眼就看穿了快递小哥的分堆算法。
又过了半分钟,小哥一看尾号为 8 的快递还得找一会,就对我说:老弟,这样嘛,你稍等一下下,我先把后面的人找一下,他们的应该很快。小哥想也没想的用标准的四川话回复我:哎呀,人手不够的嘛,我分堆堆的时候还要看小区,恼火的很。哦,你莫急,我很快就找到你的了,莫 ~ 急 ~我当然说没问题了,虽然我很赶时间,这个快递属于拿到马上就要用的那种,但是我还是非常理解这些小哥哥们的,等一会嘛,问题不大。我已经迫不及待的打开这个包裹了,我前面说了,这个快递属于拿到马上就要用的那种,可以两个人一起用,然后让人很兴奋的那种。原创 2022-12-30 16:01:52 · 431 阅读 · 1 评论 -
阿里面试这些微服务还不会?那还是别去了,基本等通知
微服务作为一项在云中部署应用和服务的新技术已成为当下最新的热门话题。但大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点。企业和服务提供商正在寻找更好的方法将应用程序部署在云环境中,微服务被认为是未来的方向。通过将应用和服务分解成更小的、松散耦合的组件,它们可以更加容易升级和扩展,理论上是这样。同样在大厂的面试中微服务基本上成为了一个必问的选项,所以掌握微服务成为通向大厂的一张门票,,只是掌握了微服务最基础的 set 和 get 的方法,这让人感到非常的可惜。原创 2022-12-28 13:55:28 · 121 阅读 · 0 评论 -
2022年最全大厂面试真题解析:java集合+spring+并发编程+MyBatis
不知道最近面试是否顺利,是否会经常问到一些自己不熟悉的问题,不知道怎么去回答这些问题,今天小编给大家整理了2022年大厂经常问到了的一些面试真题及解析,内容点包含有java集合,jvm,并发编程,spring,mybatis,springMVC,微服务,Dubbo,netty,网络,zookeeper,kafka,rabbitMQreadis缓存,数据库,设计模式。等一线大厂互联网大厂常问到的面试真题,大家可以学习下用来突击金三银四。 Synchronized 相关问题:可重入锁 ReentrantLo原创 2022-12-28 13:50:02 · 185 阅读 · 0 评论 -
Redis第四弹,删除了大量数据后,为什么内存占用还是很高?
上周刚来了个应届小师弟,组长说让我带着,周二问了我这样一个问题:师兄啊,我用top命令看了下服务器的内存占用情况,发现Redis内存占用严重,于是我就删除了大部分不用的keys,为什么内存占用还是很严重,并没有释放呢?嗯?为什么呢?今天就带着这个问题来介绍一下如何正确释放Redis的内存。内存碎片这个概念应该不是第一听说了,熟悉JVM或者操作系统的应该都熟悉,以火车卖票为例,一个车厢128个车位,由于高峰期,只剩余两个位置了,但是此时三个。原创 2022-12-28 13:44:01 · 184 阅读 · 0 评论 -
Redis第三弹,给你一亿个keys,如何高效统计?
不知你大规模的用过Redis吗?还是仅仅作为缓存的工具了?签到系统中,一天对应一系列的用户签到记录。电商系统中,一个商品对应一系列的评论。交友系统中,某个用户的一系列的好友。Redis中集合的特点无非是一个Key交友系统中,需要统计每天的新增好友,以及双方的共同好友。电商系统中,需要统计评论列表中的最新评论。签到系统中,需要统计连续一个月的签到的用户数量。大型互联网应用中,数据量是巨大的,少说百万,千万,甚至是一个亿,比如电商巨头淘宝,交友巨头微信、微博;原创 2022-12-28 13:42:13 · 494 阅读 · 0 评论 -
Redis第二弹,服务器宕机,数据丢了怎么办?
Redis作为内存型的数据库,虽然很快,依然有着很大的隐患,一旦服务器宕机重启,内存中数据还会存在吗?很容易想到的一个方案是从后台数据恢复这些数据,如果数据量很小,这倒是一个可行的方案。但是如果数据量过大,频繁的从后台数据库访问数据,压力很大;另外一方面恢复数据的时间极慢。对于Redis来说,实现数据的持久化和快速恢复是至关重要。今天这篇文章就来介绍一下Redis持久化的两种机制AOF日志、RDB快照。AOF()日志称之为写后日志,即是命令先执行完成,把数据写入内存,然后才会记录日志。AOF。原创 2022-12-28 13:41:37 · 632 阅读 · 0 评论 -
Redis第一弹,单线程的Redis,有哪些慢动作?
现在一提到Redis的第一反应就是快、单线程,但是Redis真的快吗?真的是单线程吗?你有没有深入了解一下Redis,看看它的底层有哪些"慢动作"呢?Redis之所以这么快,不仅仅因为全部操作都在内存中,还有底层数据结构的支持,但是数据结构虽好,每种数据结构也有各种慢的情况,Redis结合各种数据结构的利弊,完善了整个运行机制。原创 2022-12-28 13:40:15 · 103 阅读 · 0 评论 -
线程的状态转换以及基本操作
一个java程序从main()方法开始执行,然后按照既定的代码逻辑执行,看似没有其他线程参与,但实际上java程序天生就是一个多线程程序,包含了:(1)分发处理发送给给JVM信号的线程;(2)调用对象的finalize方法的线程;(3)清除Reference的线程;(4)main线程,用户程序的入口。那么,如何在用户程序中新建一个线程了,只要有三种方式:通过继承Thread类,重写run方法;通过实现runable接口;通过实现callable接口这三种方式,下面看具体demo。原创 2022-12-27 11:34:18 · 110 阅读 · 0 评论 -
线程池ThreadPoolExecutor实现原理
在实际使用中,线程是很占用系统资源的,如果对线程管理不善很容易导致系统问题。因此,在大多数并发框架中都会使用。原创 2022-12-27 11:30:09 · 117 阅读 · 0 评论 -
一篇文章,让你彻底弄懂生产者--消费者问题
如果线程在等待时接受到了通知,但是之后等待的条件发生了变化,并没有再次对等待条件进行判断,也会导致程序出现错误。下面用一个例子来说明这种情况。原创 2022-12-27 11:27:50 · 300 阅读 · 0 评论 -
彻底理解synchronized
使用锁时,线程获取锁是一种悲观锁策略,即假设每一次执行临界区代码都会产生冲突,所以当前线程获取到锁的时候同时也会阻塞其他线程获取该锁。而CAS操作(又称为无锁操作)是一种乐观锁策略,它假设所有线程访问共享资源的时候不会出现冲突,既然不会出现冲突自然而然就不会阻塞其他线程的操作。因此,线程就不会出现阻塞停顿的状态。那么,如果出现冲突了怎么办?无锁操作是使用**CAS(compare and swap)**又叫做比较交换来鉴别线程是否出现冲突,出现冲突就重试当前操作直到没有冲突为止。原创 2022-12-27 11:24:29 · 124 阅读 · 0 评论 -
HTTP客户端工具该选哪个?进来看
HTTP(超文本传输协议)是一种应用层协议,用于客户端和服务端进行通信,按照标准格式如JSON、XML等进行网络数据的传输,通常也作为应用程序之间以RESTAPI形式进行通信的常用协议。在Java应用中需要调用其他应用提供的HTTP服务API时,通常需要使用一些HTTP客户端组件。而可选择的HTTP客户端有很多,本期内容主要介绍在Java应用程序中可以使用的HTTP客户端工具。Java 11+版本中提供的HttpClientApache HttpComponents项目中的HttpClient。原创 2022-12-27 11:18:04 · 926 阅读 · 0 评论 -
来一份常见 JVM 面试题+“答案”
JVM采用的是可达性分析算法。JVM是通过GC Roots来判定对象的存活的。从GC Roots向下追溯、搜索,会产生一个叫做Reference Chain的链条。当一个对象不能和任何一个GC Root产生关系,就判定为垃圾。活动线程相关的各种引用,比如虚拟机栈中栈帧里的引用。类的静态变量的引用。JNI引用等。当然也有比较详细的回答,个人认为这些就够了。Java线程中,当前所有正在被调用的方法的引用类型参数、局部变量、临时值等。也就是与我们栈帧相关的各种引用。所有当前被加载的Java类。原创 2022-11-22 13:12:14 · 1596 阅读 · 0 评论 -
这 20 道微服务面试题,阿里、字节、美团、百度面试都问了
最后,我把我面试前几个月准备复习攻克的所有面试题已整理成文档,需要获取的小伙伴可以直接转发+关注后私信(学习)即可获取哦。原创 2022-11-19 14:47:48 · 589 阅读 · 0 评论 -
阿里 P8 整理的新版手抄本,所有 Java 知识操作
该文档在 Github 上收获 45K+star 的 Java 核心神技(这参数,质量多高就不用我多说了吧)非常全面,包含内容非常丰富,已经帮很多人拿下互联网一线公司的 offer。关于程序员,除了做项目来提高自身的技术之外,还有一种提升自己的专业技能就是:多!看!书!原创 2022-11-18 14:30:28 · 118 阅读 · 0 评论 -
为SpringDataJpa集成QueryObject模式
接触过旧版本的读者,可以跳过,直接看下一章“spring data jpa 集成”创建 JpaUserSingleQueryService,继承自}}其中,构造参数 JpaUserRepository 为 spring data jpa 为我们生成的 Proxy;BaseSpecificationQueryObjectRepository 为我们提供基本的查询能力;首先,需要对 SimpleJpaRepository 实现进行功能扩展,并让框架实现自定义的 Repository 实现。原创 2022-11-18 14:22:52 · 227 阅读 · 0 评论 -
终于有人把这份 10 万字节详细面试笔记 (带完整目录) 整理出来了
2022 年一个不平淡的一年,金九银十也已经过去了,肯定有一批求职者还在辛苦地找工作。小编最近日熬夜整理了一份关于 SpringBoot,JVM 篇,多线程 &并发,Spring,MyBatis Kafka 等的学习笔记。资料已整理成文档。原创 2022-11-17 16:05:02 · 132 阅读 · 0 评论 -
2023年春招用的到的Java后端面试攻略,吃透25个技术栈
小编分享的这份春招Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等25个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!原创 2022-11-16 15:21:39 · 467 阅读 · 0 评论 -
十分钟搞懂Java限流及常见方案
在系统架构中,Nginx的代理与路由转发是其作为网关层的一个很重要的功能,由于Nginx天生的轻量级和优秀的设计,让它成为众多公司的首选,Nginx从网关这一层面考虑,可以作为最前置的网关,抵挡大部分的网络流量,因此使用Nginx进行限流也是一个很好的选择,在Nginx中,也提供了常用的基于限流相关的策略配置.如果我们的接口设置了时间窗口内访问上限是20,那么当时间到第六秒的时候,这个时间窗口内的计数总和就变成了10,因为1秒的格子已经退出了时间窗口,因此在第六秒内可以接收的访问量就是20-10=10个。原创 2022-11-16 13:46:55 · 1542 阅读 · 0 评论 -
Java程序员拼多多3轮面试,这些面试题你能掌握多少?
面试一直是大家关注的问题,包括最近有很多人跟我讲投了很多简历出去,就像泥牛入海一样了无音讯了,今天我就来分享一个Java程序员面试拼多多后端开发岗位的几轮面试题。1、Linux 下的一些指令,(进程id), (进程 id),(进程id),?1、给一个函数,返回 0 和 1,概率为 p 和 1-p,请你实现一个函数,使得返回 01 概率一样。8、给你一个系统(面试官好像是无人车部门的),后台的逻辑已经实现了,但是前端加载很慢,怎么检测。13、grep 的使用,一定要掌握,每次都会问在文件中查找。原创 2022-11-16 09:36:28 · 1127 阅读 · 0 评论 -
Dubbo不香?看完阿里这套微服务2.0官方手册,还真没它香
近几年,微服务架构迅速在整个技术社区窜红,它被认为是 IT 软件架构的未来方向。热度虽高,但对于很多中小公司来说微服务却是遥不可及,因为团队规模和能力又反过来制约了他们采用新技术的步伐。如果你还在学习Spring Cloud Alibaba而没有好的学习笔记及思路的话,这份学习手册笔记及下面的思维学习路线笔记能够很好地帮助你!然而现在国内系统的在这特地分享这份官方出产的,从基础到高级进阶深度分析这些组件及学习思路!原创 2022-11-15 16:44:43 · 103 阅读 · 0 评论 -
面向监狱编程之 rm / -rf
在我们学习 Linux 指令之前,先来说一下什么是 Shell?Shell 把我们输入的指令,传递给操作系统去执行,所以 Shell 是一个命令行的用户界面。早期程序员没有图形界面用,就用 Shell。而且图形界面制作成本较高,不能实现所有功能,因此今天的程序员依然在用 Shell。你平时还经常会看到一个词叫作bash(Bourne Again Shell),它是用 Shell 组成的程序。这里的 Bourne 是一个人名,Steve Bourne 是 bash 的发明者。原创 2022-11-15 15:10:33 · 272 阅读 · 0 评论 -
通宵整理的java知识点,看完膨胀了
Dao 接口里的方法,参数不同时,方法能重载吗?18、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?16、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?19、为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?9、解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法。12、什么是阻塞队列?原创 2022-11-15 15:07:31 · 83 阅读 · 0 评论 -
就加了一行log日志,结果引发了 P1 线上事故...
前段时间新增一个特别简单的功能,晚上上线前review代码时想到公司拼搏进取的价值观临时加一行log日志,觉得就一行简单的日志基本上没啥问题,结果刚上完线后一堆报警,赶紧回滚了代码,找到问题删除了添加日志的代码,重新上线完毕。原创 2022-11-15 14:49:43 · 136 阅读 · 0 评论 -
三面阿里java后台开发岗总结:进阿里必看这份究极面试文档
整个流程从一面到三面结束大约持续了10天左右。总的来说,问题都是预期范围内的,虽然面试过程中问到了一些分布式相关问题,我都没有任何经验,这时候不要放弃,主动说出你的思路,然后在面试官的诱导下,相信你能说出属于的答案。最后,整理出一份面试Java程序员必须要掌握的知识点,希望能给大家带来帮助。资料已整理成文档,需要获取的小伙伴可以直接转发+关注后私信(学习)即可获取哦!好了,那么今天的分享到这里就结束了需要以上pdf文档的小伙伴可以直接转发+关注后私信(学习)即可获取哦!原创 2022-11-15 14:01:48 · 188 阅读 · 0 评论 -
Nginx、Keepalived高可用集群解决方案,安装配置
Keepalived软件专为LVS负载平衡软件设计,可管理和监视LVS群集系统中各个服务节点的状态,并在以后提供高可用性VRRP功能。Keepalived软件主要通过VRRP协议提供高可用性功能。VRRP是虚拟路由冗馀协议(virtual router redundancy protocol)的缩写,VRRP的目的是解决静态路由的单点故障问题,如果单个节点关闭,整个网络可以不间断地运行。因此,keepalived具有LVS配置管理功能。安装并启用keepalived。原创 2022-11-15 11:36:18 · 277 阅读 · 0 评论 -
阿里后端面试官的连环炮,看看你能撑到哪一步?
本内容来源于 16 年毕业的学长,先在 58,后阿里,如今准备跳槽了,以下内容为他的最近面试经历,我最近从大厂离职之后在合肥呆了个把月,之前已经准备了半个多月,从7月底开始投简历面试,目前是java高级职位,到现在为止已经面了24+公司了,手上也有一些意向offer。现在把跟面试官对垒的面试问题总体记录一下。原创 2022-11-15 09:34:39 · 76 阅读 · 0 评论 -
今年这情况……要跳槽的建议赶紧
这份资料内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux等技术栈,随手截了部分资料,大家先看下。秋招刚过去,整体的感受是:面试难度和拿offer的难度比往年难多了,而且互联网还有较大的裁员风险,网上各种消息不断,有时候真是焦虑到不行。近期也抽了一点休息时间,为大家准备了。,也一起打包整理给到大家。原创 2022-11-14 14:38:53 · 90 阅读 · 0 评论 -
总结,Kafka 面试大全(万字长文,37 张图,28 个知识点)
轮询策略有非常优秀的负载均衡表现,它总是能保证消息最大限度地被平均分配到所有分区上,故默认情况下它是最合理的分区策略,也是平时最常用的分区策略之一。,每一个选举都会创建一个更大,包含最新信息的 epoch,如果有 broker 收到比这个 epoch 旧的数据,就会忽略它们,kafka 也通过这个 epoch 来防止集群产生“脑裂”。kafka 每个 partition 中的消息在写入时都是有序的,消费时, 每个 partition 只能被每一个消费者组中的一个消费者消费,保证了消费时也是有序的。原创 2022-11-14 10:36:01 · 152 阅读 · 0 评论 -
负载均衡之LVS,HAProxy和Nginx对比分析及HAProxy安装配置
性能上LVS>HA>Nginx,功能性和便利性上Nginx>HA>LVS。原创 2022-11-14 10:14:14 · 1138 阅读 · 0 评论 -
经典JAVA面试回答:HashMap和HashTable区别,其底层实现是什么?
元素同时指向一个地址,如下图由于Hashtable是线程安全是基于锁机制synchronized实现,因此在单线程环境下,HashTable比HashMap要慢一些。具体根据实际的应用场景,如果不需要同步处理,只是单一线程的实现流程,那么使用HashMap性能要比Hashtable好,具体根据实际应用场景来决定。原创 2022-11-14 10:10:58 · 606 阅读 · 0 评论 -
Kafka的性能为什么这么好,大数据之必备知识储备,kafak是什么
Kafka 底层的 IO 用的是 NIO,Kafka最初由Linkedin公司开发,是一个分布式的、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统。原创 2022-11-14 10:02:19 · 742 阅读 · 0 评论 -
程序员写代码自动工作,每天上班打游戏年薪57万
全面覆盖BATJ等一线互联网公司的面试题及解答,由BAT一线互联网公司大牛带你深度剖析面试题背后的原理,不仅授你以鱼,更授你以渔,为你面试扫除一切障碍。虽然摸鱼很爽,他开始还是有些罪恶感,但他最终说服了自己:“我正在做他们雇用我该做的事情,而所有的工作都及时完成,我可以享受我的生活。都说“上班不摸鱼的员工不是好领导”,现如今,上班摸鱼已经成为了许多打工人的常态,为了能够顺利摸鱼,各行各业的打工人也是绞尽了脑汁。近日,在国外的一位开发者,便在居家办公的日子里,通过自己编写的代码实现了全自动工作。原创 2022-11-14 09:56:58 · 292 阅读 · 0 评论 -
GeoServer步骤及使用说明,GIS地图实用工具,第二章
如果要发布切片服务,则需要对其进行设置,在设置 Tile Caching 之前首先新建一个 Gridsets, 设置格网集的名称、坐标系、切片的范围、切片的宽与高以及切片的级数,其中切片的范围来源于发布地图时的地图范围。原创 2022-11-12 13:06:57 · 1009 阅读 · 0 评论 -
GeoServer步骤及使用说明,GIS开发地图实用工具,第一章
说明:GeoServer 是 OpenGls Web 服务器规范的 J2EE 实现,利用 GeoServer可以方便的发布地图数据,可登录官网下载 GeoServer 安装程序进行安装,安装过程类似于安装 mysql 数据库,可根据需要设置端口号。GeoServer 地址:GeoServer 主要包含如下一些特点:1、兼容 WMS 和 WFS 特性2、支持 PostGIS、Shapefile、ArcSDE、Oracle、VPF、MySQL、MapInfo3、支持上百种投影。原创 2022-11-12 11:59:29 · 1739 阅读 · 0 评论 -
Spring Cloud和Dubbo的区别?什么是Spring Cloud,什么是Dubbo?
Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。配置中心的服务流程如下:1、用户在配置中心更新配置信息。2、服务1和服务2及时得到配置更新通知,服务从配置中心获取配置。Apache Dubbo是一款高性能、轻量级的开源 Java 服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。原创 2022-11-12 11:51:49 · 519 阅读 · 0 评论 -
腾讯二面:@Bean 与 @Component 用在同一个类上,会怎么样?
Spring 自始至终默认都是允许 BeanDefinition 覆盖的,变的是 Spring Boot , Spring Boot 2.1.0 之前没有覆盖 Spring 的 allowBeanDefinitionOverriding 默认值,仍是允许 BeanDefinition 覆盖的。后续通过 BeanDefinition 创建实例的时候,创建的自然就是 @Configuration + @Bean 修饰的 UserManager ,也就是会反射调用 UserManager 的有参构造方法。原创 2022-11-12 11:28:15 · 178 阅读 · 0 评论 -
106道Java并发和多线程基础面试题大集合(2w字),这波面试稳了~
前言Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了108个多线程的问题。这些多线程的问题来源于各大网站,可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问题讲的不对,能指正的希望大家不吝指教。# 106个问题汇总1、多线程有什原创 2022-11-12 11:07:14 · 305 阅读 · 0 评论 -
61 张图,剖析 Spring 事务,就是要钻到底
我们再小节一下,文章先介绍了事务的使用示例,以及事务的执行流程。之后再剖析了事务的源码,分为 2 块:先匹配出 louzai 对象所有关于事务的切面列表,并将匹配成功的事务属性保存到缓存;从缓存取出事务属性,然后创建、启动事务,执行业务逻辑,最后提交或者回滚事务。原创 2022-11-12 10:55:44 · 98 阅读 · 0 评论 -
太卷了,Java面试八股文~
好多人都劝他别裸辞,但最终他还是受不了领导的“说一出是一出”以及难以言说的“加班文化”,毅然辞掉了这个小leader岗。,包含了常用的Java进阶必备技术栈,项目性能优化、JVM虚拟机、多线程,从基本概念介绍,到代码实践练习,看这大纲内容确实相当细致。正好最近整理资料,发现了这套不错的内容,有面试资料,有超长超实用的视频课程。,包含一些大厂最近面试的真题汇总,毕竟有选择的情况下,谁会不愿意进大厂呢?另外一些关键的必须知道的技术栈,高大全式的总结,看这份就够。分门别类,条理很清晰,内容详实。原创 2022-11-12 10:45:41 · 131 阅读 · 0 评论