- 博客(84)
- 资源 (8)
- 收藏
- 关注
原创 java面试问题(一)
2、Redis数据结构的选取非常合适,采用全局的链式哈希表进行存储每一个key-value,同时,Redis对于哈希扩容的处理也很高效,查询时间非常快,是趋近于O(1)的,并且当哈希桶使用个数比较多时,会进行哈希表的扩容,避免时间复杂度的增高。7、在新版本中,redis引入了网络IO多线程,多个线程同时进行网络IO的处理,将网络IO的解析好的数据传递给主线程,主线程负责命令的执行。6、redis的网络IO是通过IO多路复用epoll来完成的,所以当网络数据到达时,能及时触发网络事件,进行数据的读取。
2023-04-25 08:56:49
738
1
原创 java Collectors 分组求和
***//*** @param 集合元素类型* @param 中间结果容器* @param 最终结果类型*/// T代表流中元素的类型,A是中间处理临时保存类型,R代表返回结果的类型CollectorImpl(Supplier supplier, // 产生结果容器BiConsumer accumulator, // 累加器。
2023-04-24 13:05:01
2081
原创 Java小特点
所以可以使用这个方法,对于一些数值类型的字符串,或者时间类型的字符串,是可以直接拿去使用的。在mysql中字符串日期可以直接和datetime类型之间比较,无需转换,Mysql会将字符串类型日期转换成长整型数字进行比较,当然你也可以转换为同一类型后再比较。注解@Override用在方法上,当我们想重写一个方法时,在方法上加@Override,当我们方法的名字出错时,编译器就会报错。返回 Field 对象的一个数组,该数组包含此 Class 对象所表示的类或接口所声明的所有字段(包括私有成员)。
2023-03-03 13:27:41
342
原创 sonarQube 扫描BUG处理
sonarQube 扫描出 可能会出现空指针问题。代码中 finally 不要包含 return;– 代码复现 YBT001Service。– 代码复现 DY001Service。
2023-01-17 13:17:19
628
原创 Java 序列化和反序列化,为什么要实现Serializable?
做服务化,需要把所有model包里的类都实现Serializable接口,同时还要显示指定serialVersionUID的值。听到这个需求,我脑海里突然出现了好几个问题,比如 说:什么时候需要用到序列化和反序列化呢?当我们只在本地JVM里运行下Java实例,这个时候是不需要什么序列化和反序列化的,但是我们需要将内存中的对象持久化到磁盘,数据库中时,当我们需要与浏览器进行交互时,当我们需要实现RPC时,这个时候就需要序列化和反序列化了。前两个需要用到序列化和反序列化的场景,是不是让我们有一个很大的疑问?我
2022-12-06 23:31:18
853
1
原创 PMP 2022-11-01
根据效益管理接话所获得的检测值,结合商业论证中终止退出的条款,来判断项目是否符合了组织的战略,必要的时候,可能会终止条款来保障组织的利益。114、 几个月来,某团队一直在开展一个项目,但何时完成仍不明朗,因为随着新情况的不断出现,项目范围经常变化不定,一些可交付成果已经完成,但当新相关方加入团队时,他们抱怨项目结果不符合业务目标。在项目评审会上,从事活动 AD 的项目团队成员通知项目经理,完成该活动还需要三天,组织的高级经理要求项目经理,即使需要额外的预算,也必须找到方法,按原定基准计划交付项目。
2022-12-01 20:27:17
2753
原创 PMP 2022-10-10 (每日一练)
1.经批准的项目章程指出必须釆用敏捷方法,在经验教训会议上,客户指出团队无法为该项目提供可靠的成本估算,应该在第一次迭代中分配更多的时间来定义范围。在经验教训资源库中应收集哪个经验教训?A. 客户应该提前接触敏捷方法以了解成本估算过程B. 如果客户需要可靠的成本估算,则不应使用敏捷方法C. 在项目的第一次迭代中,应分配时间来定义范围并确保执行可靠的成本估算D. 敏捷方法的沟通应纳入每日站会解析: 第一题 侧重点是 必须采用敏捷方法,客户指出团队无法给出可靠的。
2022-10-10 22:41:57
1734
1
原创 后端开发小技巧 (七)
后端开发小技巧 (七)1. 自动更新任务一、 启动程序 添加注解@EnableScheduling@SpringBootApplication@MapperScan("cn.piesat.sar.dao")public class MessageApplication { public static void main(String[] args) { SpringApplication.run(MessageApplication.class, args);
2022-04-14 13:00:00
389
原创 实习Day(二)
实习Day(二)1. OpenFeign 使用Feign 简介 Feign 是一个声明式的Web Service客户端。它的出现使开发Web Service 客户端变得很简单。使用Feign只需要创建一个接口加上对应的注解,比如:FeignClient注解。Feign有可插拔的注解,包括Feign注解和JAX-RS注解。Feign也支持编码器和解码器,Spring Cloud Open Feign 对Feign进行增强支持Spring MVC注解,可以像Spring Web一样使用HttpM
2022-04-14 08:56:12
688
原创 实习Day(一)
实习Day(一)Gradle (一)Gradle是一个完全自动化的构建自动化系统,它使用您在Apache Maven和ApacheAnt上看到的概念。它使用基于编程语言Groovy的领域特定语言,这与ApacheMaven有所区别,后者使用XML进行项目配置。它还使用有向无环图来确定任务的运行顺序。几位开发人员创建了Gradle,并于2007年首次发布,并于2013年被Google用作Android项目的构建系统。它旨在支持预计将非常庞大的多项目构建。它也允许以增量方式添加到构建中,因为它知道项目
2022-04-14 08:55:47
418
原创 消息队列的学习 (一)
消息队列的学习 (一)MQ有哪些?如何选型?常见的:RabbitMQ,ActiveMQ,Kafka,RocketMQRabbitMQ 中小型公司,erlang语言天生具备高并发,开源易维护;RocketMQ 大公司,依赖于阿里,可能需要专人定制化开发;Kafka 大公司,若需要日志采集功能,首选kafka;1、MQ常用的使用场景异步:场景说明:用户注册后,需要发送注册邮件和注册短信流程:处理模式:引入中间件MQ,将消息写入消息队列,非必要的业务逻辑(注册邮件和注册短信)异步方式运行,加速响
2022-04-14 08:54:41
144
原创 后端开发小技巧(六)
后端开发小技巧(六)1. 多选删除的接口 - Controller @DeleteMapping("/remove") @ApiOperation("根据id删除标准产品按需生产") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "ids(多个id以逗号分隔)", dataType = "String", required = true, paramType = "query")
2022-04-14 08:53:01
231
原创 后端开发小技巧 (五)
后端开发小技巧 (五)1. Mapper层 一些常用的SQL语句1.1查询当天的记录+条数 <select id="selectToday" resultType="java.lang.Integer"> SELECT * FROM 表 WHERE to_char(create_time, 'YYYY-MM-DD HH24:MI:SS') = to_char(NOW(), 'YYYY-MM-DD HH24:MI:SS') <
2022-03-18 18:15:26
172
原创 当服务为分布式的时候,你没有该数据库的情况,去访问另一个服务并获取图片
当服务为分布式的时候,你没有该数据库的情况,去访问另一个服务并获取缩略图获取缩略图模块ServiceImpl// 写入的这个类 为工具类 调用其他服务的接口 @Autowired private TaskUtil taskUtil;@Override public ServiceResult queryWorkflowThumb(Integer workFlowId) { ServiceResult result = new ServiceResult(f
2022-03-17 20:53:56
131
原创 一文看懂Java Worker 设计模式
一文看懂Java Worker 设计模式原文链接:http://www.cnblogs.com/Ti1077/p/9641011.htmlWorker 模式想解决的问题异步执行一些任务,有返回或无返回结果使用动机:有些时候像执行一个异步任务,如异步网络通信、daemon任务,但又不想去管理这任务的生命周。这个时候可以使用Worker模式,他会帮您管理与执行任务,并能非常方便的获取结果结构:很多人可能觉得这与executor很像,但executor是多线程的,他的作用更像是一个规划中心。而Wo
2022-03-17 14:00:00
668
原创 rabbitmq 常用配置
rabbitmq 常用配置# rabbitmq## 指定RabbitMQ host.默认为: localhost)spring.rabbitmq.host=rabbitmq.piecloud-infra.xx## 端口号 默认端口号5672spring.rabbitmq.port=5672spring.rabbitmq.username=adminspring.rabbitmq.password=admin## 指定Acknowledge的模式.spring.rabbitmq.listen
2022-03-17 13:30:00
3039
1
原创 对于数据库 多表(左)连接 出现重复数据Java解决办法
对于数据库 多表(左)连接 出现大量重复数据1. 解决办法 在ServiceImpl 中 去重// start sart java8 新特性 需要的话 可以解除注释 List<Map<String, Object>> unique = dataModelList.stream().distinct().collect(Collectors.toList()); System.out.println(unique.toString()
2022-03-17 11:20:51
2007
原创 JenKins
JenKins部署原理前端 JenKins 会关联一个前端git仓库,每当git仓库有更新时,可以找到对应的仓库进行构建,构建完成后,可以通过运维发送的ip地址:端口号/dist/ 进行重新访问,即可实时更新。后端 将打包的xxx.jar 通过XShell 链接到虚拟机,然后找到服务器的位置,并书写配置文件,及时进行配置。部署完毕 前端发送请求,后端服务器上接收请求,数据库也部署在虚拟机上,进行连接。形成不在需要电脑(服务器/客户端)的情形。可以直
2022-03-17 09:07:54
902
原创 Utils工具类
1. UUID Utils本文链接:https://blog.csdn.net/pro_fan/article/details/892193852. UUID 是什么转载 https://www.jianshu.com/p/da6dae36c2903. UuidUtilspackage cn.piesat.sar.utils;import java.util.UUID;public class UuidUtils { public static String getUUID() {
2022-03-17 09:07:26
2474
原创 页面自动监听某个状态的VUE函数
页面自动监听某个状态的VUE函数mounted() { let that = this; // that.getTaskTableData(); this.setIntervalTime = window.setInterval(function () { setTimeout(() => { // search1方法 是 查询某个字段的状态 that.search1(); }, 0); }, 5000);
2022-03-15 17:48:48
1093
原创 重新传输的后端实现
重新传输的Controller实现 @RequestMapping(value = "/retransmissionByPlanId",method = RequestMethod.GET) @ApiOperation("通过计划id重新传输") public ServiceResult retransmissionByPlanId(String planId){ // 确认下流程 return planService.retransmissionB
2022-03-15 17:48:16
1028
原创 后端开发技巧(四)
后端开发技巧(四)1. 将数据库的时间 返回成 xx:xx:xx 添加以下配置spring.jackson.date-format=yyyy-MM-dd HH:mm:ssspring.jackson.time-zone=GMT+82. 使用Swagger注解时CUID 的注解规范 @PostMapping("/add") @ApiOperation("添加通知消息-标准产品生产任务表") public ServiceResult addTaskWorkflow(H
2022-03-14 09:40:40
260
原创 后端开发技巧(三)
后端开发技巧(三)1.在postgre SQL 中 如何对单列元素去重 <select id="selectSatellite" parameterType="java.util.Map" resultType="java.util.Map"> select distinct on (satellite) id, satellite from sar_satellite_image_dic where 1=1 </select>
2022-03-04 15:22:39
379
原创 后端 CUID 开发小技巧
后端 CUID 开发小技巧1.不在用HashMap存储条件 只需要一行代码 将传输对象存储转换成Map 进行查询 Map<String, Object> conditions = JSON.parseObject(JSON.toJSONString(dataReceiveNotify), Map.class);对象本身可以通过JSON函数编程 Map,Map 作为条件然后传入,然后进行查询2. 不再用 Collection、association 进行关联 操作如下
2022-03-03 15:07:49
228
原创 底层知识二
1. synchronized 与 Lock的区别及底层实现1).synchronized(以下用sync表示)与lcok区别?来源及用法:lock是一个接口,是java写的控制锁的代码,而synchronized是java的一个内置关键字,synchronized是托管JVM执行的。synchronized:在需要同步的对象中加入此控制,synchronized可以家在方法上,也可以加在特定代码块中,括号中标识需要锁的对象。lock:一般使用ReentrantLock类作为锁。在加锁和解锁处
2021-10-20 17:15:00
95
原创 底层知识零
JWT +Redis一、流程前端:前端拿到登录名和密码,使用JSEncrypt实现rsa将密码进行加密,然后传到后端后端:拿到密码通过后台的私钥进行解密,然后通过用户名查询到用户信息,通过用户信息的状态来判断登录结果前端:若后端验证成功则根据规则生成Token,并存入redis,且像前端返回token,前端将token和用户存到localstorage,客户端再次发送请求数据将携带token。后端:通过拦截器拦截请求,在请求头中拿到token,验证redis中是否由token,且是否过期,如果t
2021-10-20 12:58:39
276
原创 底层知识三
set ,map,list的区别map:hashmap:连地址法,大概思路:通过取key的hashCode值,高位运算,取模运算计算位置,插入位置是通过hashcode 和 equals方法判断key是否一致判断键值对数组table[i]是否为空或为null,否则执行resize()进行扩容根据键值key计算hash值得到插入的数组索引i,如果table[i]==null,直接新建节点添加,转向6,如果table[i]不为kong,转向3判断table[i]的首个元素是否和key一样,如果相同直
2021-10-20 12:56:54
148
原创 IDEA如何正确构建分布式项目
1. 首先要有自己的码云账号2. 下载本地的码云下载地址:git-scm.com3. 使用命令 创建自己的 密钥语言:ssh-keygen -t rsa -b 4096 -C “自己的邮箱”然后 选择三次 Y生成密钥然后 将 密钥 绑顶到 自己的gitee 的仓库上注意生成的密钥 不要有空格使用 ssh git@girhub.cm如果 successfully 则证明绑定成功本文链接:https://blog.csdn.net/m0_37852382/articl
2021-10-13 23:00:00
780
原创 docker下安装redis
docker 下 下载 redis1. 下载镜像docker pull redis (不写版本号就是最新版本)2. 创建实例并启动mkdir -p /mydata/redis/conftouch /mydata/redis/conf/redis.conf/-p 映射端口号/ -d 以 redis 启动/ -v 进行挂载docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \-v /mydata/redis/
2021-10-13 18:49:04
74
原创 session,cookie和token的区别
session,cookie和token的区别http 是一个无状态协议什么使无状态协议?就是这一次请求和上一次请求是没有关系的,互不认识的,没有关联的。这种无状态的好处是快速。cookie和session由于http的无状态性,为了使某个域名下的所有网页能够共享某些数据,session和cookie出现了。客户端访问服务器的流程如下首先,客户端会发送一个http请求到服务器端服务器端接受客户端请求后,建立了一个seesion,并发送一个http响应到客户端,这个响应头,其中就包含S
2021-10-12 13:32:09
158
原创 虚拟机VM VitualBox
1. 创建虚拟机安装 Oracle VM VitualBox安装 vagrant安装 镜像 CS/7vagrant init centos/7 //拉取镜像vargant up // 下载注意:Vagrant 爆出 UndefinedConversionError 错误参考原文链接:https://blog.csdn.net/weixin_44655599/article/details/1129132192. 在命令控制它使用 CTRL + C 中断使用 vagr
2021-10-12 13:04:23
218
原创 分布式基础概念
分布式基础概念1. 微服务 微服务是一种非常流行的架构风格,就像是一个单独的应用程序开发为一套小服务,每个小服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务围绕业务能力来构建,并且通过完全自动化部署机制来独立部署。这些服务使用不同的编成语言来书写,以及不同数据存储技术,并保持最低限度的集中式管理。微服务:拒绝大型单体应用,基于业务边界进行服务微化,拆分。独立部署运行的。不同服务之间 , 可以通过HTTP API发送请求,来实现。2. 集群 &分布式 &am
2021-09-30 13:10:02
74
原创 前后端提交问题
前后端 提交问题提交 和 后台接收对象没有嵌套 415报错axios.post(’/major/add’,qs.stringify(Major))把JSON对象转化为application/x-www-form-urlencoded俗称是form表单形式提交add(Major major)对象有嵌套axios.post(’/major/add’,Major) Major是JSON对象 后台无法直接处理,要加@RequestBodyadd(@RequestBody Major m
2021-09-18 11:04:17
127
原创 渐进式框架Vue
渐进式框架Vue1. 什么是vue?类似于一套构建用户界面的渐进式框架。与其他重量级框架不同,Vue采用自底向上增量开发设计。渐进式:就是阶梯式向前,vue是轻量级的,它有很多独立的功能或库,我们会根据我们的项目来选用vue的一些功能,我们开发项目时,只用到vue的声明式渲染,我就只用vue的声明渲染,而我们要用它的组件系统,我们可以使用它的组件系统。Vue的渐进式表现:声明式渲染----组件系统-----客户端路由------大数据装填管理-------构建工具2. vue中两个核心点响应
2021-09-18 11:00:28
3244
原创 Spring
1.SpringSpring是一系列框架Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。Spring核心,SpringMVC,Spring BootSpring核心:DI,IOC,AOP,容器contextSpringMVC代替了Servlet (SSM,Spring+SpringMVC+MyBatis) (SSH , Spring+Struts+Hibernate)Spr
2021-09-18 10:59:11
275
原创 # 1. 正则表达以及失去焦点验证的JS书写
1. 正则表达以及失去焦点验证的JS书写<script> function leave(a) { var reg = /^[ \u4e00-\u9fa5a-zA-Z0-9_-]{5,16}$/;//[ title: [/^[a-zA-Z0-9_-]{5,16}$/, '用户名是5-16不含空的字母'], if (reg.test(a.value) != true) { var username = a.value;
2021-09-18 10:56:30
327
原创 # Python 中特殊的内置函数
Python 中特殊的内置函数内置函数内置函数 BIF 是Python的内置对象类型之一,封装在标准库模块__builtins__中,可以直接在程序中使用,如 input()函数、print()函数、abs()函数数等为什么推荐使用?因为Python中内置函数使用c语言进行优化,运行速度快关键的内置函数range()函数range() 函数 返回一个整数序列的迭代对象。格式:range([start,]stop[,step])start为计数初始值,默认从0开始。sto为最终值,但不
2021-09-18 10:55:45
143
原创 Mybatis性能提升
MYyBatis性能提升主要思想:减少查询次数1. 合并SQL使用大量的左连接 起别名进行sql合并为什么?因为这样可以将多条查询结果合并成一条输出,提高了效率。selectById是一条结果一条的查询,消耗大量的性能。注意左连接 left join xxx on 可以多个添加 连续左连接 没有问题注意别名问题 避免出现二义性。所以尽量谁的属性就使用别名.属性select xxx from table1,table2 where t1.xx == t2.xx; <result
2021-09-18 10:54:28
526
原创 Servlet和JSP
导入外来项目maven的版本要一致resource 需要进行标记 标记成资源目录Maven 进行clean 在进行生成将Maven项目转换成Web项目ServletServlet 是什么?就是在web服务器上运行的Java程序JSPJava Server Pages运行在服务器上的页面支持Servelet 和JSP 需要引入Pom <dependency> <groupId>javax.servlet</group
2021-09-18 10:53:37
191
计算机科学与技术相关算法实验报告
2020-08-05
计算机组成实验1-5,含有设计图
2020-08-05
# MySQL 面试题.md
2020-08-04
jQuery 的知识.md
2020-07-24
Bootstrap4总结.md
2020-07-16
控制器的基本组成与实现.md
2020-07-16
组原课程设计报告.doc
2020-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人