java后端开发
文章平均质量分 74
后端学习
杵意
王锡豪,code是爱好,有兴趣的可以关注,定不负代码不负卿。java开发工程师
展开
-
BigDecimal类:Java中的高精度浮点数处理
在Java编程中,浮点数(如float和double)的计算经常会导致精度问题,特别是在需要高精度的金融计算或科学计算中。为了解决这些问题,Java提供了BigDecimal类,它是一个任意精度的有符号十进制数,提供了用于算术、标度操作、舍入、比较、哈希算法和格式转换的不可变的、任意精度的有符号十进制数字。原创 2024-06-05 16:11:28 · 422 阅读 · 0 评论 -
java中对文件读写操作的几种方式
如果我们要从一个文件向另一个文件中写数据,那么会有几种方式呢,来看下。原创 2024-03-06 08:56:54 · 500 阅读 · 1 评论 -
java文件复制的方法,linux中可以使用mv复制并改名,java使用文件复制也可以实现。
使用 transferFrom() 方法来实现文件复制操作。这种方法利用了底层操作系统的零拷贝特性,效率更高。的方法实现文件的移动并改名以及文件的复制并改名。在java中可以使用其他方法代替。文件复制到指定路径并删除源文件 = 文件移动。原创 2024-02-29 09:45:29 · 635 阅读 · 0 评论 -
@RequestBody 注解内置的 HttpMessageConverter 实现类来解析请求体
在 Spring MVC 中,@RequestBody 注解默认使用内置的 HttpMessageConverter 实现类来解析请求体,并尝试将其转换为方法参数所需的对象类型。如果需要指定解析的数据类型,可以通过在方法参数上添加更具体的注解来实现。原创 2024-01-14 14:59:18 · 471 阅读 · 0 评论 -
JAVA查询当地天气,天气api
天气预报接口服务使用的聚合数据提供的免费接口,每天可以100次免费调用。可以通过https://www.juhe.cn/docs/api/id/73注册及开通。请求示例:http://apis.juhe.cn/simpleWeather/query?city=%E8%8B%8F%E5%B7%9E&key=接口地址:http://apis.juhe.cn/simpleWeather/query。接口备注:通过城市名称或城市ID查询天气预报情况。请求方式:http get/post。原创 2023-08-23 16:06:08 · 919 阅读 · 0 评论 -
项目中使用过的线程池ThreadPoolTaskExecutor
默认情况下,Spring中的方法是同步执行的,即方法调用会等待方法的执行完成后再继续。但有时候,某些方法可能需要执行一些耗时的操作,如果在主线程中执行,可能会导致响应时间过长或影响系统的吞吐量。这时,你可以使用 @Async 注解并结合 @EnableAsync 启用异步执行,从而将这些耗时操作放在独立的线程中执行,提高系统的性能和响应性。需要注意的是,为了使 @EnableAsync 注解生效,还需要配置一个 Executor(执行器),它负责管理异步方法的线程池。注解才会开启多线程的执行。原创 2023-07-31 10:44:22 · 282 阅读 · 0 评论 -
Java文字转语音功能实现
但是项目启动后出现了no jacob-1.18-x64 in java.library.path。找不到的可以私信我。下载之后ddl文件放在JDK的目录下即可。需要下载jacob-1.18,网上一堆。项目中引入pom文件。原创 2023-07-26 13:35:37 · 312 阅读 · 0 评论 -
Swagger-Bootstrap-UI
该UI增强包主要包括两大核心功能:文档说明 和 在线调试文档说明:根据Swagger的规范说明,详细列出接口文档的说明,包括接口地址、类型、请求示例、请求参数、响应示例、响应参数、响应码等信息,使用swagger-bootstrap-ui能根据该文档说明,对该接口的使用情况一目了然。原创 2023-07-09 10:19:09 · 3810 阅读 · 0 评论 -
minIo进行文件上传过程流程及工具类
【代码】minIo进行文件上传过程流程及工具类。原创 2023-06-06 15:11:28 · 1826 阅读 · 0 评论 -
箭头函数的多线程在开发中的常用配置类
拿Runable实现多线程举例,需要实体类继承runnable的接口。然后重新run方法。再新建一个Thread类去执行。我们也可以使用内部类及箭头函数去简化。原创 2023-05-24 14:21:13 · 717 阅读 · 0 评论 -
索引:索引知识重复习,什么是索引、索引的类型、建立索引及【最左匹配原则】、Explain查看sql的执行计划
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。简单说,把数据库比作一本书,索引就是书中的目录,索引就是用来快速查找数据库中的内容的。通过创建唯一索引,来保证数据库表中的每一行数据的唯一性。• 可以加快数据的检索速度。• 可以保证表数据的完整性与准确性索引需要占用物理空间。原创 2023-04-03 17:08:53 · 1234 阅读 · 0 评论 -
使用Aop,定义注解,开发项目日志业务【Aop 日志】
系统日志注解 被该注解标识的方法执行的时候会被AOP来拦截。然后记录相关的操作/*** 操作内容/*** 模块名/*** 操作类型定义好注解之后,进行aop拦截该注解的信息/*** 日志AOP增强@Aspect//获取注解 将注解位置定为切入点 @ Pointcut("@annotation(com.xx.xx.commons.annotation.SystemLog)") public void logPointcut() {原创 2023-03-01 10:21:21 · 328 阅读 · 0 评论 -
如何自定义注解,如何使用【注解】
在下面的例子中,我们声明了一个 Sweet 注解,接着在 Peach 类使用了 @Sweet 注解,但是并没有在 RedPeach 类使用该注解。注解可以保留到程序运行的时候,它会被加载进入到 JVM 中,所以在程序运行时可以获取到它们。元注解(meta-annotation)本身也是一个注解,用来标记普通注解的存留时间、使用场景、继承属性、文档生成信息。元注解是一个特殊的注解,它是 Java 源码中就自带的注解。注解可以通过Aop去配置注解的行为,让注解简单并作用最大化。原创 2023-02-28 14:12:48 · 334 阅读 · 0 评论 -
什么是循环依赖,spring是如何去解决循环依赖问题的?什么是三级缓存?【spring】
在我们的开发中,会不可避免的遇到Bean之间循环依赖的,所谓循环依赖,就是两个或者两个以上的Bean互相持有对方,这样在程序运行调用中,会出现这种循环依赖的现象,其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。} }这个就是循环依赖。自己依赖自己两个对象相互依赖多个对象相互依赖:用于存放完全初始化好的 bean,从该缓存中取出的 bean 可以直接使用。原创 2023-02-21 15:01:18 · 369 阅读 · 0 评论 -
Android,ios,安卓app推送消息通知,java后台向手机推送app的通知教程
个推是商用级的移动应用消息推送云服务供应商,客户端 SDK 支持 Android 和 iOS 两大平台,开发者集成 SDK 后,可以通过个推强大的 web 端及丰富的 API 开放接口,发送推送消息、统计分析推送效果。可有效提高 App 活跃度,增加用户留存率。原创 2023-02-09 16:15:54 · 6179 阅读 · 2 评论 -
如何将一个数学字符串计算运算并得出结果
如何将一个数学字符串计算运算并得出结果,例如字符串"3*(5+2)+(2*6)"需要运算出结果。或者a+b*c这样的格式,已知a=x1,b=x2,c=x3运算出结果。(存在小数精度丢失):利用Java内置的javascript引擎来运行字符串得出结果(正确的方法)自定义运算器,利用栈处理运算原创 2022-12-05 10:46:46 · 786 阅读 · 0 评论 -
java中如何让封装的实体类不返回为空的属性:@JsonInclude(JsonInclude.Include.NON_NULL)
这就导致很多数据为null,后来了解到还是有注解滴,那就是==@JsonInclude(JsonInclude.Include.NON_NULL)==今天在做需求的时候,遇到一个第三方对接的问题,对方要求的数据格式为只需要有值的字段,如果有的字段没有值的话,就不要传过去。如果简单的话,那我直接使用map创造几条数据就完事了,但是由于数据类型的不同,需求不同,对很多地段都有可能有值或者为空。这个注解就是不管有没有值,这个字段都不会返回到前端。将此注解加到对应的字段就可以。原创 2022-11-29 15:22:22 · 1440 阅读 · 0 评论 -
时间工具类-- LocalDateTimeUtil详解
具体的使用方法都在图中说明,主要是方便LocalDataTime的使用及操作。原创 2022-11-28 09:55:46 · 1505 阅读 · 3 评论 -
使用gitpull项目的时候第一次输错密码之后报错Authentication failed for “http://xxxxxx“
5、再在git bash中执行命令:git config --global credential.helper store。如果push遇到在输入密码是错误的后,就会报这个错误fatal: Authentication failed for。一般来说可能是你的连接git的密码有修改,但是本地配置没有修改。但是,git又没有提示修改用户名和密码的弹出框。2、输入命令git config --system --unset credential.helper。4、提示你输入用户名和密码,修改之。原创 2022-11-15 09:36:20 · 2074 阅读 · 0 评论 -
socket、WebSocket的使用,前后端发送消息的例子
WebSocket 协议在2008年诞生,2011年成为国际标准。所有浏览器都已经支持了。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。......原创 2022-08-31 13:58:05 · 3626 阅读 · 5 评论 -
【设计模式】单例模式,代理模式,工厂设计模式,装饰器模式,适配器模式,观察者模式,建造者模式....
Java 中一般认为有 23 种设计模式,我们不需要所有的都会,但是其中常用的几种设计模式应该去掌握。下面列出了所有的设计模式。需要掌握的设计模式我单独列出来了,当然能掌握的越多越好。总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者原创 2022-06-18 08:51:39 · 504 阅读 · 0 评论 -
【线程池】为什么要用线程池 线程池的运行原理 如何合理的配置线程池的大小
【线程池】为什么要用线程池 线程池的运行原理 如何合理的配置线程池的大小任务可以不需要等到线程创建就能立即执行。提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配、调优和监控核心线程(corePool):线程池最终执行任务的角色肯定还是线程,同时我们也会限制线程的数量,所以我们可以这样理解核心线程,有新任务提交时,首先检查核心线程数,如果核心线程都在工作,而且数量也已经达到最大核心线程数,则不会继续新建核心...原创 2022-06-01 14:14:51 · 3385 阅读 · 2 评论 -
一致性哈希算法原理【一致性哈希】
分布式缓存问题普通哈希假设我们有一个网站,最近发现随着流量增加,服务器压力越来越大,之前直接读写数据库的方式不太给力了,于是我们想引入Memcached作为缓存机制。现在我们一共有三台机器可以作为Memcached服务器,如下图所示。很显然,最简单的策略是将每一次Memcached请求随机发送到一台Memcached服务器,但是这种策略可能会带来两个问题:一是同一份数据可能被存在不同的机器上而造成数据冗余,二是有可能某数据已经被缓存但是访问却没有命中,因为无法保证对相同key的所有访问都被发送到相同原创 2022-05-21 16:29:00 · 138 阅读 · 0 评论 -
docker搭建mysql的集群(双主双从)
文章目录docker搭建mysql的集群(双主双从)主机创建用户并授权:链接Master(主)和Slave(从)链接两个主机docker搭建mysql的集群(双主双从)首先在docker上拉取mysql的镜像,以及运行起来四个mysql,不会的话大家可以去看我之前搭建一主一从的文章,在这里细节就不多演示了,直接从4台配置开始:我这里直接开过了:master,master01,slave,slave01四台进入master容器内部:docker exec -it mysql-master /bi原创 2022-04-30 12:48:45 · 4552 阅读 · 6 评论 -
springboot进阶,分页插件 pageHelper,Swagger整合,日志
文章目录1,课程回顾2,本章重点3,具体内容3.1 整合连接池3.2 springboot日志配置:3.3 springboot整合shiro3.4mybatis分页插件 pageHelper3.5 springboot整合thymeleaf (类似jsp模板)3.6 springboot整合swagger1,课程回顾1,springboot 简化springboot搭建和使用过程框架2,@SpringBootApplication 复合注解@Configuration 相当原创 2022-04-19 08:16:14 · 550 阅读 · 0 评论 -
什么是springboot,springboot入门
文章目录1,课程回顾2,本章重点3,具体内容3.1 什么是springboot3.2 特点3.3 Springboot hello world实例3.4 Springboot restful实例3.5 springboot项目启动的本质以及springboot自动装配的核心原理, @Import解析,@EnableAutoConfiguration,手写Starts3.6 springboot整合mybatis3.7 yaml的简介与配置1,课程回顾2,本章重点 什么是springboot原创 2022-04-18 09:02:30 · 348 阅读 · 0 评论 -
适配器模式,策略模式,责任链模式
1,课程回顾2,本章重点 1), 适配器模式 2), 策略模式 3), 责任链模式3,具体内容3.1 适配器模式(Adaptor Pattern)3.1.1 定义转换一个类的接口为客户端所需要的接口,将两个不兼容的类纠合在一起使用,这个转换的类就是适配器类。它属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份.它的宗旨就是,保留现有类所提供的服务,向客户提供接口,以满足客户的期望。3.1.2 生活例子(百度百科)中国的电源电压为 220V ,原创 2022-04-17 13:09:17 · 701 阅读 · 0 评论 -
设计模式-代理和观察者详解
文章目录1 代理模式(Proxy)1.1 概念:1.2 特点:1.3 实现:1)静态代理:2)JDK动态代理:3)CGLIB(Code Generation Library)动态代理:2 观察者模式(Observer Pattern)2.1 定义2.2 现实例子2.3 角色2.4 实现2.5 好处1 代理模式(Proxy)1.1 概念: 为其他对象提供一种代理以控制对这个对象的访问(对其他对象功能的增强)。在某些情况下,一个对象不适合或者不能直接引用另一个对象(委托类),而代理对象(代理类)可以原创 2022-04-16 09:03:15 · 906 阅读 · 0 评论 -
设计模式-单例和工厂详解
文章目录1 具体内容1.1 设计模式概念:1.2 设计模式的作用:1.3 设计模式类别:1.4 设计模式遵循的原则有7个:1、开闭原则(Open Close Principle)2、里氏代换原则(Liskov Substitution Principle)3、依赖倒转原则(Dependence Inversion Principle)4、接口隔离原则(Interface Segregation Principle)5、迪米特法则(最少知道原则)(Demeter Principle)sp6、合成复用原则原创 2022-04-14 09:29:30 · 1381 阅读 · 0 评论 -
Socket编程,TCP,UDP
文章目录1 IP和端口号 :2 TCP与UDP概念:3 Socket编程原理(基于TCP)4 TCP具体代码实现:模拟聊天:多线程:5 UDP程序原理:6 UDP主要类及方法:7 UDP具体代码实现:8 UDP 对聊1 IP和端口号 :IP和端口号组成网络地址IP(Internet Protocol),网络之间互连的协议,IP地址是区分不同计算机的唯一标识端口号是计算机逻辑通讯接口,不同的应用程序用不同的端口,网络应用程序的区分标识 // 2Byte =2B =16b 000原创 2022-04-13 09:27:12 · 846 阅读 · 0 评论 -
多线程二,线程同步Synchronized 和 ReentrantLock用法,死锁,线程池4种常用方式
文章目录1 线程同步Synchronized 和 ReentrantLock用法2 sleep和wait的区别3 死锁和如何防止死锁4 线程池概念和作用5 线程池4种常用方式6 线程池submit和execute区别1 线程同步Synchronized 和 ReentrantLock用法同步异步 :如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就 是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花原创 2022-04-12 08:36:32 · 537 阅读 · 0 评论 -
多线程一,什么是多线程,创建多线程的几种方式
1 多线程相关概念并发(Concurrent):在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。并行(Parallel):当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为原创 2022-04-11 07:00:37 · 21687 阅读 · 0 评论 -
第三章 spring aop
AOP(Aspect-Oriented Programming,面向切面编程),简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或业务封装起来,再把封装功能整合到业务中。 AOP的核心思想就是“将应用程序中的业务逻辑同对其提供支持的通用服务进行分离"好处:原创 2022-03-25 10:22:03 · 139 阅读 · 0 评论 -
第一章 Spring 的控制反转/依赖注入
第一章 Spring 的控制反转/依赖注入本章内容spring:春天 IOC:将创建对象的权力交给 spring 核心容器去控制。工厂模式BeanFactory: 懒汉ApplicationContext: 饿汉< bean id="" name="" class="" scope="" >getBean的三种方式: id 类型 id+类型创建对象的三种方式:1.默认使用无参构造创建 2.使用工厂静态方 3.实例方法生命周期: 单例对象原创 2022-03-06 17:55:50 · 429 阅读 · 0 评论 -
第二章 SpringMVC
文章目录第二章 SpringMVC回顾课前测:本章内容第一节:SpringMVC 的简介1.关于三层架构和MVC2.SpringMVC的概述3.SpringMVC的优点4. SpringMVC和 **Struts2** 的优略分析(记住面试题)第二节:SpringMVC的入门项目(*)1.需求分析2.环境的搭建2.1 创建web项目并拷贝jar包2.2 在web.xml文件中配置核心容器2.3 创建springmvc配置文件2.4 编写控制器并使用注解配置2.5 测试运行,观察结果。2.6 springMV原创 2022-03-05 08:27:51 · 452 阅读 · 0 评论 -
Maven入门级别使用
文章目录1.什么是Maven?2.为什么要用Maven?3.Maven的依赖管理,仓库分类第二节:Maven的安装和简单使用2.1 Maven的下载安装2.2 Maven的配置1.什么是Maven? Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Mave原创 2022-03-02 10:20:26 · 87 阅读 · 0 评论 -
报错:java.lang.ClassNotFoundException: io.opentracing.util.GlobalTracer
报错:java.lang.ClassNotFoundException: io.opentracing.util.GlobalTracer近来在做一个在线教育的项目,课程信息放在数据库,而视频放在阿里云,当前端调用删除小节课程时,需要删除阿里云上存储的视频,以及Mysql数据库的课程信息,因此要用到Feign远程调用,但是Edu消费者调用Vod生产者时,Vod后端报错:java.lang.ClassNotFoundException: io.opentracing.util.GlobalTracer提原创 2022-03-01 08:22:20 · 480 阅读 · 0 评论 -
mybatis-04 使用easycode方向生成代码,pageHelper分页插件使用,插件开发(拦截器)
一、使用easycode方向生成代码通用mapper1.加jar <!-- 通用Mapper --> <dependency> <groupId>com.github.abel533</groupId> <artifactId>mapper</artifactId> <version>3.0.1</version>原创 2022-02-26 09:05:26 · 1627 阅读 · 0 评论 -
mybatis-03 一级 二级缓存,使用注解开发
第一节 概念官网地址:https://mybatis.org/mybatis-3/zh/sqlmap-xml.html#cache MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。 为了使它更加强大而且易于配置,我们对 MyBatis 3 中的缓存实现进行了许多改进。默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。 要启用全局的二级缓存,只需要在你的 SQL 映射文件中添加一行。第二节 一级缓存知识点: 一级缓存原创 2022-02-25 08:45:57 · 294 阅读 · 0 评论 -
阿里云视频点播服务SDK的使用,视频文件上传测试
文章目录一、阿里云视频点播技术能力盘点1、应用场景2、功能介绍二、开通视频点播云平台1、选择视频点播服务2、开通视频点播3、选择按使用流量计费4、资费说明5、整体流程三、视频点播服务的基本使用1、设置转码格式2、分类管理3、上传视频文件4、配置域名5、在控制台查看视频6、获取web播放器代码一、阿里云视频点播技术能力盘点视频点播(ApsaraVideo for VoD)是集音视频采集、编辑、上传、自动化转码处理、媒体资源管理、分发加速于一体的一站式音视频点播解决方案。找到视频点播https://ww原创 2022-02-24 20:19:15 · 4200 阅读 · 0 评论