- 博客(197)
- 资源 (5)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
7166
2
原创 “在工作中学习”和“根据遇到的问题捡知识”两者有巨大不同
目前整个软件行业越来越需要一堆多面手,也许现在已经是这样了,只是我还没有注意到。当然,我也不喜欢这种情。现在,好像没有人愿意花更多的时间来把某一个东西学好学深学扎实。
2024-07-27 20:40:41
254
原创 程序员的修养
在生活中用好 cheklist,不仅能帮助你整理混乱的家居,清爽缠成一团的工作,在旅行时不再遗漏东西,还能在危机时候帮助你,有一次我在高速上目睹车祸并受波及时,脑子完全空白了一分多钟,后来打开手机上的CHECKLIST,才清晰快捷地完成了所有安全和临时处理工作。补充:在面对短时间复杂工作时,一定不要盲目相信自己的大脑的记忆力、应变力和冷静度,而要学会运用cheklist高效快速地管理各种事项,确保标准操作程序的完成和无遗漏执行。换句话说,也就是程序员的工程师文 化,也就是程序员的价值观。
2024-07-27 20:17:42
493
原创 高效学习系列文章重点总结
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
2024-07-14 18:21:33
844
原创 投递技术类简历的注意事项
大家常见的一个通病就是在面试中说不出自己项目的难点, 项目经历写了一大堆,使用到的各种框架、数据库、中间件、消息队列,缓存都写上了,却答不出自己项目中的难点。面试一共就三十分钟或者一个小时,说两个两个项目中难点,凸显出自己技术上的深度,同时项目中的难点是最好被我们自己掌控的,而且这块又是面试官必问的,更是我们变被动为主动的关键。作为程序员,随着工作年限的增加,要定期的去修改自己的简历中的工作项目,一方面可以促进自己复盘一下工作成果和个人成长,另外也能给自己换工作提供一个前置的便捷性。
2023-08-27 23:08:10
536
原创 git多分支频繁切换导致IDEA工具maven工程项无法识别java文件的一种解决方法
由于频繁的进行git多分支的切换,导致本地maven工程依赖切换失败,进而导致项目无法识别java工具,多次rebuild项目均以失败而告终。提供一种有效的正确方式:在IDEA的terminal输入命令mvn cleanmvn install -Dmaven.test.skip=true...
2022-04-29 19:27:30
1674
原创 Spring的@Transactional注解踩坑
@Transactional介绍Spring为开发人员提供了声明式事务的使用方式,即在方法上标记@Transactional注解来开启事务。大家在日常的开发中很多业务代码对数据进行操作的时候一定是希望有事务控制的。比如电商卖东西业务,代码的逻辑是商家先生成一个订单(订单信息插入到数据库中),再将钱收入到自己的账户中(数据库中的money增加)。整个过程是要作为一个完整的事务来对待的,如果后面这个操作失败了,那么前者也一定不能插入成功,这时候就会用到事务的回滚。@Transactional的常见错
2022-01-25 23:40:55
2834
原创 你不知道的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
467
原创 入职新公司二三事
初到一家公司,如何快速的上手项目呢?整理几点值得分享的经验上岗阶段按照入职时间报到完成入职流程,带齐材料,提前准备好笔记本和笔 跟随主管带到工位,电脑装好,准备下载需要的常见开发工具(此处建议同步一个书签账号、快速完成同步) 主管索要开发资料、maven的setting仓库文件、接口文档、数据库信息、代码库地址、概要设计文档等 拉代码,按照文档先让项目运行跑起来,如果启动运行过程中有任何问题第一时间求助同事,求助过程记录下相关问题和解决办法成文档,后面会继续用到,减少询问别人时间 ...
2022-01-18 23:10:32
600
原创 回调方法理解与实践
定义:所谓回调方法,就是调用方把一个需要被回调的方法作为参数,传递给要调用的方法,被调用的方法执行完成后,通过该参数返回来调用此方法,作为参数传递的该方法就称作回调方法。实际上是一种双向的调用方式实际场景在项目开发中,需要各个模块或者对象之间的消息传递,A模块某些方法,需要在B模块满足某些条件下来主动通知并调用A模块的方法,这就是典型的回调应用场景。如果是比较耗时的调用,采用该方法可以避免同步阻塞。上代码:public class Request { public static
2021-12-23 19:19:03
1435
原创 IDEA全文搜索排除无用的文件夹
问题:最近在用到idea的全文搜索关键字功能时候,发现检索很慢,仔细一看发现除了从工程类的java文件检索之外,另外从很多日志文件里也进行了检索,比如工程运行生成的日志文件。导致卡死、搜索巨慢解法:为了提高检索速度,需要idea手动配置过滤掉多余的文件夹操作:file——project structure—— modules——选择指定的文件夹——右键excluded...
2021-12-21 19:53:29
4202
原创 面试、求职妙招!
简历关简单干净、纯色底板的简历模板是最好的选择 简历结构与逻辑:个人信息、教育情况、工作经历、项目经历、自我评价、其他信息。如果有很多段经历,建议优先写最近的经历,然后采用倒叙的顺序来写比较合适,大部分公司习惯从最近的一份工作去了解。项目经历的展示也需要体现出项目名称、项目时间、项目中担任的职务、项目职责和项目业绩 自我评价:首先先对自己过去的工作内容或者过去的学习经历做个总结。然后对自己的个性以及工作态度做一个工作展示简历投递黄金时段:经过相关调查,投递简历的“黄金时间段”在上午的 10 .
2021-08-26 00:34:24
227
原创 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
1080
原创 分支定义之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
962
转载 记一次生产频繁出现 Full GC 的 GC日志定位
https://cloud.tencent.com/developer/article/1552089https://www.cnblogs.com/klvchen/articles/11758324.html感谢!
2021-06-30 10:04:39
268
原创 Springcloud整理
Springcloud答题技巧:总:当前问题回答的是那些具体的点分:以1,2,3,4,5的方式分细节取描述相关的知识点,如果有哪些点不清楚,直接忽略过去突出一些技术名词(核心概念,接口,类,关键方法)避重就轻:没有重点一个问题能占用面试官多少时间?问的越多可能露馅越多当面试官问到一个你熟悉的点的时候,一定要尽量拖时间1.Spring IOC的理解,原理与实现?总:控制反转:理论思想,原来的对象是由使用者来进行控制,有了spring之后,可以把整个对象交给spring来
2021-06-30 10:03:10
128
原创 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
214
原创 项目开发模式
项目开发模式在预测未来之前,首先分析一下程序员的日常工作中遇到哪些困难与挑战。需求和设计在需求沟通阶段,程序员需要准确的获取PRD上的需求信息,并对业务的价值和发展有一定的预判。根据以上的信息进行技术选型,数据建模,设计抽象。在这个过程中主要的挑战有: 高效的需求沟通 合理的技术方案选择 对现实世界的逻辑抽象 开发和测试在编码和测试阶段,程序员需要选择适合的数据结构并编写算法,合理的运用设计模式高效的实现功能,并且保证尽可能少的存在bug。在这个过程中主要的挑
2021-06-30 09:57:56
469
原创 Java核心技术36讲
java平台的理解 谈谈你对 Java 平台的理解?“Java 是解释执行”,这句话正确么? Java本身是一种面向对象的语音,最显著的特性有两个方面,一个是所谓的“书写一次,到处运行”(Write once,run anywhere),能够非常容易地获得跨平台能力;另一个就是垃圾收集(GC,Garbage Collection) Java源代码,首先通过Javac编译成字节码(bytecode),然后在运行时,通过Java虚拟机内嵌的解释器将字节码转换为最终的机器码。但是常
2021-06-30 09:55:58
306
原创 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
335
原创 K8S基础知识整理
1、什么是Kubernetes?与docker的关系?开源容器管理工具,负责容器部署、容器缩容、容器扩容,以及负载均衡,是一个多容器管理解决方案 docker提供容器的生命周期管理,构建运行时的容器。但是容器间通信必须使用Kubernetes。通过Kubernetes可以手动的编排和关联在多个主机上运行的容器2、Kubernetes为了解决什么问题?3、Kubernetes的解决方法?...
2021-06-28 16:21:42
100
原创 委婉的拒绝offer
https://www.zhihu.com/question/20300937 大厂的中间件技术面(https://blog.csdn.net/yunduo1/article/details/108454566)
2021-06-28 14:34:40
329
原创 如何从中级Java程序员过渡到高级Java程序员
1、https://www.zhihu.com/question/203009372、大厂的中间件技术岗位面(https://blog.csdn.net/yunduo1/article/details/108454566)
2021-06-23 22:19:19
130
转载 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
109
原创 618小记
点击打开链接1.尽量在合适的场合使用单例2.尽量避免随意使用静态变量3.尽量避免过多过常的创建Java对象4.尽量减少对变量的重复计算如for(int i=0;i<list.size();i++)应该改为for(int i=0,len=list.size();i<len;i++)并且在循环中应该避免使用复杂的表达式,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值...
2021-06-18 11:01:06
78
原创 你会用Java实现两个大数相加吗
两个大数相加(Java) * 1、是整数; * 2、两个数无限大,long都装不下; * 3、不能用BigInteger; * 4、不能用任何包装类提供的运算方法; * 5、两个数都是以字符串的方式提供。 * 思路: * 字符串逐位相加,需要进位则进位处理,考虑两个问题: * 1、char怎么转换为integer, 减去'0'即可 * 2、怎么处理对应位相加?反转字符串相加,正确处理进位即可, * 这样个位对应个位,十位对应十位,剩余的直接追加public class ..
2021-06-16 15:49:05
348
原创 Redis缓存,你真的懂了吗
为什么要用缓存(缓存的优点、场景)(1)在项目中缓存是如何使用的?结合你自己项目的业务来,你如果用了那恭喜你,你如果没用那不好意思,你硬加也得加一个场景吧!(2)为啥在项目里要用缓存呢?用缓存,主要是俩用途,高性能:一些复杂操作耗时查出来的结果,如果确定后面不咋变了,然后但是马上还有很多读请求,那么直接结果放缓存,后面直接读缓存就好了。 高并发:高峰期一秒钟过来的请求有1万,那一个mysql单机绝对会死掉。你这个时候就只能上缓存,把很多数据放缓存,别放mysql。缓存功能简单,说白了就
2021-06-10 23:10:05
151
原创 常见消息队列对比
消息队列使用场景异步正常链路流程越长耗时越久越慢;那链路长了就慢了,但是其实有些流程其实可以同时做的,支付成功后,去校验优惠券的同时可以去增减积分,还可以同时发个短信。用线程池或者多线程不是也可以么?解耦:一个订单流程,扣积分,扣优惠券,发短信,扣库存。。。等等这么多业务要调用这么多的接口,每次加一个你要调用一个接口然后还要重新发布系统,写一次两次还好,写多了你就烦了。真的全部都写在一起的话,不单单是耦合这一个问题,出问题排查也麻烦,流程里面随便一个地方出问题搞不好会影响到其他的点,每个流程都
2021-06-10 23:00:46
294
原创 jdk1.8对synchronized锁的优化
synchronized 锁的优化:锁的四种状态-无锁,偏向锁、轻量级锁,重量级锁1、偏向锁:原因是大多数时候是不存在锁竞争的,常常是一个线程多次获得同一个锁,因此如果每次都要竞争锁会增大很多没有必要付出的代价,为了降低获取锁的代价,才引入的偏向锁偏向锁的升级:当线程1访问代码块并获取锁对象时,会在java对象头和栈帧中记录偏向的锁的threadID,因为偏向锁不会主动释放锁,以后线程1再次获取锁时比较当前线程的threadID和Java对象头中的threadID是否一致,如果一致(还是线程1获
2021-06-09 10:06:55
4380
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
63
原创 31 | 深度和广度优先搜索:如何找出社交网络中的三度好友关系?
问题导入给你一个用户,如何找出这个用户的所有三度(其中包含一度、二度和三度)好友关系?搜索算法算法是作用于具体数据结构之上的,深度优先搜索算法和广度优先搜索算法都是基于“图”这种数据结构的。这是因为,图这种数据结构的表达能力很强,大部分涉及搜索的场景都可以抽象成“图”。...
2021-05-30 11:12:48
242
原创 Java 微服务框架对比:Dubbo 和 Spring Cloud
微服务特点:微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。独立部署 松耦合 单一职责,每个服务仅关注一件任务微服务框架相关概念:rpc 1、远端过程调用,其调用协议通常包含传输协议和编码协议。 2、RPC 可以把 HTTP 作为一种传输协议(比如 gRPC 使用 HTTP 2.0 协议传输),本身还会封装一层 RPC 框架的应用层协议,不同语言之间调用需要依赖 RPC 协议 grpc HT..
2021-05-27 11:04:50
550
2
原创 2021-5-18大搜车
一轮Java中hashmap和concurrenthashmap区别、数据结构区别 MySQL中hash索引和b+树索引区别 GC的常用算法和常见的垃圾回收器 重构过哪些代码功能?使用到了什么设计模式? 接口调优,如何优化的? 慢查询sql语句如何优化?二轮数据库表结构如何设计? 现有设备量多少?数据量有多大?实时数据如何存储的?遇到过什么问题?(分页查询缓慢--优化) 如何定位MySQL的慢查询,关注哪些列 联合索引abc,MySQL的查询语句where条件是abd,会使用到联合
2021-05-19 20:28:36
98
rabbitmq.conf.example
2020-08-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人