
笔记
文章平均质量分 57
txwy12
这个作者很懒,什么都没留下…
展开
-
java使用ffmpeg截取视频流片段
【代码】java使用ffmpeg截取视频流片段。原创 2023-10-17 14:17:12 · 474 阅读 · 0 评论 -
java使用ffmpeg间隔一秒截rtsp流图片
【代码】java使用ffmpeg间隔一秒截rtsp流图片。原创 2023-10-17 14:15:38 · 719 阅读 · 0 评论 -
docker以及docker-compose部署常用命令以及注意事项
2-docker-compose命令。原创 2023-06-15 17:39:32 · 148 阅读 · 0 评论 -
java检测磁盘空间大小
【代码】java检测磁盘空间大小。原创 2023-03-30 11:10:09 · 440 阅读 · 1 评论 -
java封装windows服务检测工具类
【代码】java封装windows服务检测工具类。原创 2023-03-30 10:55:30 · 152 阅读 · 0 评论 -
使用javaCV截取摄像头图片
【代码】使用javaCV截取摄像头图片。原创 2023-03-20 18:08:27 · 580 阅读 · 0 评论 -
java后端实现省市区三级联动接口查询及数据库表下
5、创建service接口以及实现类。6、Controllerc接口。4、创建mapper.xml。3、创建mapper接口。原创 2023-02-14 17:38:11 · 3711 阅读 · 2 评论 -
java后端实现省市区三级联动接口查询及数据库表上
【代码】java后端实现省市区三级联动接口查询及数据库表上。原创 2023-02-14 17:35:38 · 1522 阅读 · 2 评论 -
Maven打包报错:找不到符号,类BASE64Encoder,程序包sun.misc或是“找不到程序包 java.lang”或者“程序包javax.crypto不存在”,以及解决方案
Maven打包报错:找不到符号,类BASE64Encoder,程序包sun.misc或是“找不到程序包 java.lang”或者“程序包javax.crypto不存在”,以及解决方案。原创 2023-02-01 16:14:33 · 2008 阅读 · 0 评论 -
盘点常用的九种设计模式
常用设计模式简析转载 2022-11-17 16:57:59 · 2293 阅读 · 0 评论 -
java自启动windows程序,监测服务及重启
java自启动windows程序,监测服务及重启。原创 2022-11-03 15:49:14 · 1360 阅读 · 0 评论 -
IDEA常用插件以及快捷键
idea常用插件和快捷键原创 2022-11-02 10:14:37 · 617 阅读 · 0 评论 -
java后端接口防止表单重复提交
java后端接口防止表单重复提交。原创 2022-11-01 17:28:59 · 1116 阅读 · 0 评论 -
java实现sftp上传文件到服务器
java实现sftp上传文件到服务器。原创 2022-09-22 11:26:24 · 1586 阅读 · 0 评论 -
java实现ftp上传文件到服务器
java实现ftp上传文件到服务器。原创 2022-09-22 11:23:19 · 3359 阅读 · 0 评论 -
java实现截取视频方法
java截取视频片段原创 2022-08-25 16:03:39 · 2508 阅读 · 3 评论 -
java获取远程服务器目录,在远程服务器创建三级目录
创建远程文件夹原创 2022-08-25 15:09:52 · 1701 阅读 · 0 评论 -
关于解决HbuilderX终端不能输入问题
1、首先参考修改配置文件2、更新最新版本3、重启Hbuilder原创 2021-11-24 11:43:57 · 2241 阅读 · 0 评论 -
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 · 267 阅读 · 0 评论 -
Dubbo优雅上下线
什么是优雅上下线关于”优雅上下线”这个词,我没找到官方的解释,我尝试解释一下这是什么。首先,上线、下线大家一定都很清楚,比如我们一次应用发布过程中,就需要先将应用服务停掉,然后再把服务启动起来。这个过成就包含了一次下线和一次上线。那么,”优雅”怎么理解呢?先说什么情况我们认为不优雅:1、服务停止时,没有关闭对应的监控,导致应用停止后发生大量报警。2、应用停止时,没有通知外部调用方,很多请求还会过来,导致很多调用失败。3、应用停止时,有线程正在执行中,执行了一半,JVM进程就被干掉了。4、应用原创 2021-04-22 15:22:53 · 761 阅读 · 0 评论 -
7种内存泄露场景和13种解决方案
什么是内存泄露什么是内存泄露,通俗的来说就是堆中的一些对象已经不会再被使用了,但垃圾收集器却无法将它们从内存中清除。内存泄漏很严重的问题,因为它会阻塞内存资源并随着时间的推移降低系统性能。如果不进行有效的处理,最终的结果将会使应用程序耗尽内存资源,无法正常服务,导致程序崩溃,抛出java.lang.OutOfMemoryError异常。堆内存中通常有两种类型的对象:被引用的对象和未被引用的对象。被引用的对象是应用程序中仍然具有活跃的引用,而未被引用的对象则没有任何活跃的引用。垃圾收集器会回收那些未被原创 2021-04-22 15:11:17 · 5417 阅读 · 0 评论 -
面试必备常见存储引擎与锁的分类
MySQL的四大常见存储引擎谈到 MyISAM 和 InnoDB 了我们先来了解一下什么是存储引擎吧。 MySQL 中的数据用各种不同的技术存储在文件(或者内存)中,这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能,我们把这些不同的技术以及配套的相关功能称为存储引擎(也称作表类型)。MySQL默认配置了许多不同的存储引擎,我们可以选择不同的存储引擎来满足我们对数据的处理(存储、检索等)需求,以改善我们应用程序的整体功能。正因为 MySQL 存储引擎的多样性,使得转载 2021-04-22 15:01:05 · 154 阅读 · 0 评论 -
ConcurrentHashMap
1、ConcurrentHashMap的哪些操作需要加锁?答:只有写入操作才需要加锁,读取操作不需要加锁2、ConcurrentHashMap的无锁读是如何实现的?答:首先HashEntry中的value和next都是有volatile修饰的,其次在写入操作的时候通过调用UNSAFE库延迟同步了主存,保证了数据的一致性3、在多线程的场景下调用size()方法获取ConcurrentHashMap的大小有什么挑战?ConcurrentHashMap是怎么解决的?答:size()具有全局的语义,如何能原创 2021-04-16 16:33:15 · 350 阅读 · 0 评论 -
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 · 115 阅读 · 0 评论 -
数据库的持久化等级
数据持久化(Durability)是数据库系统的最基础功能之一. 我们把数据写入数据库, 期望未来能从数据库中再读出来, 即使中间经过了数据库进程重启或者计算机掉电重启, 数据依然在. 但是, 持久化被划分为许多等级, 每个等级所能承受的外界变化程度(容灾能力)不同. 之所以划分持久化等级, 直接原因是因为性能(单请求的处理耗时, Response Time), 间接原因是成本.磁盘持久化掉电重启级别的容灾能力, 是单机系统最低限度的持久化, 所以, 把数据写入磁盘, 才能称为持久化.如果数据只写入内原创 2021-04-02 10:16:48 · 538 阅读 · 0 评论 -
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 · 1019 阅读 · 0 评论 -
雪花算法原理
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 · 199 阅读 · 0 评论 -
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 · 267 阅读 · 0 评论 -
干掉前端!3分钟纯 Java 注解搭个管理系统,我直接好家伙
今天要介绍的框架直接不用写页面了,话不多说,下边咱们直奔主题Erupt一个通用后台管理框架,据说有 超低代码量、 零前端代码、零 CURD操作、无需建表,纯Java注解开发等特色,号称三分钟就可以搭建一个完整的后台管理系统。额~ 听着好像还挺流批的,到底是不是有这么魔幻,咱们一起用起来感受下。首先来搭建一下环境,目前Erupt支持Java版本1.8.0及以上、Spring Boot版本2.0及其以上。搭建easypom.xml引入必要的jar包 <dependencies>转载 2021-03-26 19:25:03 · 258 阅读 · 0 评论 -
为什么要分库分表
1 什么是分库分表?其实就是字面意思,很好理解:分库:从单个数据库拆分成多个数据库的过程,将数据散落在多个数据库中。分表:从单张表拆分成多张表的过程,将数据散落在多张表内。2 为什么要分库分表?关键字:提升性能、增加可用性。从性能上看随着单库中的数据量越来越大、数据库的查询QPS越来越高,相应的,对数据库的读写所需要的时间也越来越多。数据库的读写性能可能会成为业务发展的瓶颈。对应的,就需要做数据库性能方面的优化。本文中我们只讨论数据库层面的优化,不讨论缓存等应用层优化的手段。如果数据库的查询转载 2021-03-24 17:02:55 · 725 阅读 · 0 评论 -
java中常用的锁
1、乐观锁乐观锁是一种乐观思想,假定当前环境是读多写少,遇到并发写的概率比较低,读数据时认为别的线程不会正在进行修改(所以没有上锁)。写数据时,判断当前 与期望值是否相同,如果相同则进行更新(更新期间加锁,保证是原子性的)。Java中的乐观锁: CAS,比较并替换,比较当前值(主内存中的值),与预期值(当前线程中的值,主内存中值的一份拷贝)是否一样,一样则更新,否则继续进行CAS操作。可以同时进行读操作,读的时候其他线程不能进行写操作。2、悲观锁悲观锁是一种悲观思想,即认为写多读少,遇到并发写的可能原创 2021-03-24 15:11:11 · 684 阅读 · 0 评论 -
线程池工作原理和实现原理
为什么要使用线程池平时讨论多线程处理,大佬们必定会说使用线程池,那为什么要使用线程池?其实,这个问题可以反过来思考一下,不使用线程池会怎么样?当需要多线程并发执行任务时,只能不断的通过new Thread创建线程,每创建一个线程都需要在堆上分配内存空间,同时需要分配虚拟机栈、本地方法栈、程序计数器等线程私有的内存空间,当这个线程对象被可达性分析算法标记为不可用时被GC回收,这样频繁的创建和回收需要大量的额外开销。再者说,JVM的内存资源是有限的,如果系统中大量的创建线程对象,JVM很可能直接抛出OutOf转载 2021-03-22 19:03:03 · 828 阅读 · 0 评论 -
JVM总结
什么是JVMJVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。每一种平台的解释器是不同的,但是实现的虚拟机是相同的,这也就是 Java 为什么能够跨平台的原因了 ,当一个程序从开始运行,这时虚拟机就转载 2021-03-22 18:46:50 · 150 阅读 · 0 评论 -
GC 之 Heap 区内存模型的演进
俗说 GC 之 Heap 区内存模型的演进Qunar技术沙龙2021 年 3 月 17 日编程语言JavaJVM俗说 GC 之 Heap 区内存模型的演进篇首最近看到 GC 这个异常古老的话题又被抛了出来,OpenJDK11 中出现了大道至简、返璞归真的 Epsilon GC 垃圾回收器,ZGC,Shenandoah GC 作为在 G1 的基础之上的两个分别合入了 OpenJDK11 和 OpenJDK12 的项目,两个项目的代号分别为分别为 JEP333、JEP189,这两款目前正在发转载 2021-03-22 17:14:44 · 371 阅读 · 0 评论 -
Spring
详细描述什么是Spring?概念:spring是一个轻量级的框架,它的核心是IOC和AOP,使用基本的JavaBean完成我们以前只能由EJB完成的工作,取代EJB的臃肿和低效的开发模式优点:1、spring如同一个工厂,将所有的对象创建和销毁JavaBean交给spring管理,降低了对象之间的耦合性2、集成各种优秀的框架,封装了java EE中的一些难用的API降低了开发难度3、同时spring支持JUnit4,可以通过注解方便的测试spring程序4、支持AOP编程,可方便的实现对程序..原创 2020-12-17 15:37:28 · 213 阅读 · 0 评论 -
Spring相关注解-
什么是全文检索技术?应用场景,为什么使用Solr?全文检索:是目前使用最广泛的搜索引擎,它的工作原理是计算机索引程序扫描文章中每一个词,对每一个词建立索引,并指明该词出现的频率和位置,当用户查询时,检索程序根据事先建立的索引进行查找,并将结果返回给用户.应用场景:查询为什么使用solr:solr更加成熟,稳定.支持添加多种格式的索引.可以在不考虑索引的同时进行索引,速度更快.SpringMVC中的Bean是线程安全的吗? 说出你的解决方案?不是线程安全的 ;因为他是单例的被多个线..原创 2020-12-17 15:38:47 · 138 阅读 · 0 评论 -
MyBatis
什么是MyBatis?mybatis是一款基于java的持久层框架,可以避免jdbc代码手动设置参数以及获取结果集支持动态sql和高级映射相比于JDBC没有侵入性可以达到很好的解耦效果#{}和${}的区别是什么?#{}是预编译处理,mybatis处理#{}时将其当做?调用perpareStatement的set方法赋值是字符串替换,mybatis处理{}是字符串替换,mybatis处理是字符串替换,mybatis处理{}时,把${}替换成变量的值,应用场景:模糊查询,排序区别:$符..原创 2020-12-17 15:40:38 · 138 阅读 · 0 评论 -
SpringBoot
1、描述Spring @Configuration @Bean @ComponentScan @PropertySource @Value注解@Configuration:等同于spring的xml配置文件,表示开启注解配置,使用java代码可以检查类型安全@Bean:用bean标注方法,等价于xml中配置bean,交给spring管理@ComponentsScan:让spring Boot扫描到Configuration类并把它加入到程序上下文@PropertySource:加载指定的属性文原创 2020-12-17 15:41:40 · 153 阅读 · 0 评论 -
什么是多线程
1、什么是线程?线程和进程的区别?进程: 就是系统中运行的具有独立功能的程序,每运行一个程序就产生一个进程线程: 线程是进程的一个分支,帮助进程完成某一项功能区别:基本单位: 进程是系统进行资源分配的基本单位,线程是CPU调度资源的基本单位职责: 进程拥有自己独立的地址空间,而线程没有,它负责使用所属进程的地址空间共享数据开销:创建进程–>开销大,创建地址空间需要大量系统资源,创建线程–>开销小,只有一个内核对象和一个堆栈,切换进程–>开销大,切换线程–>开原创 2020-12-17 15:42:25 · 116 阅读 · 0 评论 -
Nginx
1、高并发、高可用、高性能高并发:是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间,吞吐量,每秒查询率QPS,并发用户数等。**响应时间:**系统对请求做出响应的时间。**吞吐量:**单位时间内处理的请求数量。**QPS:**每秒响应请求数。**并发用户数:**同时承载正常使用系统功能的用户数量。高可用:通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。高性能:是指服务响应时原创 2020-12-17 15:43:43 · 111 阅读 · 0 评论