步调人生——Java罗列和注解利用发起

[复制链接]
发表于 2026-2-27 09:21:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×



引出

步调人生——Java罗列和注解利用发起

罗列和注解

发起83:保举利用罗列界说常量



  • 在项目开辟中,保举利用罗列常量替换接口常量和类常量)(常量分为:类常量、接口常量、罗列常量;
  • 罗列常量
    长处
    :

    • 1、罗列常量更简单;
    • 2、罗列常量属于稳态性(不答应发生越界);
    • 3、罗列具有内置方法,values方法可以获取到全部罗列值;
    • 4、罗列可以自界说方法

发起84:利用构造函数帮助形貌罗列项



  • 每个罗列项都是该罗列的一个实例。可以通过添加属性,然后通过构造函数给罗列项添加更多形貌信息
发起85:警惕switch带来的空值非常



  • 利用罗列值作为switch(罗列类);语句的条件值时,必要对罗列类举行判定是否为null值。由于Java中的switch语句只能判定byte、short、char、int范例,JDK7可以判定String范例,利用switch语句判定罗列范例时,会根据罗列的排序值匹配。假如传入的只是null的话,获取排序值必要调用如season.ordinal()方法时会抛出NullPointerException非常
发起86:在switch的default代码块中增长AssertionError错误



  • switch语句在利用罗列类作为判定条件时,克制出现增长了一个罗列项,而switch语句没做任何修改,编译不会出现标题,但是在运行期会发生非预期的错误。为克制这种情况出现,发起在default后直接抛出一个AssertionError错误。寄义是:不要跑到这里来,一跑到这里来立刻就会报错
发起87:利用valueOf前必须举行校验



  • Enum.valueOf()方法会把一个String范例的名称厘革为罗列项,也就是在罗列项中查找出字面值与该参数相称的罗列项。valueOf方法先通过反射从罗列类的常量声明中查找,若找到就直接返回,若找不到就抛出IllegalArgumentException非常
发起88:用罗列实现工厂方法模式更简便



  • 工厂方法模式是“创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延长到其子类”。罗列实现工厂方法模式有两种方法:1、罗列非静态方法实现工厂方法模式;2、通过抽象方法天生产物;长处:1、克制错误调用的发生;2、性能好,利用便捷;3、减低类间耦合性
发起89:罗列项的数量控制在64个以内



  • Java提供了两个罗列聚集:EnumSet、EnumMap;EnumSet要求其元素必须是某一罗列的罗列项,EnumMap表现Key值必须是某一罗列的罗列项。由于罗列范例的实例数量固定而且有限,相对来说EnumSet和EnumMap的服从会比其他Set和Map要高。Java处置处罚EnumSet过程:当罗列项小于即是64时,创建一个RegularEnumSet实例对象,大于64时创一个JumboEnumSet实例对象。RegularEnumSet是把每个罗列项编码映射到一个long范例数字得每一位上,而JumboEnumSet则会先按照64个一组举行拆分,然后每个组再映射到一个long范例的数字得每一位上
发起90:警惕注解继续



  • 不常用的元注解(Meta-Annotation):@Inherited,它表现一个注解是否可以主动被继续
发起91:罗列和注解联合利用威力更大



  • 注解和接口写法类似,都采取了关键字interface,而且都不能有实当代码,常量界说默认都是public static final范例的等,他们的紧张差别点:注解要在interface前加上@字符,而且不能继续,不能实现
发起92:注意@Override差别版本的区别



  • @Override注解用于方法的覆写上,它在编译期有效,也就是Java编译器在编译时会根据该注解查抄方法是否真的是覆写,假如不是就报错,拒绝编译。Java1.5版本中@Override是严酷服从覆写的界说:子类方法与父类方法必须具有雷同的方法名、输入参数、输出参数(答应子类缩小)、访问权限(答应子类扩大),父类必须是一个类,不是是接口,否则不能算是覆写。而在Java1.6就开放了许多,实现接口的方法也可以加上@Override注解了。假如是Java1.6版本移植到Java1.5版本中时,必要删除接口实现方法上的@Override注解
深入认识JVM

JVM内存分配,类加载

Java进阶(1)——JVM的内存分配 & 反射Class类的类对象 & 创建对象的几种方式 & 类加载(何时进入内存JVM)& 注解 & 反射+注解的案例

创建对象的4种方法总结

Java进阶(4)——联合类加载JVM的过程明确创建对象的几种方式:new,反射Class,克隆clone(拷贝),序列化反序列化

垃圾接纳GC


Java进阶(垃圾接纳GC)——理论篇:JVM内存模子 & 垃圾接纳定位扫除算法 & JVM中的垃圾接纳器
简介:本篇博客先容JVM的内存模子,对比了1.7和1.8的内存模子的厘革;先容了垃圾接纳的语言发展;叙述了定位垃圾的方法,引用计数法和可达性分析发以及垃圾扫除算法;然后先容了Java中的垃圾接纳器,由串行、到并行再到并发,末了到G1的演变;末了给出了垃圾接纳器的对比和利用指引。
JVM调优,Arthas利用



  • Java进阶(JVM调优)——阿里云的Arthas的利用 & 安装和利用 & 死锁查找案例,重新加载案例,慢调用分析
  • Java进阶(JVM调优)——JVM调优参数 & JDK自带工具利用 & 内存溢出和死锁标题案例 & GC垃圾接纳



认识多线程

创建多线程方法+相识线程池

Java进阶(5)——创建多线程的方法extends Thread和implements Runnable的对比 & 线程池及常用的线程池

多线程下-1非原子性标题即办理

Java进阶(6)——抢购标题中的数据不安全(非原子性标题)& Java中的synchronize和ReentrantLock锁利用 & 死锁及其产生的条件

再论线程,创建、生命周期

Java进阶(再论线程)——线程的4种创建方式 & 线程的生命周期 & 线程的3大特性 & 聚集中的线程安全标题
紧张内容:
1.线程创建的方式,继续Thread类,实现Runable接口,实现Callable接口,采取线程池;
2.线程生命周期: join():运行竣事再下一个, yield():暂时让出cpu的利用权,deamon():保卫线程,末告终束,sleep():假如有锁,不会让出;
3.线程3大特性,原子性,可见性,有序性;
4.list聚集中线程安全标题,hash算法标题;

总结

步调人生——Java罗列和注解利用发起
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表