自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 java文件查看大小,压缩,文件下载工具类

【代码】java文件查看大小,压缩,文件下载工具类。

2023-10-27 10:05:14 190

原创 java使用ffmpeg截取视频流片段

【代码】java使用ffmpeg截取视频流片段。

2023-10-17 14:17:12 268

原创 java使用ffmpeg间隔一秒截rtsp流图片

【代码】java使用ffmpeg间隔一秒截rtsp流图片。

2023-10-17 14:15:38 438

原创 java后端校验

当我们想提供可靠的 API 接口,对参数的校验,以保证最终数据入库的正确性,是 必不可少 的活。比如下图就是 我们一个项目里 新增一个菜单校验 参数的函数,写了一大堆的 if else 进行校验,非常的不优雅,比起枯燥的 CRUD 来说,参数校验更是枯燥。这只是一个创建菜单的校验,只需要判断菜单,菜单 url 以及菜单的父类 id 是否为空,上级菜单是否挂载正确,这样已经消耗掉了 30,40 行代码了,更不要说,管理后台这种参数贼多的接口。估计要写几百行校验代码了。

2023-07-26 15:48:29 1325

原创 Hutool工具类excel导出详细教程

【代码】Hutool工具类excel导出详细教程。

2023-07-06 15:00:25 4338

原创 docker以及docker-compose部署常用命令以及注意事项

2-docker-compose命令。

2023-06-15 17:39:32 100

原创 java检测磁盘空间大小

【代码】java检测磁盘空间大小。

2023-03-30 11:10:09 345 1

原创 java封装windows服务检测工具类

【代码】java封装windows服务检测工具类。

2023-03-30 10:55:30 113

原创 使用javaCV截取摄像头图片

【代码】使用javaCV截取摄像头图片。

2023-03-20 18:08:27 367

原创 java后端实现省市区三级联动接口查询及数据库表下

5、创建service接口以及实现类。6、Controllerc接口。4、创建mapper.xml。3、创建mapper接口。

2023-02-14 17:38:11 3084 2

原创 java后端实现省市区三级联动接口查询及数据库表上

【代码】java后端实现省市区三级联动接口查询及数据库表上。

2023-02-14 17:35:38 1182 2

原创 Maven打包报错:找不到符号,类BASE64Encoder,程序包sun.misc或是“找不到程序包 java.lang”或者“程序包javax.crypto不存在”,以及解决方案

Maven打包报错:找不到符号,类BASE64Encoder,程序包sun.misc或是“找不到程序包 java.lang”或者“程序包javax.crypto不存在”,以及解决方案。

2023-02-01 16:14:33 1777

转载 盘点常用的九种设计模式

常用设计模式简析

2022-11-17 16:57:59 2136

原创 java自启动windows程序,监测服务及重启

java自启动windows程序,监测服务及重启。

2022-11-03 15:49:14 1201

原创 IDEA常用插件以及快捷键

idea常用插件和快捷键

2022-11-02 10:14:37 472

原创 java后端接口防止表单重复提交

java后端接口防止表单重复提交。

2022-11-01 17:28:59 947

原创 java实现sftp上传文件到服务器

java实现sftp上传文件到服务器。

2022-09-22 11:26:24 1508

原创 java实现ftp上传文件到服务器

java实现ftp上传文件到服务器。

2022-09-22 11:23:19 3277

原创 java实现截取视频方法

java截取视频片段

2022-08-25 16:03:39 2362 3

原创 java获取远程服务器目录,在远程服务器创建三级目录

创建远程文件夹

2022-08-25 15:09:52 1555

原创 HBuild X 终端无法使用,无法输入的解决方法

hbuilder初次使用

2022-08-15 14:28:10 579

原创 关于解决HbuilderX终端不能输入问题

1、首先参考修改配置文件2、更新最新版本3、重启Hbuilder

2021-11-24 11:43:57 1975

转载 Java基础面试题/知识点总结

基础概念与常识Java 语言有哪些特点?1、简单易学;2、面向对象(封装,继承,多态);3、平台无关性( Java 虚拟机实现平台无关性);4、支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持);5、可靠性;6、安全性;7、支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且很方便);8、编译与解释并存;JVM vs JDK vs JRE

2021-04-29 16:16:24 235

原创 Dubbo优雅上下线

什么是优雅上下线关于”优雅上下线”这个词,我没找到官方的解释,我尝试解释一下这是什么。首先,上线、下线大家一定都很清楚,比如我们一次应用发布过程中,就需要先将应用服务停掉,然后再把服务启动起来。这个过成就包含了一次下线和一次上线。那么,”优雅”怎么理解呢?先说什么情况我们认为不优雅:1、服务停止时,没有关闭对应的监控,导致应用停止后发生大量报警。2、应用停止时,没有通知外部调用方,很多请求还会过来,导致很多调用失败。3、应用停止时,有线程正在执行中,执行了一半,JVM进程就被干掉了。4、应用

2021-04-22 15:22:53 695

原创 7种内存泄露场景和13种解决方案

什么是内存泄露什么是内存泄露,通俗的来说就是堆中的一些对象已经不会再被使用了,但垃圾收集器却无法将它们从内存中清除。内存泄漏很严重的问题,因为它会阻塞内存资源并随着时间的推移降低系统性能。如果不进行有效的处理,最终的结果将会使应用程序耗尽内存资源,无法正常服务,导致程序崩溃,抛出java.lang.OutOfMemoryError异常。堆内存中通常有两种类型的对象:被引用的对象和未被引用的对象。被引用的对象是应用程序中仍然具有活跃的引用,而未被引用的对象则没有任何活跃的引用。垃圾收集器会回收那些未被

2021-04-22 15:11:17 4714

转载 面试必备常见存储引擎与锁的分类

MySQL的四大常见存储引擎谈到 MyISAM 和 InnoDB 了我们先来了解一下什么是存储引擎吧。 MySQL 中的数据用各种不同的技术存储在文件(或者内存)中,这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能,我们把这些不同的技术以及配套的相关功能称为存储引擎(也称作表类型)。MySQL默认配置了许多不同的存储引擎,我们可以选择不同的存储引擎来满足我们对数据的处理(存储、检索等)需求,以改善我们应用程序的整体功能。正因为 MySQL 存储引擎的多样性,使得

2021-04-22 15:01:05 130

原创 ConcurrentHashMap

1、ConcurrentHashMap的哪些操作需要加锁?答:只有写入操作才需要加锁,读取操作不需要加锁2、ConcurrentHashMap的无锁读是如何实现的?答:首先HashEntry中的value和next都是有volatile修饰的,其次在写入操作的时候通过调用UNSAFE库延迟同步了主存,保证了数据的一致性3、在多线程的场景下调用size()方法获取ConcurrentHashMap的大小有什么挑战?ConcurrentHashMap是怎么解决的?答:size()具有全局的语义,如何能

2021-04-16 16:33:15 259

转载 EhCache 缓存框架

Ehcache 介绍EhCache 从 Hibernate 发展而来,是一个纯Java的进程内缓存框架,具有快速、精干等特点。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。主要特性:1.快速,简单2.多种缓存策略3.缓存数据有两级:内存和磁盘,因此无需担心容量问题4.缓存数据会在虚拟机重启的过程中写入磁盘

2021-04-14 14:28:59 255

原创 equals和hashcode的联系和区别

总结equals方法的特性:自反性:就是自己反过来跟自己比,要返回true;比如x.equals(x) == true对称性:就是x.equals(y) == true时,也要y.equals(y) == true传递性:就是x.equals(y) == true,同时y.equals(z) == true,那么x.equals(z) == true一致性:就是传说中的幂等性,即x.equals(y)调用多次,都应该返回一样的结果非空和空比较则返回false的特性:就是x.equals(y)中,

2021-04-14 14:19:03 89

转载 Map简介

Map是一种存储键值对的数据集合,键以散列或者树形结构进行存储;为什么会设计Map接口呢?假设我们有一个员工类,里面有Id属性和姓名等其他信息,现在我们把所有员工都存到List里,然后要找出Id为001的员工,你会发现,你需要从List中遍历每个对象,然后取出Id进行比较;你会发现这种查找法效率很低,有点杀鸡用牛刀的感觉;这时如果有一个集合类,可以以键值对映射的方式的存储员工信息(Id作为键,员工信息作为值),那么就可以只遍历键列表,然后进行比较;你会发现这种查找法效率提高了很多,因为物尽其用了(

2021-04-08 10:44:54 3383

转载 从字节跳动到火山引擎(一) | Redis 云原生实践

Redis 在字节跳动有大量应用场景,在 2021 年央视春晚抖音红包雨活动中,火山引擎通过自研架构的 Redis 系统,为红包雨提供缓存服务,支撑超过 2.5PB 数据,保障了用户抢红包、拆红包体验的平滑顺畅。本文介绍了火山引擎基于字节跳动内部技术底蕴,围绕数据库 Redis 开展的云原生实践!Redis 是开发者日常工作中经常使用的典型 KV 存储,常年位居 DB-Engines Key-Value 存储第一。这是一种基于内存的存储,提供了丰富的数据结构,支持字符串类型、哈希/列表/集合类型以及 st

2021-04-02 11:04:39 1200

原创 数据库的持久化等级

数据持久化(Durability)是数据库系统的最基础功能之一. 我们把数据写入数据库, 期望未来能从数据库中再读出来, 即使中间经过了数据库进程重启或者计算机掉电重启, 数据依然在. 但是, 持久化被划分为许多等级, 每个等级所能承受的外界变化程度(容灾能力)不同. 之所以划分持久化等级, 直接原因是因为性能(单请求的处理耗时, Response Time), 间接原因是成本.磁盘持久化掉电重启级别的容灾能力, 是单机系统最低限度的持久化, 所以, 把数据写入磁盘, 才能称为持久化.如果数据只写入内

2021-04-02 10:16:48 478

转载 Redis 9种数据结构

5种普通数据结构这个没什么好说的,对Redis稍微有点了解的都知道5种最基本的数据结构:String,List,Hash,Set,Sorted Set。不过,需要注意的是,这里依然有几个高频面试题。Set和Hash的关系答案就是Set是一个特殊的value为空的Hash。Set类型操作的源码在t_set.c中。以新增一个元素为例(int setTypeAdd(robj *subject, sds value)),如果编码类型是OBJ_ENCODING_HT,那么新增源码的源码如下,事实上就是对dict

2021-04-01 10:07:31 893

转载 雪花算法原理

SnowFlake 算法是 Twitter 开源的分布式 id 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 id。在分布式系统中的应用十分广泛,且ID 引入了时间戳,基本上保持自增的,后面的代码中有详细的注解。这 64 个 bit 中,其中 1 个 bit 是不用的,然后用其中的 41 bit 作为毫秒数,用 10 bit 作为工作机器 id,12 bit 作为序列号。给大家举个例子吧,比如下面那个 64 bit 的 long 型数字:第一个部分,是 1

2021-03-30 15:47:26 147

转载 String的特性

String的不变性String在Java中特别常用,相信很多人都看过他的源码,在JDK中,关于String的类声明是这样的:public final class Stringimplements java.io.Serializable, Comparable<String>, CharSequence {}可以看到,String类是final类型的,那么也就是说,String是一个不可变对象。不可变对象是在完全创建后其内部状态保持不变的对象。这意味着,一旦对象被

2021-03-30 15:32:01 235

转载 干掉前端!3分钟纯 Java 注解搭个管理系统,我直接好家伙

今天要介绍的框架直接不用写页面了,话不多说,下边咱们直奔主题Erupt一个通用后台管理框架,据说有 超低代码量、 零前端代码、零 CURD操作、无需建表,纯Java注解开发等特色,号称三分钟就可以搭建一个完整的后台管理系统。额~ 听着好像还挺流批的,到底是不是有这么魔幻,咱们一起用起来感受下。首先来搭建一下环境,目前Erupt支持Java版本1.8.0及以上、Spring Boot版本2.0及其以上。搭建easypom.xml引入必要的jar包 <dependencies>

2021-03-26 19:25:03 180

转载 为什么要分库分表

1 什么是分库分表?其实就是字面意思,很好理解:分库:从单个数据库拆分成多个数据库的过程,将数据散落在多个数据库中。分表:从单张表拆分成多张表的过程,将数据散落在多张表内。2 为什么要分库分表?关键字:提升性能、增加可用性。从性能上看随着单库中的数据量越来越大、数据库的查询QPS越来越高,相应的,对数据库的读写所需要的时间也越来越多。数据库的读写性能可能会成为业务发展的瓶颈。对应的,就需要做数据库性能方面的优化。本文中我们只讨论数据库层面的优化,不讨论缓存等应用层优化的手段。如果数据库的查询

2021-03-24 17:02:55 626

原创 java中常用的锁

1、乐观锁乐观锁是一种乐观思想,假定当前环境是读多写少,遇到并发写的概率比较低,读数据时认为别的线程不会正在进行修改(所以没有上锁)。写数据时,判断当前 与期望值是否相同,如果相同则进行更新(更新期间加锁,保证是原子性的)。Java中的乐观锁: CAS,比较并替换,比较当前值(主内存中的值),与预期值(当前线程中的值,主内存中值的一份拷贝)是否一样,一样则更新,否则继续进行CAS操作。可以同时进行读操作,读的时候其他线程不能进行写操作。2、悲观锁悲观锁是一种悲观思想,即认为写多读少,遇到并发写的可能

2021-03-24 15:11:11 611

原创 Spring中的设计模式

1、Spring框架中使用的四种最常见的设计模式:单例模式工厂方法模式代理模式模板模式2.单例模式单例模式是一种确保每个应用程序仅存在一个对象实例的机制。在管理共享资源或提供跨领域服务(例如日志记录)时,此模式很有用。2.1 单例beans通常,单例对于应用程序是全局唯一的,但是在Spring中,此约束更宽泛。Spring定义的单例是在spring IOC容器中唯一。实际上,这意味着Spring只会为每个应用程序上下文的每种类型创建一个bean。Spring的方法不同于严格的单例定义,因为

2021-03-22 19:29:18 924

转载 Volatile与Synchronized的区别

VolatileVolatile 的特性:保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。(实现可见性)禁止进行指令重排序。(实现有序性)volatile 只能保证对单次读/写的原子性,i++ 这种操作不能保证原子性Volatile可见性当写一个volatile变量时,JMM会把该线程对应的工作内存中的共享变量值更新后刷新到主内存,当读取一个volatile变量时,JMM会把该线程对应的工作内存置为无效,线程会从主内存中读取共享变量。

2021-03-22 19:20:07 759

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除