
Java
文章平均质量分 60
码农凯
这个作者很懒,什么都没留下…
展开
-
Java 序列化和反序列化,为什么要实现Serializable?
做服务化,需要把所有model包里的类都实现Serializable接口,同时还要显示指定serialVersionUID的值。听到这个需求,我脑海里突然出现了好几个问题,比如 说:什么时候需要用到序列化和反序列化呢?当我们只在本地JVM里运行下Java实例,这个时候是不需要什么序列化和反序列化的,但是我们需要将内存中的对象持久化到磁盘,数据库中时,当我们需要与浏览器进行交互时,当我们需要实现RPC时,这个时候就需要序列化和反序列化了。前两个需要用到序列化和反序列化的场景,是不是让我们有一个很大的疑问?我原创 2022-12-06 23:31:18 · 907 阅读 · 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 · 450 阅读 · 0 评论 -
实习Day(一)
实习Day(一)Gradle (一)Gradle是一个完全自动化的构建自动化系统,它使用您在Apache Maven和ApacheAnt上看到的概念。它使用基于编程语言Groovy的领域特定语言,这与ApacheMaven有所区别,后者使用XML进行项目配置。它还使用有向无环图来确定任务的运行顺序。几位开发人员创建了Gradle,并于2007年首次发布,并于2013年被Google用作Android项目的构建系统。它旨在支持预计将非常庞大的多项目构建。它也允许以增量方式添加到构建中,因为它知道项目原创 2022-04-14 08:55:47 · 455 阅读 · 0 评论 -
消息队列的学习 (一)
消息队列的学习 (一)MQ有哪些?如何选型?常见的:RabbitMQ,ActiveMQ,Kafka,RocketMQRabbitMQ 中小型公司,erlang语言天生具备高并发,开源易维护;RocketMQ 大公司,依赖于阿里,可能需要专人定制化开发;Kafka 大公司,若需要日志采集功能,首选kafka;1、MQ常用的使用场景异步:场景说明:用户注册后,需要发送注册邮件和注册短信流程:处理模式:引入中间件MQ,将消息写入消息队列,非必要的业务逻辑(注册邮件和注册短信)异步方式运行,加速响原创 2022-04-14 08:54:41 · 172 阅读 · 0 评论 -
后端开发小技巧(六)
后端开发小技巧(六)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 · 274 阅读 · 0 评论 -
后端开发小技巧 (五)
后端开发小技巧 (五)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 · 208 阅读 · 0 评论 -
当服务为分布式的时候,你没有该数据库的情况,去访问另一个服务并获取图片
当服务为分布式的时候,你没有该数据库的情况,去访问另一个服务并获取缩略图获取缩略图模块ServiceImpl// 写入的这个类 为工具类 调用其他服务的接口 @Autowired private TaskUtil taskUtil;@Override public ServiceResult queryWorkflowThumb(Integer workFlowId) { ServiceResult result = new ServiceResult(f原创 2022-03-17 20:53:56 · 162 阅读 · 0 评论 -
对于数据库 多表(左)连接 出现重复数据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 · 2204 阅读 · 0 评论 -
Utils工具类
1. UUID Utils本文链接:https://blog.youkuaiyun.com/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 · 2564 阅读 · 0 评论 -
重新传输的后端实现
重新传输的Controller实现 @RequestMapping(value = "/retransmissionByPlanId",method = RequestMethod.GET) @ApiOperation("通过计划id重新传输") public ServiceResult retransmissionByPlanId(String planId){ // 确认下流程 return planService.retransmissionB原创 2022-03-15 17:48:16 · 1063 阅读 · 0 评论 -
后端开发技巧(四)
后端开发技巧(四)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 · 310 阅读 · 0 评论 -
后端开发技巧(三)
后端开发技巧(三)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 · 404 阅读 · 0 评论 -
后端 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 · 308 阅读 · 0 评论 -
底层知识二
1. synchronized 与 Lock的区别及底层实现1).synchronized(以下用sync表示)与lcok区别?来源及用法:lock是一个接口,是java写的控制锁的代码,而synchronized是java的一个内置关键字,synchronized是托管JVM执行的。synchronized:在需要同步的对象中加入此控制,synchronized可以家在方法上,也可以加在特定代码块中,括号中标识需要锁的对象。lock:一般使用ReentrantLock类作为锁。在加锁和解锁处原创 2021-10-20 17:15:00 · 125 阅读 · 0 评论 -
底层知识零
JWT +Redis一、流程前端:前端拿到登录名和密码,使用JSEncrypt实现rsa将密码进行加密,然后传到后端后端:拿到密码通过后台的私钥进行解密,然后通过用户名查询到用户信息,通过用户信息的状态来判断登录结果前端:若后端验证成功则根据规则生成Token,并存入redis,且像前端返回token,前端将token和用户存到localstorage,客户端再次发送请求数据将携带token。后端:通过拦截器拦截请求,在请求头中拿到token,验证redis中是否由token,且是否过期,如果t原创 2021-10-20 12:58:39 · 317 阅读 · 0 评论 -
# 2020-12-30 面试题
2020-12-30 面试题1.最有效率的方法计算2*8?答:2<<3(左以相当于乘以2的3次方,右移相当于除以2的3次方)补充:我们为编写的类重写hashCode方法时,可能会看到如下所示的代码,为什么要使用这样的乘法运算来产生哈希码(散列码),而且为什么这个数是个素数,为什么通常选择31这个数?选择31是因为可以用移位和减法运算来代替乘法,从而得到更好的性能。说到这里你可能已经想到了:31 * num 等价于(num << 5) - num,左移5位相当于乘以2的原创 2020-12-30 16:16:53 · 130 阅读 · 0 评论 -
# 2020-12-29 面试题
2020-12-29 面试题1.面对对象的特征有哪些方面?抽象:抽象时将以类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。继承:继承时从以由类得到继承信息创建新类的过程。提供继承信息的类称为父类。得到继承信息的类称为子类。封装:通常认为是把数据和操作数据的方法绑定起来。对数据的访问只能通过一定义的接口。多态性:多态性实直允许不同子类型的对象对同一信息做出不同的响应。2.访问修饰符 public,private,protected 以及默认时的区别?修饰符 当前类原创 2020-12-30 16:16:31 · 86 阅读 · 0 评论 -
# Java Day08 复习+内部类+抽象类
Java Day08复习面对对象的特点封装、继承、抽象、多态怎么写一个类?类:同一个事物抽象出来的属性和方法对象: 把一个类实例化,具体到某个对象类中含有:属性 成员变量、构造方法 、普通方法 成员方法bean对象 :属性,一般就有 get/set方法关键字访问修饰符:pubilic、 protected (当前类、当前包、父子关系)、默认的 default(同类、同包)、 private(本类)static关键字:类加载时候加载,只执行一次优先级 优先于对象执行普通方原创 2020-08-25 08:57:49 · 173 阅读 · 0 评论 -
# Java Day03 流程控制结构
Java Day03Java 流程控制结构顺序结构选择结构 if-else循环结构 while 循环if 语句(多层嵌套)语法:if(判断条件){满足条件,执行语句}else{不满足条件,执行语句}-- 判断两个数的大小package com.ychs.demo;import java.util.*;/** * * @author yangkai * @version 1.0 * 判断两个数的大小 */public class Day03_01 {原创 2020-08-21 16:15:53 · 208 阅读 · 0 评论 -
# Java Day04 方法 和 数组
Java Day04复习switch 后面不能是 boolean double float型数据类型的转换:强制转换 由大范围转变成小范围自由转换 由小范围到大范围long 类型 和 double 类型 虚线 可能会缺少精度JDK JRE JVMJDK 是java编程环境 包含基本类库 和虚拟机JRE 是 包含基本的类库 含有 api 以及 虚拟机JVM 是虚拟机 不跨平台equise 和 ==equise 比较 是 String (equise里的==重写原创 2020-08-21 16:14:48 · 162 阅读 · 0 评论 -
# Java Day05 排序 Arrays函数 String函数
Java Day05排序冒泡排序分类 -------------- 内部比较排序数据结构 ---------- 数组最差时间复杂度 ---- O(n^2)最优时间复杂度 ---- 如果能在内部循环第一次运行时,使用一个旗标来表示有无需要交换的可能,可 以把最优时间复杂度降低到O(n)平均时间复杂度 ---- O(n^2)所需辅助空间 ------ O(1)稳定性 ------------ 稳定时间复杂度O(n*n)package com.ychs.demo;import ja原创 2020-08-21 16:14:10 · 229 阅读 · 0 评论 -
# Java Day06 对象与变量
Java Day06面向对象的语言以事物的对象为核心 给事物发送消息指令来解决对象适合做什么 我就封装成什么功能代表语言 c# 、Java特点符合人们的思想复杂事物简单化从执行者变成指挥者四大基本特性封装继承多态重载构造方法 创建对象 初始化对象构造方法 没有返回值调用 在初始化时自动调用构造方法 可以包含参数,参数一般是创建对象实例必须依赖的条件(前提条件)注意:类可以不声明构造方法,JVM会自动提供一个默认构造方法。如果自己提供一个构造方法,则不提供。面向原创 2020-08-21 15:20:53 · 154 阅读 · 0 评论 -
# Java Day05
Java Day05排序冒泡排序分类 -------------- 内部比较排序数据结构 ---------- 数组最差时间复杂度 ---- O(n^2)最优时间复杂度 ---- 如果能在内部循环第一次运行时,使用一个旗标来表示有无需要交换的可能,可 以把最优时间复杂度降低到O(n)平均时间复杂度 ---- O(n^2)所需辅助空间 ------ O(1)稳定性 ------------ 稳定时间复杂度O(n*n)package com.ychs.demo;import ja原创 2020-08-19 16:22:10 · 139 阅读 · 0 评论 -
Java Day01 入门知识
Java Day01 入门知识一、高级语言的比较C、C++与Java比较区别:C语言:面向过程C++语言:基于对象编程Java语言:完全面向对象①语法:Java语法与C++相似②平台:仅Java可以跨平台执行③速度:C/C++稍快于Java④内存:Java中内存自动管理,C/C++手工编程管理 ; Java有自动回收垃圾的机制,C/C++手动回收垃圾⑤应用领域:Java用于开发大型管理信息系统、Android手机软件开发;C主要用于OS系统底层软件开发、硬件设备驱动及智能电子设备软件开原创 2020-08-16 14:45:13 · 221 阅读 · 0 评论