枚举和注解以及异常处理

关于枚举:

1.枚举是一组常量的集合
2.可以这样理解:枚举是一种特殊的类,里面只包含一组有限的特定的对象
3.枚举类型通常使用全部大写, 【命名规范】
4.枚举对象根据需要,也可以有多个属性
day1023
1.当我们使用关键字enum开发一个枚举类时,默认继承Enum类(记住  用关键创建的枚举类都是子类 都继承了父类Enum)
2.如果我们使用的是无参构造器去创建对象,创建常量对象,则可以省略()
3.当有多个枚举对象时,要用,间隔 最后用分号结束
4.枚举对象必须放在枚举对象的行首
注意枚举不能实现继承,因为他本身就继承了Enum,但是可以实现接口

关于注解:

在使用Annotation时要在前面加上@符号,并把该Annotation当成一个修饰符使用
三个基本的Annotation:
1.@Override:限定某个方法,是重写父类方法,该注解只能用于方法里
2.@Deprecated:用于表示某个程序元素,   在某个类前加上后 表示这个类的周期已经结束 记过时 可以使用但不推荐使用
3.@SuppressWarnings:抑制编译器警告
看到 @interface override要知道这不是什么接口 是一个注解类
@Override:
   要注意 使用了override一定存在重写  而且只能存在方法前面
    @Deprecated:可以用于版本过渡升级     
@Target是修饰注解的注解,称为元注解
@SuppressWarnings: 抑制的警告还与位置相关,放在main方法前 就抑制整个main方法
all to suppress all warnings (抑制所有警告)
boxing to suppress warnings relative to boxing/unboxing operations(抑制装箱、拆箱操作时候的警告)
cast to suppress warnings relative to cast operations (抑制映射相关的警告)
dep-ann to suppress warnings relative to deprecated annotation(抑制启用注释的警告)
deprecation to suppress warnings relative to deprecation(抑制过期方法警告)
fallthrough to suppress warnings relative to missing breaks in switch statements(抑制确在switch中缺失breaks的警告)
finally to suppress warnings relative to finally block that don’t return (抑制finally模块没有返回的警告)
hiding to suppress warnings relative to locals that hide variable()
incomplete-switch to suppress warnings relative to missing entries in a switch statement (enum case)(忽略没有完整的switch语句)
nls to suppress warnings relative to non-nls string literals(忽略非nls格式的字符)
null to suppress warnings relative to null analysis(忽略对null的操作)
rawtypes to suppress warnings relative to un-specific types when using generics on class params(使用generics时忽略没有指定相应的类型)
restriction to suppress warnings relative to usage of discouraged or forbidden references
serial to suppress warnings relative to missing serialVersionUID field for a serializable class(忽略在serializable类中没有声明serialVersionUID变量)
static-access to suppress warnings relative to incorrect static access(抑制不正确的静态访问方式警告)
synthetic-access to suppress warnings relative to unoptimized access from inner classes(抑制子类没有按最优方法访问内部类的警告)
unchecked to suppress warnings relative to unchecked operations(抑制没有进行类型检查操作的警告)
unqualified-field-access to suppress warnings relative to field access unqualified (抑制没有权限访问的域的警告)
unused to suppress warnings relative to unused code  (抑制没被使用过的代码的警告)
四种元注解: Retension :
                     RetensionPolicy.SORCE:编译器使用后,直接丢弃这种策略的注解
                     RetensionPolicy.CLASS:编译器把注解记录在class文件中,当java程序运行时,JVM不会保留
                     RetensionPolicy.RUNTIME:这个会保留注解,程序可以通过反射来获取该注释
Target Documented Inherited

关于异常:

为了处理代码的某行错误而导致整个系统崩溃  Java提出了异常处理机制
将行代码选中  用快捷键 CTRL+alt+t
执行过程中的异常可分为两大类:
Error:jvm无法解决的严重问题(资源耗尽,栈溢出,jvm系统内部错误)
Excetion: 因为变成或偶然因素导致的一般问题,可以用针对性的代码进行处理(空指针访问,网络链接错误)这个可分为两类
                  运行时异常 编译时异常
编译异常:出现在源文件编译成.class文件中  运行异常:出现在class文件 
对于运行异常 一般是逻辑错误 必要时可以不做处理,因为这列一场很普遍,若处理可能会对程序的可读性和运行效率产生影响
编译时的异常 必须处置
几个常见的异常:
1 .NullPointException空指针异常
 当应用程序在需要对象的地方使用null时,抛出该异常
2.ArithmeticException 算数异常
3.SqlException操作数据库时,查询表发生异常
异常处理方式:
1.try-catch-finally 
try{
代码/可能有异常
}
catch(Exception e){
1.当异常发生时
2.系统将异常封装成Exception的对象e,传递给catch
3.得到异常处理对象,在代码中捕获发生时的异常,自行处理
注意:如果没有发生异常 catch代码块并不执行
}
finally{
//不管try代码块是否有异常发生,始终要执行finnally
}
2.throw
 
将异常抛出,交给调用者处理,最顶级的处理者是JVM
throw抛出异常并不能处理异常   利用方法调用的路径一层一层往上抛出  如果都不用try{}catch{}f{}处理
最终该异常抛出到JVM但JVM也不会处理    jvm会输出异常信息 会让程序中断
程序也有try-finall组合使用方法,这种方法相当于没有捕获异常,因此程序会直接退出  应用有于 执行某段代码,不管是否发生异常,都必须执行某个业务逻辑

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值