
Java
文章平均质量分 71
Java开发
szhupeng
无人扶我青云志,我自踏雪至山巅。
展开
-
Java Comparable与Comparator的区别
Java 提供了两个接口来使用类的数据成员对对象进行排序:Comparable和Comparator。Comparable一个Comparable对象能够将自己与另一个对象进行比较。类本身必须实现java.lang.Comparable接口来比较它的实例。考虑一个Movie类,它的成员喜欢、评级、名称、年份。假设希望根据发行年份对电影列表进行排序。可以用Movie类实现Comparable接口,重写Comparable接口的compareTo()方法。 class Movie implemen原创 2022-01-16 14:22:36 · 1583 阅读 · 0 评论 -
Java枚举结合位运算实现多配置
项目中经常会碰到配置参数,根据参数配置不同作出不同的处理,枚举可以对参数的取值进行限制,也能清晰的知道应该传哪些参数,如果参数支持多个枚举值,通常可以采用数组或者可变长度参数,但是这样传参每次都需要进行遍历,然后进行对比来判断究竟传入了那些枚举值,不优雅。枚举序数每个枚举类都会有一个ordinal属性,这个属性代表着当前枚举值在枚举类中的序号。public enum Gravity { LEFT, //ordinal=0 TOP,原创 2021-07-10 11:53:57 · 993 阅读 · 0 评论 -
Java创建对象流程
在创建Java对象之前,必须将类字节码(.class文件)从文件系统加载到内存中。找到给定类名的字节码并将该代码转换为Java类实例称为类加载。每种类型的Java类都会对应创建一个类。原创 2021-01-17 23:45:47 · 233 阅读 · 2 评论 -
Java进程同步
场景进程A写文件,进程B读文件,进程B需要进程A写完才能读。方案java.nio.channels.FileLock 文件锁FileLock 是进程文件锁,用于进程间并发,控制不同程序(JVM)对同一文件的并发访问。每次通过FileChannel类的lock或tryLock方法获取文件锁时,都会创建一个文件锁对象。文件锁是当前程序所属的JVM实例持有的,一旦获取到文件锁(对文件加锁),要调用release(),或者关闭对应的FileChannel对象,或者当前JVM退出,才会释放这个锁。一旦某个进原创 2020-05-24 17:05:57 · 848 阅读 · 0 评论