自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大头讲架构的博客

蝴蝶的力量可以颠覆苍穹,学习的力量可以强大己身,分享是一种精神,订阅是一种美德

  • 博客(189)
  • 收藏
  • 关注

原创 手把手带你一个小时学会手写netty框架,性能比netty还高!netty原理解析,从零开始学习netty,手撕netty框架

今天,小白的老师让小白写一个服务器,小白学艺不精,过来向大头求救了。那么socket究竟是什么呢?套接字接口(socket interface)是一组函数,它们和Unix I /O函数结合起来,用以创建网络应用。从Linux内核的角度来看, 一个套接字就是通信的一个端点。从Linux程序的角度来看,套接字就是一个有相应描述符的打开文件。下图来源于CSAPP的书。

2024-12-24 10:14:27 960 1

原创 JAVA-LocalDateTime时间格式化,转换时间戳和源码分析(万字长文详解)

这篇文章主要介绍了JAVA8新增的LocalDateTime时间的格式化,和时间戳的互相转换。以及对应的源码分析,有这完整的源码调用链。源码的执行分析。逐行对源码进行了注释,方便大家看懂。万字长文带图带代码示例,一文带你彻底了解时间类型。看完本篇文章,你将获得源码技术++,源码阅读量++,JAVA水平++。对于JAVA源码的解析希望能给你帮助。并提升阅读源码的思维。

2022-12-01 22:55:01 39883 3

原创 让你薪资翻倍的mysql优化面试回答,面试官都惊呆了。。

当面试官问你mysql优化首先要知道mysql分为两个层次。你要逐一从各个层次讲解mysql优化,让面试官知道,哇,原来你对mysql这么了解。面试官:你知道哪些mysql优化?我: …巴拉巴拉巴拉。mysql结构层次首先,mysql分为server层和引擎层。server层有连接器。对于连接器可以通过建立连接池来进行优化。连接器进行连接的时候会消耗资源,还会进行权限验证等操作,为了避免频繁创建连接,所以使用连接池。server层还有缓存模块,只不过缓存模块在新版本,也就是mysql8中被去掉

2020-05-14 17:05:56 2691

原创 为什么大厂都在使用DDD?

领域驱动设计(Domain-Driven Design,简称DDD)是由美国软件专家埃里克・埃文斯(Eric Evans)在2004年提出的软件设计方法论,旨在解决复杂软件系统开发过程中业务逻辑与技术实现之间的矛盾,提升软件系统的可维护性、可扩展性和灵活性。What: 它是一种设计思想、一种指导原则。When: 设计微服务的时候,或者说,不知道怎么拆分微服务的时候。Why:为什么要用它,上面其实说了,不知道怎么拆分微服务的时候,可以用它来指导你如何拆分微服务。How:这个后面讲。

2025-03-21 10:06:32 337

原创 MySQL小白数据库零基础教程-ER图设计实战教程-学不会你来找我

通常来说,ER图是在设计阶段完成的,先有ER图再有表结构。可如果你已经有了表结构,有没有办法生成ER图呢?也是有方法的,比如著名的Navicat工具,就支持这么做。此外,还有一个方法,就是使用在线工具dbdiagram,这个工具可以导入现有的SQL,会生成ER图,如下。这个网站是通过左边的一个叫dbml的语言来生成ER图的,也支持直接导入SQL,转化成dbml格式再生成ER图。

2025-03-21 10:04:26 1134

原创 MySQL零基础教程SQL篇,DML增删改查详细讲解。适合小白的零基础教程。

可以给字段和表定义别名,通过as指令实现。别名可以解决一些字段名冲突或者字段名过长的问题。示例:department字段给一个别名是depart。

2025-02-18 10:58:08 1054

原创 实操教程|七招教你玩转DeepSeek AI大模型,我求求你别再花钱买课了!

通过这些技巧,可以让AI更好的为我们服务,你会发现AI变成了生活中的小助手,而不再是人工智障。工具永远都只是工具。如何用好工具才是我们应该做的。没有完美的工具,只有完美使用工具的人类。通过AI提效,解放双手。有更多的时间学习、玩耍、祝大家都升职加薪!!!

2025-02-18 10:34:16 918

原创 MySQL小白零基础教程-基础SQL篇

使用语句,代表没有这个数据库,才会进行创建。如果已经有了,则不会再创建了。是设置字符集,推荐设置为utf8mb4字符集,COLLATE则使用默认的就可以了。这里说一下utf8和utf8mb4这两个字符集的区别。utf8字符集:在MySQL中实际上是一个有限的字符集,它只支持最多3字节的UTF-8字符。这意味着它不能存储所有可能的Unicode字符,特别是那些需要4字节表示的字符(如某些表情符号)。utf8字符集支持的Unicode范围是U+0000到U+FFFF,即基本多语言平面(BMP)。

2025-02-10 15:38:10 880

原创 10分钟教你本地部署DeepSeek R1,彻底解决“服务器繁忙,请稍后再试”问题。

这样就算安装完成了,可以使用命令行或者界面,看个人喜好了!通过以上步骤,您可以在本地部署 DeepSeek。请根据实际需求调整配置并确保所有依赖项已正确安装。如果在运行过程中遇到问题,请参考官方文档或联系技术支持团队。希望这份指南对您有所帮助!

2025-02-10 14:39:25 1046

原创 ChatGPT要被DeepSeek取代了?

大家好,我是大头,98年,职高毕业,上市公司架构师,大厂资深开发,管理过10人团队。

2025-02-05 17:26:28 752

原创 MySQL小白零基础教程概念篇,从零开始教你什么是mysql数据库

介绍了上面的概念,我们现在明白了MySQL数据库是什么了吧。MySQL数据库是OLTP数据库基于关系模型的关系数据库管理系统实现了SQL标准,可以使用SQL进行控制,并扩展了自己的东西。可以使用ER图来设计关系模型具有一些高级特性。

2025-02-05 17:24:18 902

原创 原理揭秘!MySQL查询是如何执行的?如何选择最优的查询路径?大厂面试加分项!

MySQL查询路径是指查询优化器在执行查询时所选择的具体执行步骤和顺序。查询优化器的目标是找到最高效的方式来执行查询,以最小化资源消耗(如CPU、I/O、内存等)和查询响应时间。解析(Parsing):将SQL语句解析成内部的逻辑结构,如语法树(Syntax Tree)。检查SQL语句的语法是否正确。预处理(Preprocessing):检查用户是否有权限执行该查询。检查表和列是否存在。重写查询,如展开视图、处理子查询等。

2025-01-26 14:18:35 735

原创 如何30天让你的MySQL技能从零基础到专家级?面试官都被我震住了!

大家好,我是大头,98年,职高毕业,上市公司架构师,大厂资深开发,管理过10人团队,我是如何做到的呢?这离不开持续学习的能力,而其中最重要的当然是数据库技术了!对于所有开发来说,都离不开数据库,因为所有的数据都是要存储的。其他的技能可能会变,比如业务开发、算法开发、基础设施开发,也不管你是用Java、php、golang、C++等等。你都会用到数据库,因此,学好数据库对于我们来说就至关重要了。接下来大头将分享自己学习数据库的路线以及心得。后续也会根据这个路线分享所有的学习方法以及实操案例。

2025-01-26 10:41:32 974

原创 大厂遇到Bug是如何快速定位解决的?小厂如何处理线上问题呢?

在互联网企业中,P0代表最高级别的事故,通常是核心业务重要功能不可用,且影响范围广泛。以目前这起事故的严重程度来看,绝对是妥妥的P0级别事故了。除此之外,还会对于涉及到的金额进行资金定损,比如这一次事故中,造成了多少资金损失。大家别看只是短短的5分钟,对于支付宝这个体量来说,其造成的损失数额绝对不小,不过对于支付宝来说,可能洒洒水啦。那么除了P0事故来说,还有别的事故等级吗?当然是有的,还有P1、P2等等,其中P0是最严重的。

2025-01-19 15:54:46 951

原创 黄子韬送车,抖音却出现重大bug,又有一个人的年终奖泡汤了

有人说服务端是好的,只是安卓端的老代码使用的是Int,因此造成了这个Bug,这不就是传说中的屎山代码吗?也不知道又有哪些人要倒霉的没有年终奖啦,大家也要注意这个问题啊~

2025-01-19 15:53:00 985

原创 干货分享|JAVA面试必问,80%程序员都回答不上来,Spring Cloud GateWay底层如何实现的,零基础一个小时从零实现网关,图文并茂,实操教程

刚入行的男大学生程序员,课程里涉及网关实现,一脸懵,成绩受影响。别人靠死记硬背,咱得真正掌握。搞懂从零实现网关,竞赛、实习都能脱颖而出,未来求职更有底气,别让机会溜走。掌握从零实现网关后,咱在团队里可就牛了!别人还在为网关问题抓耳挠腮,咱轻松搞定,项目推进顺利,老板猛夸,加薪升职指日可待,收入直奔 30 万,成为团队核心人物。有经验的男程序员用从零实现的网关优化项目,市场上同类项目几十种,咱的凭借高性能、稳定的网关吸粉无数,客户订单不断,同行只能干瞪眼,名利双收超爽。

2025-01-03 18:48:58 933

原创 你知道ArrayList为什么总是比LinkedList好吗?有了LinkedList为什么还要有ArrayList?

接口就是Interface,也可以是ADT(Abstract Data Tructure), 当定义一个接口的时候,实际上是一种规范,一种约束。接口定义了一些方法,也就是支持哪些操作。这里拿Java的List接口举个例子。Listadd(E element): 表示List接口支持add操作,将一个元素添加到list中,至于如何实现,不重要。remove(E element): 表示List接口支持remove操作,将一个元素从list中移除,至于如何实现,不重要。

2025-01-03 18:41:13 554

原创 我用AI打造了一个爆款视频,附实操教程,图文并貌!

简介也可以让AI生成。同样使用豆包。输入提示词。赛道领域:可爱小猫治愈系视频产品类型:大胖橘猫的一天目标用户画像:性别:不限,可根据不同性别定制化。年龄段:不限。地域:不限。职业:工作劳累的上班族和大学生,需要放松的人。收入:收入在5万-30万之间的。豆包给我输出的。接下来就可以发出去啦首先要进行选择题目,选择短视频平台受众。接下来利用AI生成剧本、分镜、图片、视频、音频。然后通过剪辑软件进行合并成一个视频。最后在去除水印。还可以通过AI生成标题和简介。就可以去发布啦!

2024-12-24 10:21:50 1373

原创 java gc横向测评,如何选择合适的GC策略?

从GC的发展历史来看,目标是两个尽可能减少停顿时间,不影响业务。尽可能减少GC时间,让GC更快。通过以上的对比可以发现,堆的大小不能设置的太小导致OOM,同样当堆设置的过大对于性能也并没有什么提升,比如2g对比1g内存,就没什么提升。从512m和1g内存对比上来看,ZGC最优,不仅减少了GC次数,性能也很好。而G1GC的优化最好,因为它的GC次数最多,但是性能同样强大。从结果来看最好的是ZGC,其次可以选择G1GC或者并行GC。

2024-12-05 15:06:07 1044

原创 你不知道的JVM原理

从GC的发展历史来看,目标是两个尽可能减少停顿时间,不影响业务。尽可能减少GC时间,让GC更快。基本上G1 GC是通用的,如果条件允许上ZGC或Shenandoah。JDK8的默认GC是Parallel GC,JDK9后一直都是G1 GC。从这里也能看出G1 GC性能更好。更通用。如果系统考虑吞吐优先,CPU资源用来处理业务,用Parallel GC如果系统考虑低延迟优先,每次GC时间尽量短,用CMS GC如果系统内存堆大,平均GC时间可控,使用G1 GC。

2024-11-28 08:11:05 687

原创 手把手带你读java源码之JAVA-stream结果态操作(万字图文详解)

方法在创建结果态的时候增加的,代码在下面,一起回顾一下。这个方法很简单,就是看collector的characteristics是否无序。最后,回到开始的collect方法中。作为结果态方法,不再返回stream类型的对象。这是在中间态节点生成的时候,创建无状态对象的时候添加的。这是在中间态节点生成的时候,创建无状态对象的时候添加的。构造一个结果态对象,对引用类型的值执行可变的计算,规约。预估管道的结果态操作并产生一个结果。创建完结果态对象以后,将结果态对象传入。类型的对象作为参数。

2024-11-27 15:33:41 442 1

原创 CSAPP fall2015 深入理解计算机系统 Cache lab详解

cache lab 缓存实验。

2024-01-23 17:57:12 1042 1

原创 spring Cloud Stream 实战应用深度讲解

spring cloud stream是一个框架,用于构建与共享消息传递系统连接的高度可扩展的事件驱动微服务。该框架提供了一个灵活的编程模型,该模型建立在已经建立和熟悉的 Spring 习惯用语和最佳实践之上,包括对持久发布/订阅语义、消费者组和有状态分区的支持。核心模块。

2024-01-23 11:44:35 2796 3

原创 CSAPP fall2015 深入理解计算机系统 lab1 datalab详解

data lab 数据实验这个数据实验请在linux机器上面运行,实测mac m1本跑不起来。windows没试过。centos上需要安装好gcc运行环境。如果跑不起来记得安装下面这个东西:运行make btest的时候可能会有warning提示,不用管,这个时候其实已经创建完btest了,可以直接运行btest。

2023-07-06 15:06:53 516

原创 手把手带你读java源码之JAVA-stream-中间操作map,flatmap,filter,unordered,peek,distinct,sorted,limit,skip(万字图文详解)

这篇文章主要介绍了JAVA8新增的stream流,作为最常用的一个工具,你是否常常不会用或者用错呢?本文自顶向下一步步的手把手带你通读它的源码,做到不仅会用,还可以用好,甚至学习其中的精妙之处以后自己也可以实现。本文中包括了所有中间操作,比如map,faltMap,filter,unordered,peek,distinct,sorted,limit,skip。本文章属于手把手带你读java源码系列文章,做到每一行源码都有注释,告诉你其中的原理和为什么要这么做。

2023-03-03 17:28:18 1730

原创 手把手带你读java源码之JAVA-stream数据结构和初始化源码详解(万字长文详解)

这篇文章主要介绍了JAVA8新增的stream流,作为最常用的一个工具,你是否常常不会用或者用错呢?本文自顶向下一步步的手把手带你通读它的源码,做到不仅会用,还可以用好,甚至学习其中的精妙之处以后自己也可以实现。本文章属于手把手带你读java源码系列文章,做到每一行源码都有注释,告诉你其中的原理和为什么要这么做。无论你是小白,新手还是高手,相信本文都会为你带来一些收获。跟着本系列文章通读所有java源码,用大白话告诉你,源码并不难。我可以,你也可以。

2023-02-16 17:12:24 1100

原创 spring框架中的IOC实现

但是呢,我们这里说的是`面向对象编程中的一种设计原则`。他的全称是`Inversion Of Control`即控制反转。这里有两个单词`控制`和`反转`。这两个单词单独拿出来会发现,都缺少主语。比如- 谁控制了谁?- 什么东西发生反转了呢?

2022-11-14 19:07:17 485

原创 php实现归并排序算法

php实现归并排序算法归并排序算法的复杂度是O(nlogn)。代码如下,完整代码在github上面,只需要clone下来执行composer install然后执行 php artisan test:mergeSort 就可以看到结果了 /** * 归并排序把数据逐步分解,然后对分解后的数据进行排序,最后合并到一起 * * @return mixed */ public function handle() { $this-&

2022-03-07 16:38:30 412 2

原创 有序数组去重算法

有序数组去重算法有序数组去重算法的复杂度是O(n)。代码如下,只进行一次循环,复杂度O(n)完整代码在github上面,只需要clone下来执行composer install然后执行 php artisan test:sortDeduplicate 就可以看到结果了 /** * 因为是有序数组,为了提高去重效率,取一个元素往后一直比对,如果相邻的相等表示是重复的 * 继续往后,直到不相等,也就是遇到一个不重复的为止,将这个不重复的元素移动到该元素的下一个 * 然

2022-02-18 17:31:28 426

原创 无序数组去重算法

无序数组去重算法无序数组去重算法的复杂度是O(n2)。代码如下,首先进行外层循环,复杂度O(n),然后查找这个元素之前的元素中有没有重复的,复杂度O(n),如果有就删除,复杂度O(1),没有就下一个元素,复杂度O(1)。加起来复杂度O(n2)。完整代码在github上面,只需要clone下来执行composer install然后执行 php artisan test:unsortDeduplicate 就可以看到结果了 /** * Execute the console comma

2022-02-18 14:45:57 863

原创 PHP-elasticsearch/elasticsearch包分词功能实现及源码解析

安装直接使用 composer 安装 ES 包就可以了,这里使用官方的 elasticsearch/elasticsearch 这个包。composer require elasticsearch/elasticsearch安装好以后,创建一个客户端。hosts如果是多个节点的集群,那么可以配置一个二维数组。$hosts = [ 'host' => '127.0.0.1', 'port' => '9200', 's

2022-01-19 11:22:10 2051

原创 新概念英语第一册学习笔记

新概念英语第一册21祈使句请给我一本书give me a book please请递给我一本书pass me a bookpass me:递给哪一本书which book?这一本书吗this one?红色的这本the red one不是那本not that one给你here you are语法you give me a book主语 谓语 宾语主语:人称代词主格 i you he she we they宾语:人称代词宾格 me you him her us th

2022-01-15 20:31:08 2086

原创 ElasticSearch十五--ES-基于词项和基于全文的查询

term queryterm是表达语义的最小单位 ,搜索和利用统计语言模型进行自然语言处理都需要处理 term特点term level query: term query/range query/ exists query / prefix query / wildcard query在ES里面,term 查询不做分词,把term查询作为一个整体词汇进行查询,进行一个精确匹配,并对匹配结果进行算分可以通过 Constant Score 将查询转换成一个 filtering ,避免算分,并利用缓

2021-10-21 12:55:00 687

原创 学堂在线C++程序设计第十章学习笔记

学堂在线C++程序设计第十章学习笔记多态运算符重载重载规则C++ 几乎可以重载全部的运算符,而且只能够重载C++中已经有的不能重载的:".",".*","::","?:"重载之后运算符的优先级和结合性都不会改变运算符重载是针对新类型数据的实际需要,对原有运算符进行适当的改造。例如:使复数类的对象可以用 + 运算符实现加法是时钟类对象可以用 ++ 运算符实现时间增加1秒重载为类的非静态成员函数重载为非成员函数双目运算符重载为成员函数重载为类成员的运算符函数定义形式:函数类

2021-08-19 14:32:30 259

原创 数据库系统原理第十节

数据库系统原理第十节数据库设计数据查询视图什么是视图视图是一个对象,他是数据库提供给用户的以多种角度观察数据库中数据的一种重要机制视图不是数据库中真实的表,而是一张虚拟表,其自身并不存储数据视图的优点集中分散数据简化查询语句重用SQL语句保护数据安全共享所需数据更改数据格式创建视图or replace 防止报错,存在替换,不存在创建with check option 增删改查的时候检查视图条件create or replace view view_name [(co

2021-08-15 20:00:21 166

原创 数据库系统原理第九节

数据库系统原理第九节数据库设计数据查询where 子句和条件查询between 2 and 4 包含2,4in (1,2,4)is nullis not null子查询表子查询行子查询列子查询标量子查询比较运算符包括ALLSOMEANY结合existsgroupgroup by id asc|desc with rolluphavinggroup by id having count(*) < 3orderorder by id asc|descgr

2021-08-15 19:59:48 164

原创 学堂在线C++程序设计第九章学习笔记

学堂在线C++程序设计第九章学习笔记继承与派生继承的基本概念和语法继承与派生继承与派生是同一过程从不同的角度看保持已有类的特性而构造新类的过程称为继承在已有类的基础上新增自己的特性而产生新类的过程称为派生被继承的已有类称为基类派生出的新类称为派生类直接参与派生出某类的基类称为直接基类基类的基类甚至更高层的基类称为间接基类继承的目的实现设计与代码重用派生的目的当新的问题出现,原有程序无法解决时,需要对原有程序进行改造单继承时候派生类的语法class 派生类名:

2021-08-12 14:54:08 164

原创 学堂在线C++程序设计第八章学习笔记

学堂在线C++程序设计第八章学习笔记指针与数组定义指向数组元素的指针定义与赋值例如: int a[10], *pa;pa = &a[0] 或 pa = &a*(pa +1)就是 a[1]也可以 pa[1]指针数组:数组的元素是指针类型例如:Point *pa[2];由pa[0],pa[1]两个指针构成指针与函数为什么需要指针做参数需要数据双向传递时(引用传递也可以达到此效果)需要传递一组数据,只传首地址运行效率比较高指针类型的函数若函数的返回类型是指针类型

2021-08-09 12:49:04 251

原创 数据库系统原理第八节

数据库系统原理第八节数据库设计数据更新插入数据insert valuesinsert into table_name[(col_name)] values ();insert setinsert into table_nameset col_name = '值', col_name = '值';insert selectinsert into table_nameselect * from table_name;删除数据delete from table_name wh

2021-08-08 17:22:57 157

原创 数据库系统原理第七节

数据库系统原理第七节数据库设计数据定义连接数据库mysql -u root -p创建数据库create database my_test;查看数据库show databases;删除数据库drop my_test;进入数据库use my_test;表定义创建表数据表被定义为字段的集合按 行 和列的格式存储每一行代表一条记录每一列代表记录中一个字段的取值create [temporary] table tbl_name( 字段名1 数据类型 [列完整性约束条件]

2021-08-07 21:13:28 148

空空如也

空空如也

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

TA关注的人

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