自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

常敲代码手不生

你知道的知识越多,你不知道的越多!

  • 博客(193)
  • 资源 (5)
  • 收藏
  • 关注

原创 MySQL中count(*)用法

count()函数:一个聚合函数,对于返回的结果集,一行行地判断,如果 count 函数的参数不是 NULL,累计值就加 1,否则不加。最后返回累计值对不同count()统计函数性能分析:server 层要什么就给什么;InnoDB 只给必要的值;现在的优化器只优化了 count(*) 的语义为“取行数”,其他“显而易见”的优化并没有做count(主键id):每一行的 id 值都取出来,返回给 server 层。server 层拿到 id 后,判断是不可能为空的,就按行累加 count(1):In

2020-10-28 20:57:58 7117 2

原创 投递技术类简历的注意事项

大家常见的一个通病就是在面试中说不出自己项目的难点, 项目经历写了一大堆,使用到的各种框架、数据库、中间件、消息队列,缓存都写上了,却答不出自己项目中的难点。面试一共就三十分钟或者一个小时,说两个两个项目中难点,凸显出自己技术上的深度,同时项目中的难点是最好被我们自己掌控的,而且这块又是面试官必问的,更是我们变被动为主动的关键。作为程序员,随着工作年限的增加,要定期的去修改自己的简历中的工作项目,一方面可以促进自己复盘一下工作成果和个人成长,另外也能给自己换工作提供一个前置的便捷性。

2023-08-27 23:08:10 493

原创 springboot关闭启动时候banner及启动日志打印

关闭 Spring 默认的 banner 显示。# 关闭启动日志打印。

2023-02-14 20:23:53 1385 1

原创 git多分支频繁切换导致IDEA工具maven工程项无法识别java文件的一种解决方法

由于频繁的进行git多分支的切换,导致本地maven工程依赖切换失败,进而导致项目无法识别java工具,多次rebuild项目均以失败而告终。提供一种有效的正确方式:在IDEA的terminal输入命令mvn cleanmvn install -Dmaven.test.skip=true...

2022-04-29 19:27:30 1597

原创 Spring的@Transactional注解踩坑

@Transactional介绍Spring为开发人员提供了声明式事务的使用方式,即在方法上标记@Transactional注解来开启事务。大家在日常的开发中很多业务代码对数据进行操作的时候一定是希望有事务控制的。比如电商卖东西业务,代码的逻辑是商家先生成一个订单(订单信息插入到数据库中),再将钱收入到自己的账户中(数据库中的money增加)。整个过程是要作为一个完整的事务来对待的,如果后面这个操作失败了,那么前者也一定不能插入成功,这时候就会用到事务的回滚。@Transactional的常见错

2022-01-25 23:40:55 2460

原创 你不知道的interrupt、interrupted、isInterrupted

被调用的方式:interrupt和isInterrupted 是Thread类普通方法,被实例对象调用,都是非静态方法,也可以用线程对象来访问,例如t.interrupt(),t.isInterrupted()。interrupted是Thread类中的静态方法,可以通过类名形式来访问:Thread.interrupted()概念区分:(注意留意this和current)interrupt()方法:中断此线程(原文:Interrupts this thread)(此线程不一定是当前线程,而是指调.

2022-01-24 19:16:00 447

原创 鼠标上下滑轮时,来回乱跑的骚操作

2022-01-20 15:30:20 1587

原创 入职新公司二三事

初到一家公司,如何快速的上手项目呢?整理几点值得分享的经验上岗阶段按照入职时间报到完成入职流程,带齐材料,提前准备好笔记本和笔 跟随主管带到工位,电脑装好,准备下载需要的常见开发工具(此处建议同步一个书签账号、快速完成同步) 主管索要开发资料、maven的setting仓库文件、接口文档、数据库信息、代码库地址、概要设计文档等 拉代码,按照文档先让项目运行跑起来,如果启动运行过程中有任何问题第一时间求助同事,求助过程记录下相关问题和解决办法成文档,后面会继续用到,减少询问别人时间 ...

2022-01-18 23:10:32 575

原创 回调方法理解与实践

定义:所谓回调方法,就是调用方把一个需要被回调的方法作为参数,传递给要调用的方法,被调用的方法执行完成后,通过该参数返回来调用此方法,作为参数传递的该方法就称作回调方法。实际上是一种双向的调用方式实际场景在项目开发中,需要各个模块或者对象之间的消息传递,A模块某些方法,需要在B模块满足某些条件下来主动通知并调用A模块的方法,这就是典型的回调应用场景。如果是比较耗时的调用,采用该方法可以避免同步阻塞。上代码:public class Request { public static

2021-12-23 19:19:03 1252

原创 IDEA全文搜索排除无用的文件夹

问题:最近在用到idea的全文搜索关键字功能时候,发现检索很慢,仔细一看发现除了从工程类的java文件检索之外,另外从很多日志文件里也进行了检索,比如工程运行生成的日志文件。导致卡死、搜索巨慢解法:为了提高检索速度,需要idea手动配置过滤掉多余的文件夹操作:file——project structure—— modules——选择指定的文件夹——右键excluded...

2021-12-21 19:53:29 3985

原创 面试、求职妙招!

简历关简单干净、纯色底板的简历模板是最好的选择 简历结构与逻辑:个人信息、教育情况、工作经历、项目经历、自我评价、其他信息。如果有很多段经历,建议优先写最近的经历,然后采用倒叙的顺序来写比较合适,大部分公司习惯从最近的一份工作去了解。项目经历的展示也需要体现出项目名称、项目时间、项目中担任的职务、项目职责和项目业绩 自我评价:首先先对自己过去的工作内容或者过去的学习经历做个总结。然后对自己的个性以及工作态度做一个工作展示简历投递黄金时段:经过相关调查,投递简历的“黄金时间段”在上午的 10 .

2021-08-26 00:34:24 160

原创 Jsvc的使用场景

组件启动安装的操作顺序:执行postinstall.sh执行启动组件的linux服务执行组件的__service文件执行jsvc命令执行spring boot的main方法组件的卸载流程:通过preuninstall.sh脚本,供运管调用启动组件的底层命令,本质上是一个jsvc命令,为什么要使用Jsvc?Jsvc的使用场景:1、在linux系统上进行项目开发部署java项目时,常用方法是通过一个shell脚本启动。但当服务器重启后经常会忘了启动shell脚本,因此

2021-07-21 14:00:16 1018

原创 分支定义之Trunk vs Master

trunk是svn版本管理中的主干表示,而git中的主干叫master,因此git的master相当于svn的trunk,git的开发分支dev分支相当于svn里的branchesSVN:trunk:是用来做主方向开发的一直向前进行,一个新模块的开发就放在trunk,当模块开发完成后,需要修改,就用branch。 branch:是用来做并行开发的,这里的并行是指和trunk进行比较。 tag:是用来做一个milestone(里程碑)的,不管是不是发布版本,但都是一个可用的版本,不...

2021-07-20 19:04:33 851

原创 余杭-萧山机场巴士

2021-06-30 13:38:46 113

转载 记一次生产频繁出现 Full GC 的 GC日志定位

https://cloud.tencent.com/developer/article/1552089https://www.cnblogs.com/klvchen/articles/11758324.html感谢!

2021-06-30 10:04:39 235

原创 Springcloud整理

Springcloud答题技巧:总:当前问题回答的是那些具体的点分:以1,2,3,4,5的方式分细节取描述相关的知识点,如果有哪些点不清楚,直接忽略过去突出一些技术名词(核心概念,接口,类,关键方法)避重就轻:没有重点一个问题能占用面试官多少时间?问的越多可能露馅越多当面试官问到一个你熟悉的点的时候,一定要尽量拖时间1.Spring IOC的理解,原理与实现?总:控制反转:理论思想,原来的对象是由使用者来进行控制,有了spring之后,可以把整个对象交给spring来

2021-06-30 10:03:10 111

原创 Git使用总结

Git1、git pull 总提示让输入merge 信息原因:当本地分支完成commit尚未push到远程时,远程仓库响应分支已经被另一个同事提交了一次或多次,当本地执行git pull origin xxx时 就会出现解法:当执行git pull origin xxx时添加参数--no-edit git pull origin xxx --no-edit 这就避免了让你输入无用的merge信息了,自动保存并上传了默认的merge信息2、gitlab上创建的分支git branch -a 查

2021-06-30 10:01:06 187

原创 项目开发模式

项目开发模式在预测未来之前,首先分析一下程序员的日常工作中遇到哪些困难与挑战。需求和设计在需求沟通阶段,程序员需要准确的获取PRD上的需求信息,并对业务的价值和发展有一定的预判。根据以上的信息进行技术选型,数据建模,设计抽象。在这个过程中主要的挑战有: 高效的需求沟通 合理的技术方案选择 对现实世界的逻辑抽象 开发和测试在编码和测试阶段,程序员需要选择适合的数据结构并编写算法,合理的运用设计模式高效的实现功能,并且保证尽可能少的存在bug。在这个过程中主要的挑

2021-06-30 09:57:56 433

原创 Java核心技术36讲

java平台的理解 谈谈你对 Java 平台的理解?“Java 是解释执行”,这句话正确么? Java本身是一种面向对象的语音,最显著的特性有两个方面,一个是所谓的“书写一次,到处运行”(Write once,run anywhere),能够非常容易地获得跨平台能力;另一个就是垃圾收集(GC,Garbage Collection) Java源代码,首先通过Javac编译成字节码(bytecode),然后在运行时,通过Java虚拟机内嵌的解释器将字节码转换为最终的机器码。但是常

2021-06-30 09:55:58 296

原创 Stack Overflow

2020-08-13:空指针异常 通过optional语法糖处理:由于未对deviceRtu.getLampNum()进行空值处理 //批量插入device_lamp if (!CollectionUtils.isEmpty(deviceLamps)) { enhancedDeviceLampMapper.batchInsertLamps(deviceLamps); logger.info("批量新增单...

2021-06-30 09:54:10 311

原创 K8S基础知识整理

1、什么是Kubernetes?与docker的关系?开源容器管理工具,负责容器部署、容器缩容、容器扩容,以及负载均衡,是一个多容器管理解决方案 docker提供容器的生命周期管理,构建运行时的容器。但是容器间通信必须使用Kubernetes。通过Kubernetes可以手动的编排和关联在多个主机上运行的容器2、Kubernetes为了解决什么问题?3、Kubernetes的解决方法?...

2021-06-28 16:21:42 82

原创 委婉的拒绝offer

https://www.zhihu.com/question/20300937 大厂的中间件技术面(https://blog.csdn.net/yunduo1/article/details/108454566)

2021-06-28 14:34:40 300

原创 阿里后端学习计划

2021-06-27 19:59:40 196

原创 如何从中级Java程序员过渡到高级Java程序员

1、https://www.zhihu.com/question/203009372、大厂的中间件技术岗位面(https://blog.csdn.net/yunduo1/article/details/108454566)

2021-06-23 22:19:19 114

转载 618小记

点击打开链接1.尽量在合适的场合使用单例2.尽量避免随意使用静态变量3.尽量避免过多过常的创建Java对象4.尽量减少对变量的重复计算如for(int i=0;i<list.size();i++)应该改为for(int i=0,len=list.size();i<len;i++)并且在循环中应该避免使用复杂的表达式,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。5.尽量使用移位来代替'a/b'的操作“/”..

2021-06-18 14:32:12 87

原创 618小记

点击打开链接1.尽量在合适的场合使用单例2.尽量避免随意使用静态变量3.尽量避免过多过常的创建Java对象4.尽量减少对变量的重复计算如for(int i=0;i&lt;list.size();i++)应该改为for(int i=0,len=list.size();i&lt;len;i++)并且在循环中应该避免使用复杂的表达式,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值...

2021-06-18 11:01:06 62

原创 你会用Java实现两个大数相加吗

两个大数相加(Java) * 1、是整数; * 2、两个数无限大,long都装不下; * 3、不能用BigInteger; * 4、不能用任何包装类提供的运算方法; * 5、两个数都是以字符串的方式提供。 * 思路: * 字符串逐位相加,需要进位则进位处理,考虑两个问题: * 1、char怎么转换为integer, 减去'0'即可 * 2、怎么处理对应位相加?反转字符串相加,正确处理进位即可, * 这样个位对应个位,十位对应十位,剩余的直接追加public class ..

2021-06-16 15:49:05 341

原创 Redis缓存,你真的懂了吗

为什么要用缓存(缓存的优点、场景)(1)在项目中缓存是如何使用的?结合你自己项目的业务来,你如果用了那恭喜你,你如果没用那不好意思,你硬加也得加一个场景吧!(2)为啥在项目里要用缓存呢?用缓存,主要是俩用途,高性能:一些复杂操作耗时查出来的结果,如果确定后面不咋变了,然后但是马上还有很多读请求,那么直接结果放缓存,后面直接读缓存就好了。 高并发:高峰期一秒钟过来的请求有1万,那一个mysql单机绝对会死掉。你这个时候就只能上缓存,把很多数据放缓存,别放mysql。缓存功能简单,说白了就

2021-06-10 23:10:05 128

原创 常见消息队列对比

消息队列使用场景异步正常链路流程越长耗时越久越慢;那链路长了就慢了,但是其实有些流程其实可以同时做的,支付成功后,去校验优惠券的同时可以去增减积分,还可以同时发个短信。用线程池或者多线程不是也可以么?解耦:一个订单流程,扣积分,扣优惠券,发短信,扣库存。。。等等这么多业务要调用这么多的接口,每次加一个你要调用一个接口然后还要重新发布系统,写一次两次还好,写多了你就烦了。真的全部都写在一起的话,不单单是耦合这一个问题,出问题排查也麻烦,流程里面随便一个地方出问题搞不好会影响到其他的点,每个流程都

2021-06-10 23:00:46 282

原创 jdk1.8对synchronized锁的优化

synchronized 锁的优化:锁的四种状态-无锁,偏向锁、轻量级锁,重量级锁1、偏向锁:原因是大多数时候是不存在锁竞争的,常常是一个线程多次获得同一个锁,因此如果每次都要竞争锁会增大很多没有必要付出的代价,为了降低获取锁的代价,才引入的偏向锁偏向锁的升级:当线程1访问代码块并获取锁对象时,会在java对象头和栈帧中记录偏向的锁的threadID,因为偏向锁不会主动释放锁,以后线程1再次获取锁时比较当前线程的threadID和Java对象头中的threadID是否一致,如果一致(还是线程1获

2021-06-09 10:06:55 4200 4

原创 可能是最好理解的二叉树的层序遍历

题目描述:二叉树的层序遍历,按层数输出每一层的结果数组代码实现class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> res = new ArrayList<List<Integer>>(); Queue<TreeNode> queue = n

2021-05-30 12:22:48 49

原创 31 | 深度和广度优先搜索:如何找出社交网络中的三度好友关系?

问题导入给你一个用户,如何找出这个用户的所有三度(其中包含一度、二度和三度)好友关系?搜索算法算法是作用于具体数据结构之上的,深度优先搜索算法和广度优先搜索算法都是基于“图”这种数据结构的。这是因为,图这种数据结构的表达能力很强,大部分涉及搜索的场景都可以抽象成“图”。...

2021-05-30 11:12:48 219

原创 大厂经验分享

2021-05-28 18:53:24 97

原创 Java 微服务框架对比:Dubbo 和 Spring Cloud

微服务特点:微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。独立部署 松耦合 单一职责,每个服务仅关注一件任务微服务框架相关概念:rpc 1、远端过程调用,其调用协议通常包含传输协议和编码协议。 2、RPC 可以把 HTTP 作为一种传输协议(比如 gRPC 使用 HTTP 2.0 协议传输),本身还会封装一层 RPC 框架的应用层协议,不同语言之间调用需要依赖 RPC 协议 grpc HT..

2021-05-27 11:04:50 522 2

原创 JVM知识点汇总

2021-05-25 20:35:41 45

原创 2021-5-18大搜车

一轮Java中hashmap和concurrenthashmap区别、数据结构区别 MySQL中hash索引和b+树索引区别 GC的常用算法和常见的垃圾回收器 重构过哪些代码功能?使用到了什么设计模式? 接口调优,如何优化的? 慢查询sql语句如何优化?二轮数据库表结构如何设计? 现有设备量多少?数据量有多大?实时数据如何存储的?遇到过什么问题?(分页查询缓慢--优化) 如何定位MySQL的慢查询,关注哪些列 联合索引abc,MySQL的查询语句where条件是abd,会使用到联合

2021-05-19 20:28:36 82

原创 30 | 图的表示:如何存储微博、微信等社交网络中的好友关系?

列出功能需求->翻译成逻辑算法->抽象出数据结构->确定物理存储结构 后面的不会脱离前面的独立存在,只存在于工作流的运用中,所以不能把它们独立地看。问题引入在微博中,两个人可以互相关注;在微信中,两个人可以互加好友。如何存储微博、微信等这些社交网络的好友关系吗?图的概念图 特点: 非线性数据结构; 图中的元素就叫做顶点(vertex); 图中的一个顶点可以与任意其他顶点建立连接关系,这叫做边; 举例:微信 一

2021-05-16 18:14:21 215

原创 29 | 堆的应用:如何快速获取到Top 10最热门的搜索关键词?

为什么评价算法性能是根据时间和空间复杂度,而不是别的参数?是因为计算机结构是冯诺依曼体系,除了输入输出设备和控制器,就剩下运算器和存储器了问题引入搜索引擎的热门搜索排行榜功能是如何实现的?搜索引擎每天会接收大量的用户搜索请求,把这些用户输入的搜索关键词记录下来,然后再离线地统计分析,得到最热门的 Top 10 搜索关键词。假设现在我们有一个包含 10 亿个搜索关键词的日志文件,如何能快速获取到热门榜 Top 10 的搜索关键词呢?堆这种数据结构几个非常重要的应用:优先级队列、求 Top K 和求

2021-05-15 15:19:59 571

原创 28 | 堆和堆排序:为什么说堆排序没有快速排序快?

如何理解“堆”堆排序是一种原地的、时间复杂度为 O(nlogn) 的排序算法堆的两个特点:一颗完全二叉树 堆中每个节点都必须大于等于(或者小于等于)其左右子节点的值;对于每个节点的值都大于等于子树中每个节点值的堆,叫做“大顶堆”。对于每个节点的值都小于等于子树中每个节点值的堆,叫做“小顶堆”。如何实现一个“堆”如何存储一个堆完全二叉树比较适合用数组来存储。用数组来存储完全二叉树是非常节省存储空间的。因为不需要存储左右子节点的指针,单纯地通过数组的下标,就可以找到一个节点的左右子节

2021-05-09 12:01:13 136 2

原创 27 | 递归树:如何借助树来求解递归算法的时间复杂度?

目的借助递归树来分析递归算法的时间复杂度递归树递归的思想就是将大问题分解为小问题来求解,然后再将小问题分解为小小问题。这样一层一层地分解,直到问题的数据规模被分解得足够小,不用继续递归分解为止。如果我们把这个一层一层的分解过程画成图就是一棵树——递归树。举例一棵斐波那契数列的递归树。节点里的数字表示数据的规模,一个节点的求解可以分解为左右子节点两个问题的求解。如何用递归树来求时间复杂度以归并排序为例,通过递归树来进行时间复杂度分析。归并排序的递归树示意图:每一层排序时间消

2021-05-05 18:05:59 1759

2016年纪念上海实习

2016年纪念上海实习

2021-01-18

cleanlog.sh

Linux环境下的日志管理是一个问题,堆积多了会占用很大的内存,影响服务器的性能,造成卡顿等等问题,本文件提供一个定时清理的脚本,可进行定制化修改

2020-08-24

rabbitmq.conf.example

rabbitmq默认安装完成没有对应的配置文件,因此提供一个Rabbitmq.config配置文件,用于设置rabbitmq的配置相关,方便对rabbitmq进行端口的配置

2020-08-24

spring.jar包

spring.jar包,给需要的学习的人!

2015-12-21

spring注释jar包

spring-annotations.jar包,方便有需要的人

2015-12-21

空空如也

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

TA关注的人

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