Java
光圈1001
从事于金融反欺诈系统大数据研发工作
展开
-
flink设置watermark以及事件时间字段源码分析
flink设置watermark以及事件时间字段源码分析 背景 1.1、提取时间戳字段,用于事件时间语义处理数据 1.2、设置水位线(水印)watermark TimestampAssigner 核心接口介绍 TimestampAssigner 时间分配器接口 实现类关系图: 提取时间戳字段方法: TimestampAssigner 时间戳分配器, 提取数据流中的时间戳字段, public interface TimestampAssigner<T> extends Function {原创 2020-12-22 15:39:46 · 603 阅读 · 0 评论 -
从根本解决jenkins无法下载插件ssl证书问题
解决jenkins无法下载插件ssl证书问题 部分异常: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) 开始: 1、githua下载地址:原创 2020-12-13 13:52:23 · 3657 阅读 · 4 评论 -
linux环境部署zkUI
github地址:https://github.com/DeemOpen/zkui 1.1 github上下载源码: 1.2 打开自己的idea或者其他的编辑器,mavem打包(个人觉得在服务器上安装maven git麻烦,本地已经有现成的环境了) 1.3将打包生成的jar包和配置文件一起上传到服务器,两个文件需要放在同一个目录,源码里肯定读的是相对路径 (小槽点:为什么不直接把配置文件打进jar包,vim修改即可) 1.4 修改配置文件config.cfg,需要关注的参数: #访问端口 serverP原创 2020-12-12 19:29:48 · 313 阅读 · 0 评论 -
面试官:何谓守护线程?简述守护线程创建流程?
线程设置为守护线程的过程之源码分析 1 守护线程和用户线程的区别 1.1线程分为用户线程和守护线程,默认都是用户线程 1.2虚拟机必须确保用户线程执行完毕,但是不会等待守护线程执行完毕 1.3守护线程使用场景:操作日志 监控内存 垃圾回收 1.4当用户线程结束,守护线程也会跟着结束 2 守护线程是怎么创建的 2.1设置为守护线程的方法setDaemon,默认是传false,默认是用户线程,调用这个方法即可将线程设置为守护线程 public final void setDaemon(boolean on)原创 2020-12-10 20:47:06 · 651 阅读 · 0 评论 -
面试官:线程的优先级范围是多少?超出范围会如何?
1.1线程优先级范围 最小为1 最大为10 1.2 线程默认的优先级 默认为5 1.3 优先级高的并不一定是最先执行的,最终由cpu调用,但是大多数是优先级高的先执行 1.4 先设置优先级,再执行start启动线程 1.5 如果优先级不在范围内,则抛出异常IllegalArgumentException 定义线程优先级源码: /** * The minimum priority that a thread can have. */ public final static int原创 2020-12-09 22:35:51 · 1563 阅读 · 0 评论 -
【源码】探索String类的equals方法
先看Object里的equals方法 这里可以看出,Object类的equals和===是相同的 比较的 public boolean equals(Object obj) { return (this == obj); } Object里的hashCode方法 public native int hashCode(); Object类中的hashCode()方法,用的是native关键字修饰,说明这个方法是个原生函数,也就说这个方法的实现不是用java语言实.原创 2020-10-24 13:49:39 · 129 阅读 · 0 评论 -
抽象工厂JDK动态代理+InvocationHandler实现
核心接口和类 InvocationHandler newProxyInstance JDKProxy newProxyInstance 生成代理类的方法 返回指定接口的代理类的实例,该接口将方法调用分派给指定的调用处理程序。 loader:一个classloader对象,定义了由哪个classloader对象对生成的代理类进行加载 interfaces:一个interface对象数组,表示我们将要给我们的代理对象提供一组什么样的接口,如果我们提供了这样一个接口对象数组,那么..原创 2020-10-23 09:48:42 · 591 阅读 · 2 评论 -
【知识点】String是如何重写equals方法,比较对象的内容的?
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherSt原创 2020-10-17 14:37:52 · 388 阅读 · 0 评论