Java
ming_rw
这个作者很懒,什么都没留下…
展开
-
使用flink-connector-jdbc实现flink写入clickhouse、mysql等
使用flink-connector-jdbc实现flink写入clickhouse、mysql等适用范围:flink1.11.0及之后版本,包名为flink-connector-jdbc编辑pom.xml中的<dependencies />小节添加依赖。 <dependency> <groupId>org.apache.flink</groupId> <artifactId>fli原创 2021-05-01 23:57:33 · 3062 阅读 · 0 评论 -
Java类加载机制之加载过程
类加载的过程加载–>链接–>初始化 其中链接过程分为验证、准备、解析三个步骤。加载过程概述1.通过全限定名获取定义此类的二进制字节流2.将静态字节码文件加载到内存中(方法区)成为运行时数据结构3.其中加载过程由类加载器执行,字节码文件加载到内存的同时也会创建一个类对象,作为访问类数据信息的接口类加载器系统自带的三种类加载器:1.启动类加载器(Bootstra...原创 2019-04-20 21:51:09 · 103 阅读 · 0 评论 -
类加载的时机(初始化的时机)
package com.nefu.testJVM;import java.lang.reflect.Field;import java.lang.reflect.Method;import org.junit.Test;public class TestClassLoader extends Father{ static { System.out.println("我是Cl...原创 2019-04-17 09:28:00 · 230 阅读 · 0 评论 -
关于volatile关键字及其可见性和非原子性的相关测试
volatile:一种轻量级的同步机制能够保证:1.内存可见性(通过强制刷新cpu中的数据) ;2.保证有序性;(通过禁止指令重排实现)不能保证:** 原子性。关于指令重排:指令重排是指在编译Java代码或者cpu执行字节码时,对字节码指令进行重新排序。volatile 如何禁止指令重排?(通过cpu指令内存屏障)1、在每个volatile写操作前插入StoreStore屏障,在写操...原创 2019-05-14 10:17:30 · 166 阅读 · 0 评论 -
JVM的初始化(<clinit>() 和 <init>() )
< clinit >()方法之前讨论过类加载过程的初始化。(加载–>链接–>初始化),实际上该初始化过程是指JVM的类初始化过程。由JVM生成初始化方法 < clinnt >(),执行该方法执行初始化过程。关于< clinit >()方法:1.由静态类变量显示赋值代码和静态代码块。2.执行顺序从上至下。其执行时机如之前所说(类加载发生的...原创 2019-05-10 19:52:57 · 461 阅读 · 0 评论 -
关于自定义比较规则
在实际的业务需求中,很多时候都需要自定义排序比较规则,以下来总结下在Java,Hadoop,和Spark下等不同场景下如何自定义排序比较规则。Java两种方式:1.实现Comparable接口,实现其中得compareTo方法2.实现Comparator接口,实现其中得compare方法case1如下:public class SortBean implements Comparable...原创 2019-07-18 18:41:20 · 452 阅读 · 0 评论