- 博客(23)
- 收藏
- 关注
原创 linux极简小知识:在linux中创建文件并写入内容【最简单操作】
有两种方式,可以非常简单的在Linux的shell命令行中,创建一个文件并写入内容。一个是使用echo命令输出,另一个是使用vi/vim创建编辑文件。echo输出内容到文件echo最常见的用法是在终端打印(或输出)字符串。通过重定向符号>或>>,可以实现将文本内容,输出到文件中(覆盖或追加)。'echo xx >`输出内容到文件echo "string" > test.txt 用于将字符串写入test.txt文件,文件不存在将会创建,存在则覆盖。如下,测试e
2021-10-24 19:55:11
71516
2
原创 MyBatis 自定义 SQL 拦截器
本文主要是讲通过 MyBaits 的 Interceptor 的拓展点进行对 MyBatis 执行 SQL 之前做一个逻辑拦截实现自定义逻辑的插入执行。适合场景:1. 比如限制数据库查询最大访问条数;2. 限制登录用户只能访问当前机构数据。定义是否开启注解定义是否开启注解, 主要做的一件事情就是是否添加 SQL 拦截器。// 全局开启@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@Documented
2021-10-24 19:51:12
7338
1
原创 微服务SpringCloud项目:初步整合rabbitmq
前言心态好了,就没那么累了。心情好了,所见皆是明媚风景。复制代码“一时解决不了的问题,那就利用这个契机,看清自己的局限性,对自己进行一场拨乱反正。”正如老话所说,一念放下,万般自在。如果你正被烦心事扰乱心神,不妨学会断舍离。断掉胡思乱想,社区垃圾情绪,离开负面能量。心态好了,就没那么累了。心情好了,所见皆是明媚风景。十年生死两茫茫,写程序,到天亮。千行代码,Bug何处藏。纵使上线又怎样,朝令改,夕断肠。领导每天新想法,天天改,日日忙。相顾无言,惟有泪千行。每晚灯火阑
2021-10-24 19:49:03
777
原创 String系列:Java的String类一(String)
????前言心态好了,就没那么累了。心情好了,所见皆是明媚风景。复制代码“一时解决不了的问题,那就利用这个契机,看清自己的局限性,对自己进行一场拨乱反正。”正如老话所说,一念放下,万般自在。如果你正被烦心事扰乱心神,不妨学会断舍离。断掉胡思乱想,社区垃圾情绪,离开负面能量。心态好了,就没那么累了。心情好了,所见皆是明媚风景。十年生死两茫茫,写程序,到天亮。千行代码,Bug何处藏。纵使上线又怎样,朝令改,夕断肠。领导每天新想法,天天改,日日忙。相顾无言,惟有泪千行。每
2021-10-22 17:27:26
169
原创 MySQL的COUNT语句是怎么执行的
前置知识1——InnoDB的B+树索引为了故事的顺利发展,我们引入一个表:CREATE TABLE t ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, key1 INT, common_field VARCHAR(100), PRIMARY KEY (id), KEY idx_key1 (key1)) Engine=InnoDB CHARSET=utf8;复制代码这个表就包含2个索引(也就是2棵B+树):
2021-10-22 17:25:02
216
原创 小心陷入MySQL索引的坑
索引可以说是数据库中的一个大心脏了,如果说一个数据库少了索引,那么数据库本身存在的意义就不大了,和普通的文件没什么两样。所以说一个好的索引对数据库系统尤其重要,今天来说说MySQL索引,从细节和实际业务的角度看看在MySQL中B+树索引好处,以及我们在使用索引时需要注意的知识点。合理利用索引在工作中,我们可能判断数据表中的一个字段是不是需要加索引的最直接办法就是:这个字段会不会经常出现在我们的where条件中。从宏观的角度来说,这样思考没有问题,但是从长远的角度来看,有时可能需要更细致的思考,比如我
2021-10-22 17:22:51
189
原创 美团面试官:Java 从编译到执行,发生了什么?
面试官:今天从基础先问起吧,你是怎么理解 Java 是一门「跨平台」的语言,也就是「一次编译,到处运行的」?候选者:很好理解啊,因为我们有 JVM。候选者:Java 源代码会被编译为 class 文件,class 文件是运行在 JVM 之上的。候选者:当我们日常开发安装 JDK 的时候,可以发现 JDK 是分「不同的操作系统」,JDK 里是包含 JVM 的,所以 Java 依赖着 JVM 实现了『跨平台』候选者:JVM 是面向操作系统的,它负责把 Class 字节码解释成系统所能识别的指令并
2021-10-22 17:21:15
114
原创 MySQL是如何恢复到某一天的某一秒的状态?
今天大部分程序需要处理的数据,都来自数据库,尤其是关系型数据库,那么一条 SQL 提交到数据库之后,数据库都做了些什么?如果不懂这些问题,就无法更好的使用数据库,更无法回答好面试官的问题。 而现在流行的开源数据库,非 MySQL 莫属,面试中 MySQL 也是必问,于是我就学习了专栏《MySQL实战45讲》,今天的文章试着回答以下两个问题:1、一条 SQL 语句提交到数据库之后,数据库都会执行哪些动作?2、MySQL 是如何恢复到某一天的某一秒的状态?先看下一条读操作 SQL 的查询过程:连
2021-10-22 17:19:47
544
原创 升级需谨慎,开发两行泪!——记一次MySQL驱动包升级引发的事故
一、背景最近项目组在版本迭代时,组件也要进行升级,此时涉及到MySQL驱动包jdbc的版本升级。即从5.1.X升级到8.0.X。然鹅在上线之后就出现了一部分兼容性问题,造成了一次“事故”:调用接口出现“系统错误”。查看日志:java.time.LocalDateTime cannot be cast to java.util.Date,也就是出现时间转换异常。二、问题排查根据异常堆栈,找到异常抛出的位置:由此得知,使用mybatis进行SQL的查询时,使用的是Map来接收数据,key
2021-10-22 17:17:48
853
原创 从Mybatis源码到Spring动态数据源底层原理分析系列一、Mybatis初始化源码浅析
一、引入本系列文章最终的目标是为了分析spring动态数据源的原理, 相信大家在公司的开发中应该都会遇到一个项目中出现多个数据库连接的情况, 以我遇到的一种情况来说, 用户根据id分布在不同的数据库, 每个数据库中的表结构一模一样, 这就会导致, 在执行业务代码的时候, 不同的用户需求在不同的数据库中执行对应的sql, 即在mybatis作为持久层框架的情况下, 一个mapper可能会在不同的情况下, 对不同的数据库进行操作, 这就需要我们有能够执行动态数据源的功能, 而在这其中, 最重要的一部分就是事
2021-10-22 17:14:52
168
原创 Java并发基础 - CountDownLatch&CyclicBarrier
CountDownLatchCountDownLatch可以看作一个计数器,并且这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里面的值。先看一下常用的几个重要方法,首先看构造方法:CountDownLatch countDownLatch=new CountDownLatch(count);复制代码构造器中传入的count为int类型,这个计数器的初始值就是需要等待的线程数量。这个值只能被设置一次,并且CountDownLatch不提供
2021-10-22 17:11:49
183
原创 【MySQL】MySQL 存储引擎、索引、锁、集群
MySQL存储引擎MySQL体系结构体系结构的概念任何一套系统当中,每个部件都能起到一定的作用! MySQL的体系结构体系结构详解 客户端连接 支持接口:支持的客户端连接,例如C、Java、PHP等语言来连接MySQL数据库 第一层:网络连接层 连接池:管理、缓冲用户的连接,线程处理等需要缓存的需求。 例如:当客户端发送一个请求连接,会从连接池中获取一个连接进行使用。 第二层:核心服务层 管理服务和工具:系统的管理和控制工具,例如备份恢复、复.
2021-10-21 21:10:09
179
原创 暑假在家两个月复习,居然拿下了网易offer,分享笔记+经验
前言今年的金三银四虽然才刚刚开始,但是小编已经仿佛感觉到尸横遍野的场景了,又不知道是多少小白被面试官无情“拷问”,多少老鸟在面试过程中被面试官怼的“体无完肤”!年年为了应对面试,不知道多少程序员挑灯夜战,最后还是遗憾败北!小编总结了一下,难道缺的就真是技术吗?并不是!缺的是面试技术点的总结!今天你们的“福利”来了!面试技能:面试题整理搞定HR必.
2021-10-21 20:52:27
60
原创 阿里腾讯微软拥抱低代码,程序员们要“失业”?
编辑导语:只需要拖拽操作或者几行基础代码,就能完成以往需要程序员才能搭建的各类应用系统,对效率要求较高的企业而言,低代码开发很有吸引力。那么,巨头布局,资本支持,低代码好时代快要来临的同时,程序员们是不是就要失业了?本篇作者就对此话题进行了分析,一起来看一下。今年年初,阿里云智能总裁张建锋在接受《钛媒体》专访时说:“2021年的潮流就是低代码开发。”只需要拖拽操作或者几行基础代码,就能完成以往需要程序员才能搭建的各类应用系统,对效率要求较高的企业而言,是不是很有吸引力?这正是低代码甚至无.
2021-10-20 21:21:18
194
原创 阿里巴巴这些技术成果背后的信号更让人欣慰和振奋
这些技术成果背后的信号更让人欣慰和振奋!正在召开的云栖大会上,阿里没有让人失望,它发布的这一系列技术成果,从芯片到服务器,让人看到了阿里多年布局攒下的深厚技术家底。更重要的是,这背后代表了中国科技的一个好趋势!19号的云栖大会现场,阿里云发布了全新操作系统龙蜥、升级版第四代神龙架构、重磅升级数据库PolarDB,把阿里技术底座统统升级了一遍。比如,全新操作系统龙蜥不仅性支持多种芯片架构和计算场景,性能十分强大,还完全开源,全球开发者都可免费下载使用,绝对是造福全球科技事业的好事!PolarDB数据库升级
2021-10-20 20:17:42
169
原创 中国移动:前三季度净利润872亿元,同比增长6.9%
中国移动10月20日晚间在港交所公告,前三季度净利润872亿元,同比增长6.9%;前三季度营运收入6486亿元,同比增长12.9%,其中,通信服务收入为5729亿元,比上年同期上升9.0%。
2021-10-20 19:55:19
14950
原创 秋招面试题库被“泄漏“导致98人同时面进大厂,当事人连夜坐火车跑路了
我是41岁的老程序员了,这些Java语言的语法我基本都用得很熟练了, 面试该准备什么,注意什么?平复紧张的情绪,谈话技巧,举止大方,忌做小动作,要有自信,过多的小动作表明自己很紧张,也很不自信,比如挠头、搓手、挖鼻、跺脚等。我有一个玩得特别好的朋友找我帮忙,说他儿子去大厂面试几次没刷下来,要求我帮他儿子出出主意,大概了解他儿子的情况后,我就给他推荐了这本Java10字总结,大概过了几个月他就给我发信息了,说他已经靠这份资料走进了阿里p5,目录大纲...
2021-10-20 14:03:08
133
原创 从网络通信的演进过程彻底搞懂Redis高性能通信的原理(全网最详细,建议收藏)
我们一直说Redis的性能很快,那为什么快?Redis为了达到性能最大化,做了哪些方面的优化呢?这篇文章中,其实从数据结构上分析了Redis性能高的一方面原因。在目前的k-v数据库的技术选型中,Redis几乎是首选的用来实现高性能缓存的方案,它的性能有多快呢?根据官方的基准测试数据,一台普通硬件配置的Linux机器上运行单个Redis实例,处理简单命令(O(n)或者O(logn)),QPS可以达到8W,如果使用pipeline批处理功能,QPS最高可以达到10W。Redis 为什么那么快R
2021-10-18 21:07:47
178
原创 承诺兑现,完成一个权限系统,并且开源给大家
承诺兑现好久好久都没有来博客了。上次更新是说要自己完成一个权限系统的开发,然后开源给大家。之前就写了一个Whale系统的用户认证,后面就没有然后了,老猫承认,懒了~相信很多读者失望了,有的小伙伴已经开始嘲讽了,比如:老猫其实也并没有闲着,其实用空闲时间也完成了权限系统的大部分的开发工作,目前其实也出了一个乞丐版本,有兴趣的小伙伴可以到老猫的公众号---“程序员老猫”,回复“whale源码”获取对应的源代码。废话不多说了,接下来就看看系统的样子。系统初体验以上老猫只是给大家简单
2021-10-18 15:09:57
114
原创 linux防火墙iptables常用操作笔记
介绍其实Iptables服务不是真正的防火墙,只是用来定义防火墙规则功能的"防火墙管理工具",将定义好的规则交由内核中的netfilter即网络过滤器来读取,从而真正实现防火墙功能。filter表核心功能:用于主机防火墙常用命令iptables -nL --line-number #查看iptables规则(列出序号)iptables -t filter -D INPUT 1 #通过序号删除链中的规则(或者原添加规则命令中直接-A/-I换成-D也可删除)#查看iptables默认
2021-10-18 14:14:06
219
原创 阿里P8面试官:如何设计一个扛住千万级并发的架构(超级详细)
如何降低RT的值继续看上面这个图,一个请求只有等到tomcat容器中的应用执行完成才能返回,而请求在执行过程中会做什么事情呢?查询数据库 访问磁盘数据 进行内存运算 调用远程服务这些操作每一个步骤都会消耗时间,当前客户端的请求只有等到这些操作都完成之后才能返回,所以降低RT的方法,就是优化业务逻辑的处理。数据库瓶颈的优化当18000个请求进入到服务端并且被接收后,开始执行业务逻辑处理,那么必然会查询数据库。每个请求至少都有一次查询数据库的操作,多的需要查询3~5次以上,我们假设按
2021-10-18 14:00:13
290
原创 MySQL架构介绍(5.存储引擎)
MySQL内建主流存储引擎主要死InnoDB和MyISAM1)InnoDBMySQL默认的事务型存储引擎,当前互联网行业MySQL数据库的主流选择,主要用来处理大量短期事务,大部分正常提交,很少部分回滚。数据存储在表空间中,由一系列数据文件组成。MySQL4.1版本后,每个表数据和索引存储在单独文件中。InnoDB采用MVCC机制支持高并发事务处理,并且实现了四个标准隔离级别。默认repeatable read可重复读,通过间隙锁策略防止幻读出现。间隙锁使得InnoDB锁定查询行和索引间隙,
2021-10-18 13:58:04
59
原创 MySQL小技巧:删除大表数据时,drop table执行不下去怎么办
背景最近遇到了一个坑,MySQL数据库服务器硬盘容量告警,而且因为非技术原因,还不能追加硬盘。通过监控发现,磁盘IO一直100%。直接影响就是系统处理时间越来越长,接口响应耗时也越来越多。drop or truncate table 失败经过分析,发现mysql业务数据库里有好几张大表,而且这几张大表行数都在5000万以上,文件大小都在100G和150G之间。因为这些表都是备份表,第一反应就是找DBA直接清理掉这些表。潜意识里以为drop table 和 truncate table效率
2021-10-18 13:37:57
2070
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人