
Java
文章平均质量分 74
吃不胖的茶叶蛋
这个作者很懒,什么都没留下…
展开
-
一种快速检测Mp4是否损坏的方法
一种快速检测Mp4是否损坏的方法由于项目上的需求,需要一种能快速检测MP4文件是否有效(即能正常播放)的方法。网络上搜索到的绝大多数方案是使用ffmpeg或者ffprobe。以ffprobe为例:ffprobe -v quiet -print_format json -show_format -show_streams -i '/root/**/test.mp4'如果能查询到类似于下图的video信息,表示该MP4文件是可以正常播放的ffprobe方案在绝大多数情况下都是正确的,但是在实际原创 2022-03-09 15:58:39 · 9266 阅读 · 3 评论 -
Mac Big Sur --ERROR launching JD-GUI
更新系统后,打开jd-gui报如下错误:ERROR launching 'JD-GUI'No suitable Java version found on your system!This program requires Java 1.8+Make sure you install the required Java version.解决办法:1、显示包内容2、找到文件universalJavaApplicationStub ,使用文本编辑器打开3、使用https://raw.g原创 2020-11-25 10:50:41 · 11020 阅读 · 25 评论 -
Mybatis源码之--XML完整解析流程
MyBatis源码解析(一)如何编译源码仓库地址1、idea中打开项目2、等待解析依赖备注:解析依赖的过程中有可能某些jar包的版本找不到,可自行在https://mvnrepository.com/ 找寻替代版本XML解析mybatis3支持注解方式声明SQL语句,但是最终经过mybatis内部解析,作用和使用XML定义是一样的。只要你理解了XML的整个解析流程,其实就已经吃透了mybatis。在阅读源码的过程中,mybatis的中文官网必须时刻去翻阅。特别是如下几章内容:入原创 2020-06-07 11:40:26 · 4281 阅读 · 2 评论 -
zookeeper高级特性
一般我们都是通过如下方式连接zk我们也可以在连接参数后面追加一个路径。这样的用法可以用来隔离应用。原创 2022-08-31 11:42:39 · 821 阅读 · 1 评论 -
zookeeper集群部署
创建dataDir目录;并分别,,启动。原创 2022-08-31 11:41:17 · 611 阅读 · 0 评论 -
Zookeeper leader选举源码分析(超详细)
在开始分析选举的原理之前,先了解几个重要的参数比如有三台服务器,编号分别是 1,2,3。编号越大在选择算法中的权重越大。值越大说明数据越新,在选举算法中的权重也越大或者叫投票的次数,同一轮投票过程中的逻辑时钟值是相同的。每投完一次票这个数据就会增加,然后与接收到的其它服务器返回的投票信息中的数值相比,根据不同的值做出不同的判断。LOOKING,竞选状态。FOLLOWING,随从状态,同步 leader 状态,参与投票。OBSERVING,观察状态,同步 leader 状态,不参与投票。.........原创 2022-08-31 11:40:29 · 1604 阅读 · 0 评论 -
acme.sh获取证书
命令可以携带很多参数, 来指定目标文件. 并且可以指定 reloadcmd, 当证书更新以后, reloadcmd会被自动调用,让服务器生效.(即配合第二步介绍的cron定时更新证书)登录阿里云,按照下图方式创建用户,记录下ID和Secret。发现已经存在定时任务了!(自动更新证书的作用)最终输出如下所示信息就表示证书申请成功了。注意:虽然第5步生成的key、cert、,但是通过上述命令拷贝后重命名了。并不会重新加载证书, 所以用的。(一个小提醒, 这里用的是。安装完成后,通过命令。...原创 2022-08-26 11:31:32 · 861 阅读 · 0 评论 -
cdn实战-七牛云
请求重定向到cdn.tangwx.site(加速域名),由于加速域名CNAME(映射)到了CDN厂商域名,所以请求静态资源实际访问的是CDN上的资源。如果CDN没有缓存资源(假设第一次请求),那么CDN就会向我们提供的回源Host请求静态资源,然后保存到CDN服务器上。源站测试:填入一个静态资源地址,如果测试通过,说明回源地址:端口号没问题。如上配置所示,当前所有请求(静态、动态)都是通过nginx反向代理到后端(几个概念,小萌新(比如我)可能不太懂,下面贴一下权威解释,大家再对照着上图强行理解吧!...原创 2022-08-26 11:27:30 · 1585 阅读 · 0 评论 -
Kettle-ActiveMQ Product插件开发笔记
ActiveMQ Product组件开发笔记概览前提该插件基于kettle 8.1.0.0-365 开发如果是其他版本,不保证可用。(由于继承的BaseStreamingDialog等父类会随版本而变化)本插件模仿官方Kafka插件源码编写:https://github.com/pentaho/big-data-plugin/tree/master/kettle-plugins/kafka暂不支持topic,需要的可自行修改源码(工程量应该不大)。必备模板相对ActiveMQ C原创 2021-07-02 16:10:07 · 512 阅读 · 1 评论 -
Kettle-ActiveMQ Consumer插件开发笔记
ActiveMQ Consumer插件开发笔记源代码https://github.com/tangwenixng/soyuan-activemq-plugin概览前提该插件基于kettle 8.1.0.0-365 开发如果是其他版本,不保证可用。(由于继承的BaseStreamingDialog等父类会随版本而变化)本插件模仿官方Kafka插件源码编写:https://github.com/pentaho/big-data-plugin/tree/master/kettle-plug原创 2021-07-02 16:04:22 · 1034 阅读 · 2 评论 -
Shiro+JWT 前后端分离方案
Shiro+JWT 前后端分离方案理论的东西就不说了,网上一大堆教程。因为我本身web应用做得比较多,所以本篇文章主要是结合SpringBoot来讲解。当然shiro也是支持standlon模式使用的(可以参考我的另一篇文章 自定义Realm)使用SpringBoot,最优的依赖方案是shiro-spring-boot-starter<dependency> <groupId>org.apache.shiro</groupId> <artifactI原创 2020-05-17 12:29:08 · 8025 阅读 · 2 评论 -
多线程
通过实现Runnable接口:/** * @author Rollen-Holt 实现Runnable接口 * */class hello implements Runnable { private String name; public hello() { } public hello(String name) { this.name = name转载 2015-11-11 17:07:13 · 367 阅读 · 0 评论 -
renderJson()返回的数据格式
首先,有一个实体类,KvmCluster(不用管父类):public class KvmCluster extends BaseReport{ /** * 时间 */ public String timeStamp; /** * 主机名 */ public String nodeName; /** * cpu核数原创 2016-09-01 21:06:01 · 17964 阅读 · 0 评论 -
字节流和字符流的区别
如果数据流中最小的数据单元是字节,那么称这种流为字节流;如果数据流中最小的数据单元是字符,那么称这种流为字符流 1. 字节流(byte) * InputStream、OutputStream * FileInputStream、FileOutputStream 示例代码: /** * 字节流 写操作 * @thr原创 2016-07-27 14:46:29 · 682 阅读 · 0 评论 -
计算两个日期之间相差的天数
/** * 计算两个日期之间相差的天数 * @param smdate 较小的时间 * @param bdate 较大的时间 * @return 相差天数 * @throws ParseException */ public static int daysBetween(Date smdate,Date原创 2016-07-27 14:51:55 · 573 阅读 · 0 评论 -
百分比转小数、计算百分比
java 将百分比转为小数 计算两个数的百分比package util;import java.text.DecimalFormat;import java.text.NumberFormat;import java.text.ParseException;public class NumberUtil { /** * 百分比转换成小数 * @author She原创 2016-07-29 15:21:09 · 1711 阅读 · 0 评论 -
java 日期格式化
日期格式化的示例:package util;import java.math.BigDecimal;import java.text.DateFormat;import java.text.DecimalFormat;import java.text.ParseException;import java.text.ParsePosition;import java.text.Si原创 2016-07-29 15:23:22 · 376 阅读 · 0 评论 -
在Java堆中创建对象的全过程
一、对象的创建在语言层面上,常仅仅是一个new关键字而已,而在虚拟机中,又是怎样的呢?虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。类加载通过后,接着就为新对象分配内存。对象所需内存的大小在类加载完成后便可完全确定。内存分配有两种方式:“指针碰撞”(B原创 2016-08-11 16:17:54 · 4038 阅读 · 0 评论 -
java运行时数据区
根据《深入理解java虚拟机》第二章内容整理而得。首先,贴一张结构运行时数据区结构图:java虚拟机运行时数据区由 程序计数器、虚拟机栈、本地方法栈、堆、方法区组成。(HotSpot虚拟机并不区分虚拟机栈和本地方法栈)1.程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码(Java 字节码原创 2016-08-11 15:47:50 · 483 阅读 · 0 评论 -
jdk动态代理
代理模式代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式一般涉及到的角色有:抽象角色:声明真实对象和代理对象的共同接口;代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对转载 2016-08-03 12:00:20 · 272 阅读 · 0 评论 -
Java String replace() 和 replaceAll()的用法
因为之前都是用用简单的replace(),今天碰到了replaceAll(),所以记下来。replace(String str1,String str2) 的用法很简单: str2代替str1即可public String replaceAll(String regex, String replacement):第一个参数是正则表达式 第二个是要替换的字符直接上代码:/** * 将2016-08原创 2016-09-09 17:40:36 · 9903 阅读 · 0 评论 -
jdbc连接oracle数据库
oracle驱动文件包: ojdbc.jar http://pan.baidu.com/s/1boPh1aJpackage connect_oracle;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;impo原创 2016-08-19 16:43:04 · 254 阅读 · 0 评论 -
javadoc 警告:编码 GBK 的不可映射字符
如果提示:编码 GBK 的不可映射字符 eclipse 生成javadoc乱码问题解决 如果源文件编码使用了utf-8编码,那么生成的文档可会有乱码,解决办法如下: Generate javadoc时, 在第三个对话框的”Extra Javadoc options” 文本框里面加上 -encoding UTF-8 -charset UTF-8原创 2015-12-01 10:40:10 · 560 阅读 · 0 评论