自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 跳槽一定用得上的大厂Java题库!

2023年已经接近尾声了,疫情的影响也在逐渐减小,市场慢慢复苏。不过最近还是会有一些读者粉丝朋友反馈,“Java市场饱和了”、“大环境还是不好”、“投几十个简历都没有一个约面的”。其实并不是岗位需求量变少了,是越来越多的公司需要【中、高级Java工程师】。

2023-10-30 11:15:15 151

原创 Java8 新写法:优雅处理空值,告别冗长的 if-else!

Java 8 的这些特性使得 Java 编程更加现代化、灵活和高效。它们使得开发者能够以更函数式的方式编写代码,从而提高了代码的可读性和可维护性,同时也提供了更好的性能和并发处理能力。

2023-09-20 11:01:19 641

转载 让AI替你打工?GPT提升开发效率指南

开发者日常的整个工作流中,AI 大模型能做什么?ChatGPT 等 AI 大模型能不能通过开发者的指引,一步步完成从技术方案输出、编码、测试、发布到运营维护的整套流程?使用中有什么避坑点?本文从实际研发流程的各个环节出发,总结分享了 AI 大模型对研发效能的提升实践。欢迎围观~

2023-05-29 14:26:07 240

原创 六个高频 MySQL 面试题

六个高频 MySQL ,最全Java面试题库文档!总共651页!

2022-08-11 10:37:37 3611

原创 Go 全套学习路线图

Go 学习路线图,包括基础专栏,进阶专栏,源码阅读,实战开发,面试刷题,必读书单等一系列资源。

2022-06-09 20:46:15 370

原创 并发和并行的区别

并发和并行的区别

2022-06-09 09:35:30 228

原创 Go Slice详解

GO slice代表变长的序列,它的底层是数组。一个切片由3部分组成:指针、长度和容量。指针指向底层数组,长度代表slice当前的长度,容量代表底层数组的长度。换句话说,slice自身维护了一个指针属性,指向它底层数组的某些元素的集合。......

2022-06-09 09:17:10 881

原创 GitHub Copilot AI智能编程工具

GitHub 去年联合 OpenAI,推出了一款“GitHub Copilot”工具,可以根据上下文自动写代码,将程序员从重复的编写中解放出来。该工具此前已支持了 Visual Studio Code、Neovim 和 JetBrains IDE 等。近日,Copilot 来到了微软自家的 Visual Studio 2022,用户可下载扩展使用。 IT之家了解到,与在 Visual Studio Code 中使用方法一致,开发者需要先注册登记 GitHub Copilot,并等待官方批准,之后就可以在 V

2022-06-06 17:26:53 689

原创 如何给自己打造好的“口碑”?

新加入一个团队,如何给自己打造好的“口碑”?在回答这个问题之前,我们先按照U型思维走一些弯路思考一下。(所谓U型思维是系统化的挖掘本质,基于本质做决定的思维方法,在遇到问题时不是直接去寻求解决方案,而是通过先定义核心问题,发现问题本质,找到本质解后,最后寻求解决方案。)一、定义核心问题我们首先来看一下这个问题的隐含假设是什么。其实就是我们已经获得了新团队内大部分人的了解,否则口碑就从何说起了。但无论是好口碑还是坏口碑,都需要一个过程,很难速成。这样一来,新团队和好口.

2022-04-16 09:29:27 837

原创 消息队列背后的设计思想

消息队列也通常称为消息中间件,提到消息队列,大部分互联网人或多或少都听过该名词。对于后端工程师而言,更是日常开发中必备的一项技能。随着大数据时代的到来,apache 旗下的 kafka 一度成为消息队列的代名词,提起消息队列大家自然而然就想到了 kafka。近而网上有太多太多介绍消息队列 kafka 功能或者内部实现的文章。然而消息队列本身是工程领域内一种解决问题的通用方案。它的背后有着一些通用的设计思想和经典模型,这些是消息队列的精髓和灵魂。它们独立于任何一种消息队列的具体实现(例如 kafka),但

2022-04-13 10:02:57 146

原创 如何更优雅的写GO-策略模式

如何更优雅的写GO-策略模式?

2022-03-25 19:56:48 561

原创 面试了无数公司,我总结了这些 Mysql 面试题(内附答案)

面试了无数公司,我总结了这些 Mysql 面试题(内附答案)

2022-03-23 11:21:35 207

转载 彻底搞懂HTTPS的加密原理

HTTPS(SSL/TLS)的加密机制虽然是大家都应了解的基本知识,但网上很多相关文章总会忽略一些内容,没有阐明完整的逻辑脉络,我当年学习它的时候也废了挺大功夫。对称与非对称加密、数字签名、数字证书等,在学习过程中,除了了解“它是什么”,你是否有想过“为什么是它”?我认为理解了后者才真正理解了HTTPS的加密机制。本文以问题的形式逐步展开,一步步解开HTTPS的面纱,希望能帮助你彻底搞懂HTTPS。为什么需要加密?因为http的内容是明文传输的,明文数据会经过中间代理服务器、路由器、wifi

2022-03-23 11:11:16 307

原创 浅析Golang中怎么实现枚举

nginx php中文乱码的解决办法:1、将网页代码设置utf-8编码格式;2、在nginx服务端和nginx.conf中设置utf-8编码格式即可。本文操作环境:linux5.9.8系统、nginx1.14.0版,Dell G3电脑nginx php 中文乱码怎么办?nginx访问页面 中文乱码 解决方案今天在nginx上部署一个小网页项目时,中文出现乱码,搜了一下,网上解决方法都是一样 千篇一律改服务端的编码格式。这里总结一下解决方法:出现乱码可能由于以下两个位置没有配置编码格式:1、.

2022-02-07 15:15:06 7415

原创 Redis缓存和MySQL数据一致性的问题,你是如何高效的去解决的

在高并发的业务场景下,数据库的性能瓶颈往往都是用户并发访问过大。所以,一般都使用redis做一个缓冲操作,让请求先访问到redis,而不是直接去访问MySQL等数据库。从而减少网络请求的延迟响应。数据为什么会不一致这样的问题主要是在并发读写访问的时候,缓存和数据相互交叉执行。一、单库情况下同一时刻发生了并发读写请求,例如为A(写) B (读)2个请求 A请求发送一个写操作到服务端,第一步会淘汰cache,然后因为各种原因卡主了,不在执行后面业务(例:大量的业务操作、调用

2022-01-26 10:39:58 179

原创 SQL语句中 LEFT JOIN后用 ON 还是 WHERE,有什么区别 ?

SQL语句中 LEFT JOIN后用 ON 还是 WHERE,有什么区别 ?

2022-01-26 10:20:53 376 2

原创 让我的PPT会说话

先表述一个观点:绩效的好坏和你做的事情,写的内容关系不太大。这么多年下来,我看到的绩效唯一的作用,就是用来提醒上级,你今年做了哪些事情而已。至于这些事情的价值和重要性,并不是你说了算,扎心不。开门见山首先送给大家一个写绩效

2022-01-25 11:14:48 232

原创 MySQL数据太大,你们是如何拆分数据的?

在中大型项目中,一旦遇到数据量比较大,小伙伴就应该都知道要对数据进行拆分了,可是要如何拆分才是比较好呢!下面结合图文,思路,与大家聊聊设计与拆分方案。我们都知道拆分有分为垂直拆分与水平拆分。垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。如下图,独立的拆分出订单库和用户库。水平拆分的概念,是同一个业务数据量大之后,进行水平拆分。上图中订单数据达到了4000万,我们也知道mysql单表存储量推荐是百万级,如果不进行处理,mysql单表数据太大

2022-01-24 11:45:52 3073

转载 MySQL模糊查询,你还在用 like+% 吗?

前言我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用户数据的关键字进行全文查找,电子商务网站需要根据用户的查询条件,在可能需要在商品的详细介绍中进行查找,这些都不是B+树索引能很好完成的工作。通过数值比较,范围过滤等就可以完成绝大多数我们需要的查询了。但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较,全文索引就是为这种场景设计的。全文索引(Full-T

2022-01-21 10:25:35 132

原创 阿里技术专家:一文教你高效画出技术架构图

技术传播的价值,不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径。加速业务的上线速率,也体现在优秀工程师的工作效率提升、产品性能优化和用户体验改善等经验方面的分享,以提高我们的专业能力。接下来,阿里巴巴技术专家三画,将分享自己和团队在画好架构图方面的理念和经验,希望对你有所帮助。当我们想用一张或几张图来描述我们的系统时,是不是经常遇到以下情况:对着画布无从下手、删了又来?如何用一张图描述我的系统,并且让产品、运营、开发都能看明白?画了一半的图还不清楚受众是谁?画出来的图到底是产品图功能

2022-01-20 14:44:34 242

原创 负载均衡,你自己会不会配置?

什么是负载均衡所谓负载均衡,就是说如果一组计算机节点(或者一组进程)提供相同的(同质的)服务,那么对服务的请求就应该均匀的分摊到这些节点上。这里的服务是广义的,可以是简单的计算,也可能是数据的读取或者存储。负载均衡也不是新事物,这种思想在多核CPU时代就有了,只不过在分布式系统中,负载均衡更是无处不在,这是分布式系统的天然特性决定的。分布式就是利用大量计算机节点完成单个计算机无法完成的计算、存储服务,既然有大量计算机节点,那么均衡的调度就非常重要。负载均衡的意义在于,让所有节点以最小的代价、最好

2022-01-20 14:34:09 2008

原创 GO 基础语法50问

1.使用值为 nil 的 slice、map会发生啥允许对值为 nil 的 slice 添加元素,但对值为 nil 的 map 添加元素,则会造成运行时 panic。// map 错误示例func main() { var m map[string]int m["one"] = 1 // error: panic: assignment to entry in nil map // m := make(map[string]int)// map 的正确声明,分配了实际的

2022-01-19 20:04:27 2062

原创 Go 结构体,定义结构体类型

package main import "fmt" // 定义结构体类型 (在函数外部定义(全局的),可以在整个项目中使用)type student struct { id int // 结构体的成员 name string age int} func main() { // 定义结构体变量 (结构体是一种复合类型) var stu student // 为结构体成员赋值 stu.id = 1 // 默认0 (int) stu.name = "张三" //

2021-11-27 15:07:32 411

原创 GO slice切片去重

GO slice切片去重func sliceRepByMap(slc []uint) []uint { sellerIdList := []uint{} tempMap := map[int]byte{} for _, member := range slc { tempLen := len(tempMap) tempMap[int(member)] = 0 if len(tempMap) != tempLen { sellerIdList = append(seller

2021-10-30 12:21:52 206

原创 Mysql 并发事务如何处理?

为了提高事务的吞吐量,MySQL 可以处理并发执行的多个事务,但是如果并发执行多个插入新记录的 SQL 语句,可能会导致主键的不连续。如下图所示,事务 1 向数据库中插入 id = 10 的记录,事务 2 向数据库中插入 id = 11 和 id = 12 的两条记录:图 4 - 并发事务的执行不过如果在最后事务 1 由于插入的记录发生了唯一键冲突导致了回滚,而事务 2 没有发生错误而正常提交,在这时我们会发现当前表中的主键出现了不连续的现象,后续新插入的数据也不再会使用 10 作为记录的主键。no

2021-09-30 11:25:50 497

转载 关于GoLang的concurrent map writes错误

作为一个GoLang萌新(其实就是并发编程萌新,之前一直在做PHP),对并发下共享资源的竞争了解不多。所以一开始写出了如下代码:type OriginPriceController struct { OriginPriceService *origin_price_service.OriginPriceService} func (self *OriginPriceController) action() { var wg sync.WaitGroup wg.Add(2) go f

2021-09-30 10:47:15 332

原创 Go 语言笔试面试题汇总

基础语法01 = 和 := 的区别?02 指针的作用03 Go 允许多个返回值吗?04 Go 有异常类型吗?05 什么是协程(Goroutine)06 如何高效地拼接字符串07 什么是 rune 类型08 如何判断 map 中是否包含某个 key ?09 Go 支持默认参数或可选参数吗?10 defer 的执行顺序11 如何交换 2 个变量的值?12 Go 语言 tag 的用处?13 如何判断 2 个字符串切片(slice) 是相等的?14 字符串打印时,%v 和 %+v 的区别

2021-09-26 14:55:50 569

原创 php、GO 判断文件上传的类型

1、php<? php$info = $_FILES['file']['name'];//得到文件的名称$temp = explode('.', $info);//用.分割数组$imgtype = end($temp);//取数组的最后一个$filetype = ['jpg', 'jpge', 'gif', 'png'];//定义图片类型//in_array()判断是否存在一个数组中的数据 第一个参数是数据第二个参数是数组if (!in_array($imgtype, $filetype

2021-09-26 09:42:12 382

原创 Mac使用技巧-sourceTree上修改git账号

1、打开sourcetree偏好设置,打开高级1、修改对应git url对应的账号提交对应的文件,会提示你输入git账号

2021-09-23 09:19:19 2673

原创 GO 学习每日一个知识点->第二天

下面这段代码输出什么,说明原因。func main() { slice := []int{0,1,2,3} m := make(map[int]*int) for key,val := range slice { m[key] = &val } for k,v := range m { fmt.Println(k,"->",*v) }}?????????????????????????你的

2021-09-11 15:21:51 60

原创 GO 学习每日一个知识点->第一天

defer :package main import ( "fmt" ) func main() { defer_call() }func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func() { fmt.Println("打印后") }() panic("触发异常")}看下答案,

2021-09-08 09:30:03 77

原创 Go 获取1分钟前的时间,一天前的时间

获取1分钟前的时间time.Now().Add(-time.Minute * 1)当前时间向上取整:var endTime = timeUtil.TruncateHourStr(time.Now().UTC().Format("2006/01/02 15:04:05")).Unix()获取一天前的时间var startTime = time.Now().AddDate(0, 0, -1).Unix()...

2021-09-08 09:19:49 2609

原创 目前go官方,没有加入三元运算符,但是可以通过以下方式模拟

目前go官方,没有加入三元运算符,我们如何解决呢 ?方式一:func If(isTrue bool,a,b int) int { if isTrue { return a } return b}func main(){ a,b:=1,3 max:=If(a>b,a,b) fmt.Println(max)}方式二: a,b:=3,5 max:=map[bool]int{a>=b:a,a<b:b}[true] min:=map[bool]int

2021-08-26 16:05:38 347

原创 nginx 限流配置是如何做到的?

限流算法1、令牌桶算法算法思想是:令牌以固定速率产生,并缓存到令牌桶中;令牌桶放满时,多余的令牌被丢弃;请求要消耗等比例的令牌才能被处理;令牌不够时,请求被缓存。2、漏桶算法算法思想是:水(请求)从上方倒入水桶,从水桶下方流出(被处理); 来不及流出的水存在水桶中(缓冲),以固定速率流出; 水桶满后水溢出(丢弃)。这个算法的核心是:缓存请求、匀速处理、多余的请求直接丢弃。相比漏桶算法,令牌桶算法不同之处在于它不但有一只“桶”,还有个队列,这个桶是用来存放令牌的,队列才是用来存放

2021-08-24 09:25:53 351

原创 GO 并发安全锁

1. 并发安全锁有时候在Go代码中可能会存在多个goroutine同时操作一个资源(临界区),这种情况会发生竞态问题(数据竞态)。类比现实生活中的例子有十字路口被各个方向的的汽车竞争;还有火车上的卫生间被车厢里的人竞争。var x int64var wg sync.WaitGroupfunc add() { for i := 0; i < 5000; i++ { x = x + 1 } wg.Done()}func main() { w

2021-08-24 09:13:49 132

原创 Golang struct、json、map互相转化

第三方接口返回json 你是怎么处理的?:{ "resp": { "respCode": "0", "respMsg": "ok", "app": { "userId": "d12abd3da59d47e6bf13893ec43730b8" } }}使用结构体结构体拆解 go 内置了json字串的解析包 “encoding/json”按照json库的分析,其实每一个花括号就是一个结构体&g

2021-08-23 20:45:23 482

原创 7个支持敏捷的开源项目管理工具

用敏捷方法来管理项目,比用传统方法管理项目的成功率更高,在一项调查中,有 71% 的组织表示,他们在开发过程中会用到敏捷方法。本文(作者 OSC 达尔文)从一些比较受欢迎的开源项目管理工具中,摘取了 7 个支持敏捷的项目,以供那些已经使用,或正在使用敏捷的开发者参考。1.MyCollab(GitHub 地址)这是一个高性能、稳定而且安全的商业平台,用于客户关系管理(CRM)、项目和文档管理。是一个企业的协作平台,基于 Java 开发。该系统提供了开源的社区版本。2.Odoo(GitHub 地址)Odoo 是

2021-08-23 13:18:24 1820

原创 大厂面试 Mysql数据库相关面试题总结

1、列举常见的关系型数据库和非关系型都有那些?关系型数据库:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL非关系型数据库:NoSql、Cloudant、MongoDb、redis、HBase两种数据库之间的区别:关系型数据库:关系型数据库的特性1、关系型数据库,是指采用了关系模型来组织数据的数据库;2、关系型数据库的最大特点就是事务的一致性;3、简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间

2021-08-23 10:23:09 422

原创 分布式事物与分布式架构

什么事分布式事务: 多个服务同时修改记录时,保证数据的一致性.现在面试中,分布式系统、分布式事务几乎是标配。而分布式系统、分布式事务本身比较复杂,大家学起来也非常头疼。首先一张图了解一下分布式部署:什么是分布式事务?对于分布式系统而言,需要保证分布式系统中的数据一致性,保证数据在子系统中始终保持一致,避免业务出现问题。分布式系统中对数要么一起成功,要么一起失败,必须是一个整体性的事务。分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。.

2021-08-23 09:54:33 187

原创 连接MySQL出现Authentication plugin ‘caching_sha2_password‘ cannot be loaded

刚安装好MySQL,有一个默认密码,比较复杂,我们可以先使用这个复杂密码登录,登录成功后使用命令[alter user ‘root’@‘localhost’ identified by ‘root’;]修改密码即可。 我这里修改后的密码是root,接着我想用Navi...

2021-08-20 17:45:01 571

空空如也

空空如也

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

TA关注的人

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