- 博客(10)
- 收藏
- 关注
原创 Java中的SPI机制简介
总的来说Java中的SPI机制,(ServiceProviderInterface)服务发现机制,它会根据默认配置去加载配置中的类。在SPI的规定中,在Resource目录下建一个META-INF/services/的文件夹,新建一个文件以你自定义接口的权限定名命名,文件中填写你对这个接口的实现类的权限定名。通过java中的SPI机制就会去找到这个配置文件并实例化里面的实现类...
2020-10-22 19:36:16 160
原创 Java Annotation(注解)简述
此片文章只是说明一下注解的一些基本组成和一些参数,然后举个自定义注解的例子1.Java的Annotation主要由三个部分组成,Annotation. ElementTyp. RetentionPolicy2.Annotation接口当你自定义注解的时候一定会用到@interface ,这个就表示你自定义的这个接口继承了Annotation接口,它的源码中声明了几个方法,有兴趣可以看一下源码3.ElementType它是一个枚举类,里面有10个枚举值(jdk1.8)...
2020-10-02 13:38:06 172
原创 Java IO使用简略说明,字节流向字符的转换
这里只说明一些字节流和字符流的的使用和区别1.输入流和输出流的区分很简单就是针对程序内存而言,就是也内存为参照物,将数据从外设(磁盘、缓冲区、管道)向程序内存读,就是输入流(input);将程序内存中的数据写入到外设中,就是输出流。2.字节流与字符的转换很简单,就是生成一个字节数组bytes,然后使用字节流的read方法,将数据读取到数组中,然后new String(bytes) ,得到的String对象就是读取到的字节流。字符转为字节之后用String的getBytes方法就行,得到.
2020-10-01 12:55:39 200
原创 结合ReentrantLock获得锁分析AQS,lock过程分析
此篇文章只分析了ReentrantLock对象获得锁的一个过程。既然是结合ReentrantLock分析AQS,首先说明一下ReentrantLock的基本组成。RenntrantLock中有一个静态抽象内部类Sync,它继承了AbstractQueuedSynchronizer也就是AQS,Sync中有一个抽象方法lock()和一个已经实现的方法 nonfairTryAcquire。 RenntrantLock中有一个成员变量sync,用于引用具体的锁对象。 Reentrant...
2020-09-29 22:21:54 125
原创 Java 基本引用类型
Java基本引用类型强引用 Java默认就是强引用,一般声明的变量都是强引用,只要强引用存在,也就是强引用的这个对象在GC的可达性分析中是可达的,那么这个对象就一直不会被回收,即使JVM抛出 OutOfMemoryError(OOM)也不会回收Object strongReference = new Object(); // 强引用软引用 软引用主要用来声明一些非必要但是有用的对象,特点就是只要JVM中的heap的内存是足够的,在GC的时候是不会...
2020-09-21 18:19:06 95
原创 zookeeper搭建集群及配置文件、可能遇到的错误的解决办法
系统配置: Ubuntu20.04、zookeeper3.5.4安装zookeeper: zookeeper是依赖于jdk的,所以虚拟机中要用jdk环境,上述版本的jdk依赖是jdk1.8,注意是Oracle的jdk,如果是openJdk,可能会出现在启动zookeeper的时候nio包下面的一个方法找不到,导致启动不了。 安装zookeeper的指令:apt install zookeeper (注意权限问题)、 安装好之后,有几个目录需要注意...
2020-09-17 17:56:24 604
原创 Java 单列模式 懒汉饿汉 双重锁问题
1.饿汉模式//饿汉单例模式//线程安全 调用效率高 不能延迟加载public class SingletonHungry { //私有化构造器---不能再外部生成该类的对象,只用通过指定的接口才能得到 private SingletonHungry() { }; //提供静态成员变量,在类加载的时候初始化 private static SingletonHungry...
2020-04-19 10:52:01 564
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人