自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(226)
  • 收藏
  • 关注

原创 Git使用指南

在安装过程中,请确保选中“Use Git from the Windows Command Prompt” 选项,这能让 Git 命令用于 Windows 命令行界面。现在,Git 已经成功安装在您的计算机上,并可以通过 Windows 命令行界面或任何您选择的 Git GUI 工具使用。macOS 已经预装了 Git,可以在终端输入以下命令进行检查,看是否已经安装过 Git:git --version。在命令行输入以下命令,以验证是否成功安装了 Git:git --version。

2024-07-22 09:58:50 537

原创 黑马程序员--分布式搜索ElasticSearch学习笔记

什么是ElasticSearch?一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能什么是Elastic Stack(ELK)?它是以ElasticSearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch什么是Lucene?是Apache的开源搜索引擎类库,提供了搜索引擎的核心API索引库操作有哪些?创建索引名:PUT /{索引库名}查询索引库:GET /{索引库名}

2024-07-16 10:08:53 148

原创 一步步教你修改Windows本地hosts文件,轻松修改域名指向!

当我们在浏览器中访问一个域名时,操作系统会首先检查hosts文件,如果存在对应的映射关系,就会将域名解析到相应的IP地址上。编辑hosts文件: 在hosts文件的最后一行,添加你需要的域名和对应的IP地址。编辑器选择:你可以使用系统自带的记事本来编辑hosts文件,但为了方便和舒适的编辑体验,我们推荐使用一些专业的文本编辑器,如Notepad++、Sublime Text等。导入hosts文件: 在文本编辑器中,选择“文件” -> “打开”,导航到上一步找到的hosts文件位置。

2024-07-15 14:19:54 225

原创 设计模式超强总结

设计模式是在软件开发过程中经常遇到的问题的**通用解决方案**。它们是经过无数的验证和经验积累的**最佳实践。**首先,设计模式是一些前人经验的一些总结,所以,当遇到相似的问题的时候,我们可以直接借鉴好的设计模式来实现,这样可以大大**降低我们的试错成本和迭代成本**。可以大大**提升我们的开发速度**。> 不要认为只有23种,只要是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结都是软件设计模式的。比如说MVC。

2024-07-10 16:30:08 701

原创 ✅从B+树的角度分析为什么单表2000万要考虑分表??

我们都知道,Innodb中的数据页默认大小是16KB,并且B+树的每个节点都对应着一个数据页,包括根节点、非叶子节点和叶子节点。理论上来说,只要磁盘空间够,存多少都可以,但是随着数据量的增多,查询效率会下降的,根据实际经验来说,单表抗2000万数据量,通过索引查询问题不大,那么这个数字确实是一个经验值,但是他背后是不是有一定的计算逻辑呢?有了以上的背景之后,我们就可以基于B+树的高度及结构,还有数据页的大小,来估算单表的数据量了。我们都知道,B+树的叶子节点和非叶子节点存储的内容是不一样的。

2024-07-08 22:28:59 256

原创 ✅Redis的zset实现排行榜,实现分数相同按照时间顺序排序,怎么做?

使用zset提供的排序功能,可以按照分数从高到低排序,**但是如果分数相同,按照默认的排序规则会按照value值排序**,而不是按照时间顺序排序。假设现在的时间戳是1680417299000,除以1e13得到0.1680417299000,再加上一个固定的分数(比如10),那么最终的分数就是10.1680417299000,可以将它作为zset中某个成员的分数,用来排序。实现了分数倒序排列,分数相同时间戳大的排在了前面,这和我们的需求相反了,所以,就需要在做一次转换。

2024-07-08 22:21:21 257

原创 约到 B 站一面,什么水平?

在 JDK1.7 中,HashMap 整个扩容过程就是分别取出数组元素,一般该元素是最后一个放入链表中的元素,然后遍历以该元素为头的单向链表元素,依据每个被遍历元素的 hash 值计算其在新数组中的下标,然后进行交换。这样的扩容方式会将原来哈希冲突的单向链表尾部变成扩容后单向链表的头部。而在 JDK 1.8 中,HashMap 对扩容操作做了优化。

2024-07-08 15:04:44 762

原创 真怕了!武汉某小厂面试,都要扛不住了。。。

抽象方法抽象方法是接口的核心部分,所有实现接口的类都必须实现这些方法。抽象方法默认是 public 和 abstract,这些修饰符可以省略。默认方法默认方法是在 Java 8 中引入的,允许接口提供具体实现。实现类可以选择重写默认方法。静态方法静态方法也是在 Java 8 中引入的,它们属于接口本身,可以通过接口名直接调用,而不需要实现类的对象。私有方法私有方法是在 Java 9 中引入的,用于在接口中为默认方法或其他私有方法提供辅助功能。这些方法不能被实现类访问,只能在接口内部使用。

2024-07-08 15:01:41 818

原创 Jvm杂谈

Full GC(Full Garbage Collection)是指对整个堆内存进行垃圾回收的过程。在进行 Full GC 时,会对年轻代和老年代(以及永久代或元数据区)中的所有对象进行回收。Full GC 是一种较为耗时的操作,因为它需要扫描和回收整个堆内存。在 Full GC 过程中,应用程序的执行通常会暂停,这可能会导致较长的停顿时间(长时间的停顿会影响应用程序的响应性能)。为了避免频繁的 Full GC,通常采取一些优化措施,如合理设置堆大小、调优垃圾回收参数、减少对象的创建和存活时间等。

2024-07-03 11:17:08 633

原创 理想今年校招薪资,有点猛。。。

缓存雪崩:当大量缓存数据在同一时间过期(失效)或者 Redis 故障宕机时,如果此时有大量的用户请求,都无法在 Redis 中处理,于是全部请求都直接访问数据库,从而导致数据库的压力骤增,严重的会造成数据库宕机,从而形成一系列连锁反应,造成整个系统崩溃,这就是缓存雪崩的问题。缓存击穿:如果缓存中的某个热点数据过期了,此时大量的请求访问了该热点数据,就无法从缓存中读取,直接访问数据库,数据库很容易就被高并发的请求冲垮,这就是缓存击穿的问题。缓存穿透:当用户访问的数据,既不在缓存中,也不在数据库中。

2024-06-28 09:14:16 884

原创 双亲委派模型是 什么?

它是指当一个类加载器需要加载一个类时,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最 终都应该传送到最顶层的启动类加载器中,只有当父加载器反馈自己无 法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去完成加载。双亲委派模型是 Java 类加载器的一种工作机制。

2024-06-27 17:07:55 274

原创 synchronized 和Lock有什么区别?

synchronized 可用来修饰普通方法、静态方法和代码块,当一个线程访问一个被 synchronized 修饰的方法或者代码块时,会自动获取该对象的锁,其他线程将会被阻塞,直到该线程执行完毕并释放锁。这样就保证了多个线程对共享资源的操作的互斥性,从而避免了数据的不一致性和线程安全问题。count++;i < 1000;t2.start();t2.join();

2024-06-27 16:39:48 553

原创 有点惊喜,理想一面通关了!

指多个线程按照申请锁的顺序来获取锁,线程直接进入队列中排队,队列中的第一个线程才能获得锁。公平锁的优点在于各个线程公平平等,每个线程等待一段时间后,都有执行的机会,而它的缺点就在于整体执行速度更慢,吞吐量更小。多个线程加锁时直接尝试获取锁,能抢到锁到直接占有锁,抢不到才会到等待队列的队尾等待。非公平锁的优势就在于整体执行速度更快,吞吐量更大,但同时也可能产生线程饥饿问题,也就是说如果一直有线程插队,那么在等待队列中的线程可能长时间得不到运行。

2024-06-25 16:31:35 908

原创 泪崩,中厂一面也要输了。。。

分享过很多小厂和大厂的后端面经,这次来分享互联网中厂的面经,面试难度也是刚好介于大厂和小厂之间。除了技术问题之外,互联网中厂面试环节也需要手撕算法,所以想冲中大厂的同学们,算法不能拉下。这次分享,问题不算特别多,15 个左右,再加上 1 个算法题,大家看看难度如何?考察的知识点;Java:HashMap、ConcurrentHashMap、volatile、sychronized、线程池网络:TCP三次握手、四次挥手、netstat 命令mysql:B+树和B树、聚簇索引和非聚簇索引。

2024-06-22 20:30:47 954

原创 好难!腾讯面试体验已结束。。。

还有 1 个月,秋招提前批就准备开始了 ,提前批持续 1 个月后,就正式进入秋招阶段,也就是 8-9 月份开始。还在校的同学,大家要重视秋招,秋招可以说校招阶段最多企业招聘的时间段,明年春招的话,一般是补录阶段,机会肯定没有秋招的多。所以不要觉得还有一年才毕业,就觉得时间多,实际上黄金的校招求职阶段就是几个月后的秋招这段时间,大概会持续 12 月份。那么在这段时间,我还会继续跟大家拆解后端开发的面经,协助大家一起准备面试的过程,以面试题为导向来复习知识点是一种比较高效的方式。

2024-06-21 10:32:11 911

原创 RabbitMQ基础

同步和异步- 同步: 当前服务中代码基于Feign直接调用另一个微服务.- 异步: 当前服务中只需要发布消息给broker,另外订阅的微服务就会去执行了!(耦合度低)* 同步和异步的选择?- 大多数情况下都会选择同步通讯,我们对时效性要求较高.而且一般在微服务A中查询到的信息在微服务B中要用到,必须使用同步调用!!!异步调用无法等到异步调用后被调用的微服务的处理结果!- 如果不需要处理结果,只是让该微服务去做一件事.而且对并发要求比较高,还希望降低服务之间。

2024-06-19 17:02:15 706

原创 去邮储银行面试了,压力不大!

是通过行级锁来实现的,序列化隔离级别下,普通的 select 查询是会对记录加 S 型的 next-key 锁,其他事务就没没办法对这些已经加锁的记录进行增删改操作了,从而避免了脏读、不可重复读和幻读现象。

2024-06-19 16:45:48 745

原创 第一章--计算机网络和因特网

一.计算机网络的定义二.计算机网络的分类按 交换方式 分类:按 传输介质 分类:有线网络(光纤通信)和无线网络(wifi技术)按 范围 划分广域网(WAN): 可以横跨国家 地区.是因特网的核心部分,它为因特网核心路由器提供远距离的高速连接.互连分布在不同国家和地区的城域网或局域网城域网: 通常互连大量机构 企业以及校园局域网局域网(LAN): 一个企业或者学校,可能会有多个互连的局域网,这样的网络常称为校园网/企业网。

2024-06-19 14:55:35 985

原创 公司新来小伙,把 MyBatis 替换成 MyBatis-Plus,上线后被开了.....

在一个老项目中,数据库采用的是 MySQL 5.7.36,ORM 框架使用的是 MyBatis 3.5.0,而的版本是 5.1.26。有一天,一个精力充沛、充满折腾精神的年轻人加入了项目。他觉得 MyBatis 的使用不够简单,需要写的代码比较多,因此认为有必要将其替换为 MyBatis-Plus。关于组件的升级或旧代码的调整,都可能引发连锁反应,影响重大。我的观点是:❝能不动就不要动,改好没功劳,改坏要背锅,吃力不讨好,又不是必须要改。❞如果不得不改,那就需要全面的测试。

2024-06-12 10:27:32 1017

原创 一文让你彻底搞懂AQS(通俗易懂的AQS)

【Thread 在 start 的实现源码中做了判断看当前线程的状态是不是等于 0,也就是是否为新建状态NEW,如果线程不是新建状态 NEW,则会抛出非法线程状态异常 IllegalThreadStateException。Runnable(JDK1.0)比Callable(JDK1.5)诞生得早,后来当需要拿到线程的返回值时(使用频率低),为了不增加学习成本、改动原有Thread写法,新创建了FutureTask来接收线程执行的返回值。都没有返回值,当线程执行完成之后,主线程没法拿到新线程的执行结果。

2024-06-11 17:23:18 270 1

原创 完了,又被腾讯面试官拷打了 。。。

这两个问题就分析到这里,本质上就是考察大家对 Linux 内核在 TCP 握手和数据传输阶段做了什么事情。话说回来,感觉腾讯确实很喜欢问网络编程的底层原理啊/

2024-06-11 14:33:34 510

原创 腾讯三面:一台服务器,最大支持的TCP连接数是多少?

一个服务端进程最多能支持多少条 TCP 连接?如果在不考虑服务器的内存和文件句柄资源的情况下,理论上一个服务端进程最多能支持约为2的48次方(2^32 (ip数) * 2^16 (端口数),约等于两百多万亿!但是在实际中是支持不了这个数值的,每个 TCP 连接都是一个文件,会占用文件句柄资源,也会占用一定的内存空间。一台服务器最大最多能支持多少条 TCP 连接?一台服务器是可以有多个服务端进程的,每个服务端进程监听不同的端口,当然所有65535个端口你都可以用来监听一遍。

2024-06-11 14:23:02 951

原创 2.10进程同步,进程异步

进程按照某种规则在有顺序的执行进行着...不同的进程按照不可预知的速率运行着指令..

2024-06-07 16:07:14 93

原创 2.9调度算法的评价指标

cpu利用率: 忙碌的时间占总时间的比例。

2024-06-07 15:57:59 139

原创 2.8进程调度时机

进程调度的方式:

2024-06-07 15:04:31 123

原创 2.7进程的挂起态与七状态模型

2024-06-07 14:55:58 111

原创 2.6处理机调度的概念与层次

高级调度- 中级调度- 低级调度。

2024-06-07 14:53:20 178

原创 2.5线程的概念和多线程模型

每个线程也都有一个TCB,用于管理多个线程的,类似进程的PCB。线程是最小的执行调度单元,一系列指令流,交给cpu来执行...可以把线程理解为轻量级的进程,cpu的服务对象是线程了...1:1内核线程实现(Java)(1) 1:N的用户线程模型。(2)1:1的内核线程模型。多线程提高了并发度...(3)M:N的混合型。

2024-06-07 11:22:40 216

原创 2.4进程通信

1.一个进程不能直接访问另一个进程的地址空间.一个进程是操作系统分配的一块单独的空间...* ReentryLock的Condition的await() signal()* synchronized的Object的wait() notify()* LockSupport.park()和unpark()的方式。* 输入 输出流的方式.java.io java.nio。* volatile关键字。* 两个进程间访问是互斥的。* 基于数据结构的共享空间。* 基于存储区的共享空间。一.线程之间的通信方式。

2024-06-07 11:16:06 203

原创 2.3进程控制

进程控制就是实现进程状态之间的转换!

2024-06-07 11:08:43 108

原创 2.2进程的状态-转换

BLOCK (EntryList中等待的)1.复习: 线程的状态。

2024-06-07 11:05:39 98

原创 2.1进程的概述

PCB是操作系统对各个进程管理的一个数据,PCB存储了操作系统对进程进行管理的各种数据信息..PCB是操作系统对各个进程管理的一个数据,PCB存储了操作系统对进程进行管理的各种数据信息..* 线程之间通信较为简单,例如多个线程访问一个进程内部的共享数据的场景就是线程间通信....用于管理资源 协调进程 管理内存等功能,一个进程是一个程序的实例,有些程序可以有。* 线程是进程的子集,一个进程内部有多个线程...线程更为轻量级....* 进程通信较为复杂,进程间的通信需要例如http等协议...

2024-06-07 11:03:28 106

原创 系统调用总结

且将cpu的执行权交给内核态的操作系统,由操作系统来完成一些特权指令的执行(read write..等操作)系统调用是发生在用户态(库函数中调用了系统调用),但是系统调用的处理是发生在内核态!注意: 当上层用户态进行了一些系统调用的接口的库函数后,会从用户态转换为核心态,库函数底层都是封装了系统调用....2. 系统调用和库函数的区别。

2024-06-07 10:54:29 140

原创 中断和异常

进程在用户态有些指令不能完成,必须通过系统调用(read)(中断信号)的方式让操作系统来完成一些操作!这时就会从用户态切换为内核态,对系统调用(read)(中断信号)进行处理!

2024-06-07 10:48:22 94

原创 操作系统的运行机制和体系结构

内核是计算机上配置的底层软件,操作系统最核心的部分。* cpu的两种状态。

2024-06-07 10:42:09 114

原创 第一章操作系统

虚拟处理器技术(时分复用技术),实际上只有单核CPU,用户看来却有6个CPU为自己服务..多个应用程序超过cpu核数,并发性不可少。

2024-06-07 10:38:26 200

原创 北京某小厂面试,心凉一半。。。

红黑树是一种自平衡的二叉查找树,具有以下特点:每个节点要么是红色,要么是黑色。根节点是黑色。每个叶子节点(NIL节点)是黑色。如果一个节点是红色,则其子节点必须是黑色。从任一节点到其每个叶子节点的所有路径都包含相同数目的黑色节点。红黑树的自平衡性质可以保证在进行插入、删除等操作后,树的高度保持在O(log n)内,从而保持了较高的查找、插入和删除效率。下面是红黑树插入节点的过程,这左旋右旋的操作,就是为了自平衡。

2024-06-07 10:17:22 572

原创 真怕了!深圳某小厂,面完之后没消息。。。

最近面了,又是被八股拷打的一天,又是被自己菜哭的一天。问的内容还蛮多的,可惜复习没到位,面完之后没消息了。。给大家解析一波,大家看看难度如何?你扛得住吗?反正我写了快 1.6w 字。

2024-06-05 15:06:27 1005

原创 集合判断是否为空isEmpty()与==null的区别

Java中的空指针异常确实是令人头疼的问题,今天抽空详细梳理下关于集合判断是否为空isEmpty()与==null的区别,尽量避免触发空指针异常。1、由上述得知判断list集合不为空的时候可以采用if(list!=null&&!,如下所示:if(list!= null &&!System.out.println("操作list数据");2、使用CollectionUtils.isEmpty()直接判断,推荐使用if(!System.out.println("操作list数据");

2024-05-28 16:29:54 682

原创 IDEA中配置文件中文被转义

解决方法:勾选【Settings】–》【Editor】–》【File Encodings】 --》【勾选 Transparent。如图,配置文件中的中文被转转义了。配置完成后,中文可正常显示。

2024-05-28 16:27:38 216

操作系统的概念,功能 复习资料1

操作系统的概念,功能 复习资料1

2024-05-29

空空如也

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

TA关注的人

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