- 博客(42)
- 资源 (3)
- 收藏
- 关注
原创 并发编程(三):线程池基本面试题(必背题目)
一、背景金三银四话说是跳槽的最佳时机,各大公司也在此时招兵买马,当然面试者也很多,基本上一个面试官至少2场面试,而面试者也旗鼓相当,每天面2家的节奏。我本人也参加了一些公司的面试,发现线程池被问到的概率达到50%以上,而且问的问题大概就那几个,没啥新意。唯一有新意的是一个架构师问我“如何设计一个线程池”,虽然看过,但是没有理解,忘了!!!好记性不如烂笔头,还是记录下吧。二、高频面试题(八股文)1、什么是线程池?线程池有什么好处(被问概率很小)?所谓线程池,通俗来讲,就是一个管理线程的池子。它
2022-03-29 16:49:02
17311
1
原创 Apache-Shenyu入门教程(demo实战及遇到的坑)
目录一、背景二、Apache-shenyu是什么?三、下载代码四、加载工程五、启动shenyu-admin六、启动shenyu-bootstrap七、启动shenyu-examples中的shenyu-examples-http八、参考文献一、背景最近参加了一个直播"Apache DolphinScheduler& Apache ShenYu(Incubating) 联合 Meetup",听各大佬还有初入开源社区的小白分享经验,收益匪浅,先玩玩apa.
2022-03-29 15:28:49
4729
3
原创 并发编程(二):用demo演示线程池工作原理(实战篇)
一、背景如果你是一位面试经验丰富的求职者,你会发现线程池相关面试题出现的概率在80%以上,面试题目无非下面几个:1)工作中有没有使用过线程池啊?怎么使用的?2)说下线程池的参数?3)说下线程池的工作原理;4)说下线程池的拒绝策略有哪些?5)说下线程池的线程数是如何确认的,如何优化?我相信以上问题,通过八股文基本上都可以搞定。但是我一直有一个疑问,线程池的工作原理你既然有理论知识,可以用代码示例来给我演示一下吗?本文主要通过代码demo打印日志来演示线程池怎么工作的。二、Spring默认线程池是什
2022-03-23 16:41:47
962
原创 并发编程基础(一):多线程(理论篇)
目录一、多线程相关问题1、什么是线程、进程、协程?2、什么是上下文切换?3、线程有几种状态?4、线程有几种创建方式5、什么是线程安全、不安全?6、Java中如何获取到线程dump文件二、总结三、参考文献一、多线程相关问题1、什么是线程、进程、协程?答:进程:表示一个程序的上下文执行活动(打开、执行、保存...),每个进程都有自己独立的内存空间,不同内存空间不共享。线程:进程执行程序时候的最小调度单位(执行a,执行b...)。一个进程可以有多个线程,所有
2022-03-23 15:09:02
405
1
原创 SpringCloud与SpringBoot的版本对应关系(2022年最新)
目录一、SpringCloud与SpringBoot的版本对应二、参考文献一、SpringCloud与SpringBoot的版本对应SpringCloud版本 SpringBoot版本 2021.0.1-SNAPSHOT Spring Boot >=2.6.4-SNAPSHOT and <2.7.0-M1 2021.0.0 Spring Boot >=2.6.1 and <2.6.4-SNAPSHOT 2021.0.0-RC1
2022-01-27 14:43:27
58211
4
原创 Linux环境下安装MySQL及相关问题解决
一、下载MySQLwin10版mysql安装请参考该文献:MySql 5.7.26版本免安装版配置过程及相关问题解决(win10版)_无痕之剑的书橱-CSDN博客下载地址:MySQL :: Download MySQL Community Server注意事项:1)要有自己的oracle账号,没有就注册一个;2)根据自己的linux版本进行下载查询自己的linux版本,我的版本是Red Hat的。[root@szqa-XXX-app01 ~]# cat /proc/versio..
2022-01-24 14:42:26
1331
原创 MySQL查询重复记录的最新一条记录
目录一、背景二、测试环境准备三、基本SQL语句四、参考文献一、背景最近在做一个黑名单的需求,但是由于历史原因,黑名单有大量的重复数据,比如一个user_id = 001 的用户,有效status=1,无效status=0,但是实际产线数据库有4条数据(3条无效,1条有效),故需要找出重复数据的最新一条数据,并将user_id设置为索引,不允许重复。二、测试环境准备新建表t_user,并插入测试数据DROP TABLE IF EXISTS `t_user`;CREATE
2022-01-21 09:54:47
5159
1
转载 (转)FastDFS使用手册
一、背景最近做一个需求,需求具体内容为批量生成大量的pdf文件,上传至fastDFS,并提供接口给用户下载,遇到一些问题,比如:文件存储过大如何删除等问题,因此针对性学一下:二、学习内容参考文献:(转)FastDFS文件存储 - shuyang - 博客园这篇文章还是不错的,把fastDFS的基础讲的很明白,缺点是没有一些常见问题的解决方案。...
2022-01-18 10:01:45
155
原创 Linux虚拟机搜索文件/文件夹
目录一、背景二、方法一:使用 find 命令在 Linux 中搜索文件和文件夹三、方法 二:使用 locate 命令在 Linux 中搜索文件和文件夹四、方法三:在 Linux 中搜索文件使用 which 命令五、方法四:使用 whereis 命令在 Linux 中搜索文件六、参考文献一、背景作为程序猿,是离不开虚拟机操作的,比如磁盘爆了,但是你又不知道logs日志路径咋办,只能通过一些命令查找,因此将虚拟机搜索文件/文件夹的一些方式总结如下:二、方法一:使用 fin..
2022-01-06 10:00:54
17150
原创 日期算错了:关于YYYY-MM-DD和yyyy-MM-dd
目录一、问题代码二、问题复现三、参考文献一、问题代码注意:今天码代码时间是2021年12月26日 星期日直接上代码:SimpleDateFormat sf1 = new SimpleDateFormat("YYYY-MM-dd");SimpleDateFormat sf2 = new SimpleDateFormat("yyyy-MM-dd");Calendar c1 = Calendar.getInstance();System.out.println("YYYY-MM
2021-12-26 23:07:45
416
原创 万万没想到之代码出错了?
一、背景今天碰到两段有意思的代码,分享一下。你认为的“理所当然"是对的?二、出乎意料的代码一直接上代码: public static void main(String[] args) { TimeTest test = new TimeTest(); test.timeTest(); } public void timeTest() throws ParseException { SimpleDateFormat sim
2021-12-21 22:35:09
203
原创 Mybatis苞米豆(baomidou)使用说明书
目录一、背景二、配置1、pom文件配置2、yml文件配置3、SQL准备三、具体代码(增删改查)四、Wrapper中的QueryWrapper常用ge,gt,lt,le等具体含义五、参考文献一、背景1.1 MyBatis-Plus 是由一个叫苞米豆的一个组织来开发的,组织负责人叫青苗,目前组织中大概有31人。MyBatis-Plus( https://mybatis.plus/)简称 MP是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,
2021-12-21 11:43:03
52389
15
原创 图解如何修改github个人空间地址
一、背景自己一直在使用gitee(网址:https://gitee.com/)管理自己的代码,但是总感觉使用github(https://github.com/)比较好一些,毕竟github是全球通用的。但是发现仓库空间地址名字是自己的名字,总感觉怪怪的,故萌生了修改仓库名字的想法。找了很多文献,终于搞定了,特记录如下:二、修改个人空间地址实操1、登录自己的github账号右上角头像--->Settings--->Account--->Change username---&
2021-12-18 11:39:25
3750
原创 MySQL调优之Explain命令
目录一、背景二、语法及作用三、基本使用四、 参数说明五、参数详细说明六、参考文献一、背景这几天和数据库打交道比较多,废话不多说,直接进正文。MySQL调优不仅仅是面试需要,更重要的事实战需要。一个小小的索引可以节省很多成本和资源,前提是你得会分析为啥SQL这么慢。工具很多,这里专门讲Explain命令的使用和相关参数说明。二、语法及作用语法:EXPLAIN + SQL语句作用:通过EXPLAIN可以分析出如下结果表的读取顺序; 数据读取操作的数据类型;
2021-12-16 21:17:33
255
原创 MySQL循环语句实战
一、背景如前一篇文章所说,如果想要验证大数据下的场景,必须要批量造数据。批量造数据既可以通过Java实现,也可以通过MySQL本身的功能实现,本章主要学习如何使用MySQL的循环语句造大量数据。数据表准备请参照前一篇文章,这里就不重复了,直接上SQL。https://blog.csdn.net/m0_37824308/article/details/121974262二、使用while语句写循环SELECT * from t_t_user;DELETE from t_t_user;-
2021-12-16 20:20:01
9298
原创 SQL调优之字符集-Range checked for each record (index map: 0x2)
目录一、背景二、复盘三、参考文献一、背景项目中有些业务涉及到多个表的关联查询,每个表都有大量数据,因此查询起来很慢,需要对其进行优化。通过explain进行分析过程中发现,有个关联查询增加索引的字段居然没有起作用,并且有提示信息:Range checked for each record (index map: 0x2)。通过查询相关资料,发现是两个数据表字符集不匹配的问题。复盘如下:二、复盘测试环境准备:-- -----------------------------.
2021-12-16 14:49:37
5684
1
原创 解决mysql-1067 - Invalid default value for ‘apply_date‘的问题
目录一、背景二、解决过程及原因三、解决方案四、SQL_MODE解释说明五、参考文献一、背景为了方便开发测试,需要将测试环境的部分数据导入到本地数据库,但是遇到了大批数据无法导入的问题,今天修改一个字段的属性,同样遇到此类问题。最后发现是日期默认0000-00-00 的问题。报错如图下:# 修改的字段属性modify column `apply_date` date NOT NULL default '0000-00-00' COMMENT '截止日',# 报错信息&g
2021-12-07 09:31:27
1413
原创 Apollo安装教程
目录一、背景二、Apollo简介三、安装包准备四、安装Apollo4.1环境准备4.2 软件准备4.2.1 JDK安装4.2.2 MySQL安装4.3 部署开发环境4.4 启动脚本五、环境测试六、Springboot集成Apollo配置中心6.1客户端(具体应用的项目)的修改6.1.1 pom文件6.1.2 启动类增加Apollo客户端6.1.3 在application.yml增加配置6.2 在Apollo配置中心增加项目...
2021-12-04 11:36:19
9987
原创 阿里云Linux服务器如何打通网络
目录一、背景二、登录阿里云服务器加入安全组三、禁用防火墙或者防火墙开通相关端口四、参考文献一、背景趁着双十一阿里云做活动,买了一台阿里云ESC服务器,上一篇已经说过了。安装完JDK之后,便部署了一台eureka服务,但是呢?网络不通!!!这几天便开始了开墙打通网络之路,参考文章很多,步骤都是对了,但是有很多坑需要避免,毕竟我们不是专业的网络工程师。二、登录阿里云服务器加入安全组1、登录服务器 地址:https://www.aliyun.com/登录之后的界面是这.
2021-12-03 11:32:38
1321
原创 阿里云Linux服务器卸载openjdk,安装jdk1.8
目录一、背景二、安装/卸载openJDK三、安装JDK1.8四、参考文献一、背景双十一阿里云做活动,买了一台阿里云的Linux服务器练手,配置是2C4G。一般来说测试环境都是2C4G,产线环境是4C8G,如果你买了1C2G的,恭喜你,你的程序大概率会非常卡。想要运行自己的程序,首先要准备环境。比如JDK环境、mysql、redis等公共环境,今天先安装JDK1.8二、安装/卸载openJDK1、查询java环境 java –version2...
2021-11-30 11:34:28
1093
原创 mapper.xml中大于、小于、不等于号的方法
目录一、背景二、解决方案一:使用转义字符三、解决方案二:四、参考文献一、背景项目中有一个联合查询的SQL一直很慢,总感觉无法再继续优化了,实际上还是有继续优化的方案的。具体方案如下:1、将判断条件尽可能写在最里面的查询(如果需要的话);2、将is null 修改为不等于0。实施第二个方案的过程中发现,xml文件中直接写status<>0,报错,故寻找解决方案。二、解决方案一:使用转义字符大于号 > &a...
2021-11-30 11:16:29
34047
原创 Spring Boot 实现用户行为记录的四种方式
目录一、需求背景二、需要的pom依赖三、AOP切面编程实现四、Interceptor拦截器实现五、Filter过滤器实现六、ArgumentResolver七、拓展部分八、参考文献一、需求背景根据产品经理要求,需要对用户的行为进行记录。重点记录用户的姓名、IP、操作行为、请求参数和返回参数。先采用暴力解决问题,每个行为增加记录行为,当然这个是最不恰当的方案,工作量大不说,还不具有扩展性。因此参考他人博客,使用4种方案来实现该需求。二、需要的pom依赖
2021-11-24 20:10:10
3651
原创 Git合并代码冲突问题解决
目录一、背景二、代码冲突的一般原因三、问题复盘与解决四、参考文献一、背景同一个项目,三个人进行开发。远程分支只有一个:dev_20211201,每个人在本地拉一个自己的分支进行开发,然后提交。其中A先提交代码至dev_20211201,B也开发完了,想merge远程分支到本地,进行测试,发现代码合并冲突问题,需要解决。当然最终解决问题,特记录一下。二、代码冲突的一般原因1、文件名修改造成的冲突,或者文件名相同但是内容不同引起的冲突,称为树冲突。解决方案:文件名冲突,修改
2021-11-15 18:21:38
3280
原创 mysql查询每个学生的各科成绩,以及总分和平均分(实操版)
目录一、背景二、题目简述三、SQL实操(从建表到计算)1、行变列(题目解答)2、列变行(题目拓展)四、参考文献一、背景最近要对数据进行分类、汇总,进行求和、求平均值等操作,故先拿一个简单的需求来练手。网上搜索了一个经典笔试题“mysql查询每个学生的各科成绩,以及总分和平均分”,但是实操发现,文献有各种错误,而且抄袭严重,连数据都不带改的,真是无语。功夫不负有心人,终于找个一个合适的文献,特做练习,记录如下。二、题目简述学生成绩表如下:要求:...
2021-11-08 17:42:16
35439
原创 SQL/Java计算公式汇总
目录一、背景二、SQL版计算公式总结三、Java版计算公式总结四、参考文献一、背景 最近开发遇到大量的数据计算,开发过程中发现,有的逻辑使用的是Java实现,有的逻辑使用的是SQL实现,同一个计算公式,计算结果不同,会差0.01(如果保留两位的话),究其原因就在于是否四舍五入、向上取整还是向下取整。二、SQL版计算公式总结1、ROUND(X)与ROUND(X,D) 四舍五入取证截取。如果D不传递,默认为0,D可以为负数,这时指定小数点左边D位整数之后所有数据为0...
2021-11-05 16:13:39
1542
转载 Git秘钥生成、配置以及取消
一、背景 当初为了解决git无法clone代码的问题,胡乱不经大脑用了一个解决方案,就是秘钥的方案,按照相关文献配置好了。而今天发现无论是提交代码还是push代码都相当的麻烦,故决定将秘钥删除。二、解决方案解决方案主要靠分享的文章,有两篇文章做了实践,做一下小笔记:1、Git秘钥生成以及Gitlab配置Git秘钥生成以及Gitlab配置 - 修行者HT - 博客园2、Git秘钥解除每次需要输入 Enter passphrase for key '/c/Users/Ad...
2021-11-02 18:13:11
795
原创 如何上传jar包至私有maven仓库
一、.pom文件添加相关配置信息放在</plugins></build>后面,其中id和url要和maven配置文件setting.cml中仓库的id和url保持一致。<!-- 定义maven deploy上传仓库 --><distributionManagement> <repository> <id>releases</id> <name>Nexus Release...
2021-08-04 15:22:18
1591
转载 第二部分:分布式系统设计策略
转发地址:https://www.cnblogs.com/niunafei/p/13330721.html第二部分:分布式系统设计策略一、心跳检测二、高可用性系统高可用性的常用设计模式包括三种:主备(Master-SLave)、互备(Active-Active)和集群(Cluster)模式。1.主备模式主备模式就是Active-Standby模式,当主机宕机时,备机接管主机的一切工作,待主机恢复正常后,按使用者的设定以自动(热备)或手动(冷备)方式将服务切换到主机上运行。在数据库部分
2021-03-01 16:55:23
370
转载 第一部分:分布式架构理论
转发地址:https://www.cnblogs.com/niunafei/p/13330721.html第一部分:分布式架构理论一、单机、集群、分布式的区别单机结构一个系统的业务量放在一个项目里面,这个项目部署在一台服务器,整个项目的服务由这台服务器提供。缺点:处理能力有限,抗风险能力低。集群结构单机处理到达瓶颈的时候,你就把单机复制几份,这样就构成了一个“集群”。集群中每台服务器就叫做这个集群的一个“节点”,所有节点构成了一个集群。为了处理哪个节点来处理请求的问题,需要有一.
2021-03-01 16:52:55
202
原创 Redis基础知识综合(针对面试)
Redis基础知识什么是Redis答:Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。Remote Dictionary ServerRedis支持集中数据类型答:字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)string 类型的值最大能存储 512MB 2) 每个 hash 可以...
2020-06-29 19:47:21
233
原创 Docker专栏一:内网Linux安装docker
一、背景 伴随着信息技术的快速发展,微服务/容器化思想流行,技术框架更新换代较快。架构方面最火的莫过于SpringCloud(虽然很多人也不知道为啥用SpringCloud,就是觉得好用),而部署方面则是Docker(虽然先进,但是用的不多,目前最多的还是tomcat部署和jar包部署)。自己有必要在这方面有所研究,但是呢,翻遍大小书籍和博客,大部分都是Ctrl+C、Ctrl+V,...
2020-04-11 17:19:55
1379
4
原创 IDEA创建eureka工程报错&Linux部署eureka工程报错(单机部署,分布式部署)
参考文献:https://blog.csdn.net/qq_36850813/article/details/84316310 https://blog.csdn.net/qq_40699535/article/details/866889111、使用最新版本的SpringCloud新建完Eureka工程后,总是报错 新版本为:<spri...
2020-02-20 21:04:18
466
原创 Linux安装nginx
一、前期准备1、查询Linux的版本: cat /etc/redhat-release2、查询Linux是32位还是64位: getconf LONG_BIT二、安装依赖//一键安装上面四个依赖yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel三、下载nginx软件包nginx下载地...
2019-09-29 15:38:52
131
转载 eclipse各个版本下载地址
目的:备用 官方地址:https://www.eclipse.org/downloads/版本号 代号 代号名 发布日期 下载地址 Eclipse 3.1 IO 木卫一,伊奥 2005 http://archive.eclipse.org/eclipse/downloads/drops/R-3.1-200506271435...
2019-08-06 12:01:05
1042
1
原创 MySql 5.7.26版本免安装版配置过程及相关问题解决(win10版)
时间:2019年7月26日 目的:安装mysql解压版一、下载安装1、下载mysql5.7.26下载地址:https://dev.mysql.com/downloads/mysql/下载完以后解压缩到自定义的路径。注意:路径中不要存在中文,避免不必要的麻烦2、新建一个ini形式的文件,名字为my.ini内容为:[mysql] # 设置mysql客户端默认字符集...
2019-07-26 17:23:17
2741
1
转载 Mysql主从复制原理介绍-数据库层
该文章转载于:https://www.cnblogs.com/kevingrace/p/6256603.htmlMysql复制概念说明Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务...
2018-09-04 07:34:29
166
原创 第五章 PL/SQL编程
1、什么是PL/SQL,PL/SQL的语法格式是什么?源码见“参考文献”答:PL/SQL是一种过程化语言,在PL/SQL中可以通过IF语句或者LOOP语句实现控制程序的执行流程,甚至可以定义变量,以便在语句之间传递数据信息,这样PL/SQL语言就可以实现操控程序处理的细节过程。整个PL/SQL块分为三部分:声明部分(用declare开头),执行部分(用BEGIN开头以END结尾),异常处理
2017-09-16 21:00:41
399
原创 第四章 SQL语言基础
1、SQL语言指的是什么?其特点是什么?分为几类?分别是?编写规则又是什么?答:SQL语言全称是结构化查询语言,英文译作Structured Query Language,它是一种在关系型数据库中定义和操作数据的标准语言。其特点是:集合性、统一性和易于移植性。分类:数据查询语言(DQL)、数据操纵语言(DML)、事务控制语言(TCL)、数据定义语言(DDL)、数据控制语言(DCL)编写
2017-09-16 20:56:19
469
原创 第三章 SQL/PLUS命令
提醒:练习最好在sys实例下进行,conn sys/tiger as sysdba;1、SQL\PLUS是什么?有什么用?答:SQL*Plus工具主要用来进行数据查询和数据处理。2、SET命令如何使用?并举例说明答:set命令语法: set system_variablevalue 解释:ystem_variable:变量名;value:变量值。举例:SQL> set
2017-09-12 23:04:08
488
原创 第二章 Oralce 11g 体系结构
1、Oracle中有三个重要的概念需要理解,分别是什么?他们之间是什么关系和联系、答:三个重要概念为:实例(Instance)、数据库(Database)和数据库服务器(Database Server)实例:是指一组Oracle后台进程以及在服务器中分配的共享内存区域;数据库:是由基于磁盘的数据文件、控制文件、日志文件、参数文件和归档日志文件等组成的物理文件集合;其主要功能是存储数据,
2017-09-11 22:53:22
298
Apollo(阿波罗) 开源分布式配置中心(含教程).zip
2021-12-04
oracle从入门到精通(Oracle 11g源码)
2017-08-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人