自定义博客皮肤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)
  • 收藏
  • 关注

原创 最近全网爆火的黑科技,叫做chatGPT

AI神器ChatGPT 火了。能直接生成代码、会自动修复bug、在线问诊、模仿莎士比亚风格写作……各种话题都能hold住,它就是OpenAI刚刚推出的——ChatGPT。有脑洞大开的网友甚至用它来设计游戏:先用ChatGPT生成游戏设定,再用Midjourney出图,简直是AI生产力一条龙了。有人还将ChatGPT的回复与谷歌搜索结果对比,惊讶地发现ChatGPT在实用性上强太多:谷歌这是要凉啊。甚至有人预言如果谷歌不做出改变很快就会被淘汰,到时候自己愿意每月花15-20美元使用ChatG

2022-12-07 18:01:14 8753 2

原创 争议不断的AI绘画,靠这个成为了顶流?

今年以来,AIGC迅速崛起。所谓AIGC,即AI-Generated Content,指的是利用人工智能来生成内容,被认为是继专业产出内容(PGC)、用户产出内容(UGC)后的新型内容创作方式。不久前掀起热议的“AI绘画”就是AIGC的一个典例。在这一技术赛道,不仅有诸多老牌巨头持续布局,甚至已经跑出了几家估值逾十亿美元的独角兽。10月18日,Stability AI宣布获得1.01亿美元的融资。它正是开源界“当红炸子鸡”文本到图像生成器Stable Diffusion的背后公司。10月19日,主打文字生成

2022-12-06 15:43:17 1567 2

原创 我说用count(*)统计行数,面试官让我回去等消息?

最近我在公司优化过几个慢查询接口的性能,总结了一些心得体会拿出来跟大家一起分享一下,希望对你会有所帮助。我们使用的数据库是Mysql8,使用的存储引擎是Innodb。这次优化除了优化索引之外,更多的是在优化count(*)。通常情况下,分页接口一般会查询两次数据库,第一次是获取具体数据,第二次是获取总的记录行数,然后把结果整合之后,再返回。查询具体数据的sql,比如是这样的:select id,name from user limit&

2022-11-27 11:47:58 294

原创 马斯克组织了Code Review,并且晒出推特架构图

近日,马斯克前往 Twitter 总部大楼和工程师团队进行了 code review,并在结束后晒出了合照,以及 Twitter 的系统架构图。当然这不是 Twitter 的整体架构图,主要是展示了 Timeline 部分的架构,其中关键的组件是 Timeline Mixer,据称这是将任何特定的 Timeline 聚合在一起的通用服务器,Home Mixer 则从 Timeline Mixer 中获取内容,并专门将其传送到主页。有人为这张架构图添加了详细的注释:也有人根据它进行重新梳理,提供了简化的版本:

2022-11-27 11:37:05 247

原创 Java 自定义 equals 时 super.equals 带来的问题分析

对于需要用某业务主键判断对象相等时,通常用 IDE 自动生成equals方法,选定特点的判断字段。这一句默认的代码,遭遇过两次坑。例如这里的 Person 对象只需要根据 id 相等,就视为同一个对象,但是有了这句调用,执行列表的contains方法始终返回 false,断点找到了这个问题。解决办法:自定义具有父类的类的 equals 方法时,需要去掉这行。...

2022-08-27 16:15:02 232

原创 JVM之线程资源标记ResourceMark

本文主要分析栈上分配的ResouceMark,利用线程的ResourceArea进行分配前的快照保存以及内存分配,并利息ResourceMarkImpl的析构函数,释放当前Chunk后面分配的内存空间,并恢复分配前的内。reset_to_mark调用reset_to_mark函数,最终通过调用ResourceArea的 rollback_to函数并传入之前保存的内存资源快照_saved_state。Chunk是通过_next指针链接形成单向链表, _len记录当前Chunk的大小。Arena分配内存资源。.

2022-08-27 15:27:28 192

原创 Mac使用hsdis查看java字节码的汇编命令

在《Java并发编程的艺术》这本书的第2.1章节提到了了volatile关键字会产生Lock锁前缀。比较好奇读会不会产生Lock锁前缀,如果对读不加Lock锁前缀,那么会不会在并发时出现对变量产生了部分写,然后读到部分读产生脏读?先说结论,从汇编命令来看对volatile变量的读不会产生Lock前缀锁,可能是因为如果加了Lock前缀锁就说明该线程对该部分内存独占了,如果想独占需要等读先完成才能独占。下面我们来看看这具体的汇编命令。...

2022-08-27 11:56:36 439

原创 绝了,GitHub上爆火的,阿里技术专家把SpringCloudAlibaba讲通俗易懂

除了本文的内容之外,还有Spring全家桶(Spring+MVC+Boot+cloud)的学习笔记,空闲的时候可以学习一下~

2022-08-26 16:32:39 238

原创 面试稳了!全靠这(35个高频SpringBoot知识点)

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。本文35道高频springboot面试题,会讲的很细,认真仔细阅读哦!springboot脑图。...

2022-08-26 15:46:03 190

原创 绝了,吃透这份《Java性能优化实战笔记》薪资涨了18k!

一般是“太慢了”、“性能不足”、“软硬件需要升级了”等问题时,提供较佳的性能。但就 数据库系统而言,规划高可获得性的架构(如SQL Cluster、Mirroring、Log Shipping、Replication等)不会提升系统性能,还要注意是否降低了性能。多学才让自己更有价值,还有MySQL,spring,jvm,等等的学习笔记,大家可以在闲暇时间去看,→点此即可拿到手。内容比较齐全,希望大家都仔细阅读,内容比较多,花时间慢慢去消化,希望我整理的这些对大家都有帮助。...

2022-08-26 15:20:52 215

原创 还搞不懂JVM?这一篇教你JVM从入门到入魔,全篇干货满满!

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。jvm学习脑图除此之外,还有jvm的学习笔记,大家可以结合本文一起去学习!...

2022-08-26 14:59:44 115

原创 阿里技术专家强推的“Redis核心笔记”,全篇干货满满!

Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。...

2022-08-26 14:38:27 317

原创 牛!阿里技术官纯手打《385页图解Tomcat整体架构笔记》

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。...

2022-08-26 14:21:20 152

原创 Spring Boot 定义接口的方法是否可以声明为 Private?

parameters 实际上就是方法参数,对应的类型是 MethodParameter,这个类的源码我这里就不贴出来了,主要和大家说一下封装的内容包括:参数的序号(parameterIndex),参数嵌套级别(nestingLevel),参数类型(parameterType),参数的注解(parameterAnnotations),参数名称查找器(parameterNameDiscoverer),参数名称(parameterName)等。Cat 实现了 Animal 接口,将泛型也定义为了 String。.

2022-08-26 13:39:50 157

原创 分析Java中 CharSequence源码

是java.lang包下的一个接口,是 char 值的可读序列, 即其本身描述的就是字符串。">CharSequence cs1 = "朝雾轻寒";// 默认实现为 StringCharSequence cs2 = new StringBuilder("朝雾轻寒");CharSequence cs3 = new StringBuffer("朝雾轻寒");扩展。...

2022-08-26 13:25:10 306

原创 Iptables防火墙limit模块扩展匹配规则

limit模块的作用是针对报文的速率进行限制,限制的单位有秒、分钟、小时、天等,例如一分钟内只接收10个请求报文,多余的报文则会被丢弃。

2022-08-26 11:57:36 480

原创 SpringBoot-Mybatis批量插入Oracle数据库数据

批量删除时,使用list.stream().map(DraftCabin::getCabinId).collect(Collectors.toList())方法,使用类中的getCabinId方法来将结果集中的cabbinId形成数组参数,入参批量删除方法。,接收多个参数,这时不要添加parameterType属性,useGeneratedKeys="false",一定要添加;mapper中,多个参数使用@Param注解来接收,在mybaits的xml中,调用注解名称。...

2022-08-26 11:49:44 827

原创 太好用了!MySQL8的150高效技巧,你不会还不知道吧?

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle旗下产品,是最流行的关系型数据库管理系统之一。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言,由于其体积小、速度快、开放源码等特点,一般中小型网站的开发都选择MySQL作为网站数据库基于MySQL 8.0,以基础知识为入手点,以讲解技术特性为目标,以案例作为理论的补充,详细介绍了MySQL的方方面面,提供了超过150个高性能数据库查询与管理技巧,是MySQL入门者和管理者的必读之作。

2022-08-25 15:40:34 323

原创 厉害了!阿里p8架构大神把Spring源码讲的简单易懂又通透!

第1节Spring简介第2节Spring发展历程第3节Spring的优势第4节Spring的核心结构第5节Spring框架版本。

2022-08-25 15:10:24 197

原创 MySQL数据库表的合并及分区

2.4 线性分区(linear hash):大数据是增加,合并,拆分速度更快。2.2 list分区:第一选择基于某 列的值是否属于某个 集合。更多技术知识请关注我的V-X-公-众hao:编程经验共享。2.1,水平分区:根据某个字段进行分区(RANGE分区)2.5 key分区:可以计算一列或者多列进行分区。容器的类型:Myisam,存储引擎:merge。2.3 hash分区:支持数值类型。存在的问题:有重复的行。

2022-08-25 13:52:41 900

原创 你知道处理Spring 九大事务失效场景吗?

no no no,因为一般业务逻辑都是放置在 service 层的,而从方法的调用开始,标注事务注解就是事务有效范围的开始,而因为大部分逻辑都在 service 层,controller 基本上就一行代码,一般不会抛异常,自然注解标注在 controller 和 service 就差不多了。实际上是不会失效的,上面说了,从调用开始 test1 是事务有效的起点,test2 发生异常然后抛出异常,因为是 RuntimeException,异常会不断的往上抛,最终被 test1 的事务所处理。

2022-08-25 13:46:01 115

原创 那些你不知道的“反射”技术

我们知道,在Java中的实体类总会有一些固定的方法,比如每个属性的 get()、set()方法,还有初始化属性创建对象的构造方法,打印对象信息的toString()等方法。我们可以在以上案例中发现,toString()方法在运行状态时,通过反射获取了运行对象的类属性,进行了信息的拼接,从而达到了减少实体类代码量的目的,提高了代码的复用性。而在Java中,反射是一种机制,而不是一种现象。我们知道,在物理层面上,反射是一种光学现象,是指光在传播到不同物质时,在分界面上改变传播方向后又返回原来物质中的现象。

2022-08-25 13:37:08 317

转载 Java深拷贝和浅拷贝,Cloneable接口

Cloneable是标记型的接口(空接口),它们内部都没有方法和属性,实现 Cloneable来表示该对象能被克隆,能使用Object.clone()方法。如果没有实现 Cloneable的类对象调用clone()就会抛出CloneNotSupportedException异常。可以理解为Cloneable接口发挥的是标记功能,自定义类型需要用户自己标记出哪些类是可以clone的,这个标记就是去实现Cloneable接口,实现了Cloneable接口后就表明该类创建的对象可以被克隆。

2022-08-25 13:26:30 204

原创 Hbase Java API原理介绍

(1)Name Spase数据模型:相当于Mysql中的database,下面可以存放多张表(2)Table:相当于数据库中的表(3)Row:HBase 表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照 RowKey​ 的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重要。

2022-08-25 13:18:42 714

原创 全流程配置Ubuntu终端实现Maven中央仓库包上传

到这里就可以愉快的发布包到maven中央仓库了,当然前提是对应的项目已经配置好了,这里以 github.com/liuyueyi/qu…执行上面打包上传之后,却发现没有提示输gpg密码的地方,果不其然最后的上传结果也是失败,提示信息如下。既然是打包上传,那么maven环境得有,而maven则又需要借助jdk,所以第一步就是安装jdk。相比于之前因为mac系统老旧安装这个折腾很久来说,这次安装可以说无比顺畅了,直接apt即可。到此maven就算配置完成了,可以通过执行。安装完之后,就是配置密钥了。

2022-08-25 11:52:36 324 1

原创 不懂开源框架?这份“SSM”面试集锦,让你轻松应对框架轰炸

SSM(Spring+SpringMVC)框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架。

2022-08-24 15:57:33 113

原创 2022“金九银十”精选20道JVM面试重点问题及十大模块知识点笔记,看看你会多少?

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。20道JVM面试重点问题及十大模块知识点学习笔记。

2022-08-24 15:39:03 378

原创 阿里p9技术专家纯手打《程序员“不迷茫”职业路指南》给你指明方向

程序员(Programmer)是从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、软件设计师、系统分析员、系统架构师、测试工程师六大类。世界上第一位程序员是埃达·洛夫莱斯。程序员如何把握青春年华为未来的职业发展打下良好基础?这需要认真思考。循序渐进介绍了如何从菜鸟程序员成为高级研发人员或者架构师,以及积累知识和经验成为技术管理者,对于必备的编码工具、模式、测试、沟通和架构知识,也给出了实战总结。

2022-08-24 15:10:19 142

原创 因为Redis错失美团offer,一个月苦练这份《redis面试宝典》二战美团顺利拿下offer!

为什么要用 redis /为什么要用缓存(高性能、高并发)为什么要用 redis 而不用 map/guava 做缓存?redis 常见数据结构以及使用场景分析()redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)Redis 常见异常及解决方案(缓存穿透、缓存雪崩、缓存预热、缓存降级)分布式环境下常见的应用场景(

2022-08-24 14:41:05 94

原创 想跳槽?你先看看(MQ、ZK、Nginx、Kafk)等分布式技术你都会吗?

ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。(1)ActiveMQ面试常备什么是 ActiveMQ?ActiveMQ 中的消息重发时间间隔和重发次数吗?ActiveMQ 服务器宕机怎么办?丢消息怎么办?持久化消息非常慢?消息的不均匀消费?...ActiveMQ:详细解答如下ActiveMQ:详细解答如下RabbitMQ。

2022-08-24 14:24:25 1685 5

原创 filebeat收集java程序多行报错

一个java程序报错往往是一个事件,这个报错并不是一行就能展示完的,几乎需要几十行才能展示完这个报错内容,对于filebeat来说,filebeat每次都是把一行看成了一个日志,那么对于java多行报错就不是很友好了,即使收集过来也是将一个事件的报错日志分成很多行在kibana上展示,这样对于开发人员来看日志就很头疼了如果对于多行报错的日志还用传统的收集方法,就像下图一样,完全不知道报错是什么了,不管谁看这个日志都需要去对比。

2022-08-24 13:36:29 496

原创 如何理解Spring Security的权限管理和安全框架?

Spring Security是⼀个功能强大、可高度定制的身份验证和访问控制框架。它是保护基于Spring的应用程序的事实标准。Spring Security是⼀个面向Java应用程序框架。与所有Spring项目⼀样,Spring Security的真正威力在于它可以轻松地扩展以满足定制需求。基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制 ,按照安全规则 或者 安全策略控制用户 可以访问而且只能访问自己被授权的资源。

2022-08-24 13:18:44 145

原创 spring接口多实现类,该依赖注入哪一个?

上面所提到的三个方案虽然都可以解决:在不同的部署环境下使用不同的接口实现类完成依赖注入的问题。但是这样不好,因为一旦我们要把部署环境从beijing(北京)换成shanghai(上海),就需要把上面的注解的位置或者内容全都修改一遍(所有的实现类代码都要修改)。,该注解的作用就是强迫从多个实现类里面选一个实现类,如果Spring不知道选哪一个,我们告诉它一个默认的。面对上面的需求,先说几个相对低级的解决方案,这几个方案虽然可以实现我们期望的状态,但是对运维不够友好。注解,指定bean的名称进行依赖注入。

2022-08-24 13:10:33 515

原创 Spring Boot 集成Redisson实现分布式锁

本文针对Spring Boot集成Redisson的基本使用。

2022-08-24 11:57:59 356

原创 18个MyBatis高频知识及学习笔记,啃完面试不愁!

答:MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。

2022-08-23 16:11:35 149

原创 想进BAT?你先看看这81题面试,来测试一下你的命中率

去面试过互联网大厂的小伙伴肯定遇到过很多不知道怎么回答的问题,所以我来给你们支招了,准备充足之后再去面试吧,机会留给有准备的人的,这里总结的BAT面试常问的81题,包含JVM,集合框架,多线程/高并发,数据库,Redis的等5个部分的内容,总共81道题,一起来测试一下你的命中率吧~75. redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?39. 快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么?

2022-08-23 14:51:41 109

原创 后端程序员必须知道的(13个MySQL索引面试知识点+详细解析)试试你会多少

数据库索引是数据库系统中一个重要的概念,索引也叫做key,是一种用于提升数据库查询效率的数据结构,我们可以把索引理解成一本书的目录,通过目录我们可以快速找到对应章节的内容,同样的,通过数据库索引,我们可以快速找到数据表中对应的记录。总而言之,索引就像给数据表建了一个目录一样。

2022-08-23 14:36:24 115

原创 教你手撕分布式技术:(限流、通讯、缓存,)全部拿下

很多小伙伴可能面试的时候就是因为我本文所提到的内容被问的不会说了,没关系,今天特地来总结一波分布式技术专题面试,限流、通讯、缓存:我讲的比较细致,希望小伙伴们都仔细阅读,也不枉费我花这么多时间去整理了,希望对你们有帮助~希望大家都认真阅读哦,进步肯定不止一点点,我给大家整分享一些互联网大厂的面试题,包含腾讯,字节,阿里等等,想要了解的,→可阅。分布式限流之ZooKeeper的答案解析。分布式缓存之memcached的答案解析。分布式通讯之ActiveMQ的答案解析。分布式缓存之MongoDB的答案解析。

2022-08-23 14:20:39 107

原创 Spring Security 自定义资源服务器实践

在整个流程中,我们使用的是最严密的授权码模式,它将用户引导到授权服务器进行身份验证,授权服务器将发放的访问令牌传递给客户端,目前主流都是使用该模式,该配置用于指定授权服务器地址,资源服务器将从该地址获取JWT令牌,并根据JWT中的属性进一步自我配置,发现授权服务器的公钥、验证JWT令牌。其中与授权服务器依赖不同的是,资源服务器有spring boot版本,版本号会有spring boot进行管理,不需要显示声明。到此,我们通过自己搭建的授权服务器和资源服务器,完整体验了OAuth2流程。

2022-08-23 13:50:42 1795

原创 Java JNI 使用笔记

JNI 的全称是 Java Native Interface,是一种 Java 的 Native 编程接口,支持 Java 与 C/C++ 直接相互调用,从 JDK 1.0 开始提供。

2022-08-23 13:41:20 207

空空如也

空空如也

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

TA关注的人

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