小结:
以后大多数时候,我们会使用注解,而不是自定义注解
注解给谁用?
编译器
给解析程序用
注解不是程序的一部分,可以理解为注解就是一个标签
测试:
public class Calculator { @Check public void add(){ String str =null; str.toString(); System.out.println("1 + 0="+(1+0)); } @Check public void add1(){ System.out.println("1 - 0="+(1-0)); } @Check public void add2(){ System.out.println("1 * 0="+(1*0)); } @Check public void add3(){ System.out.println("1 / 0="+(1/0)); } public void show(){ System.out.println("无bug"); } }
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Check { }
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.lang.reflect.Method; public class TestCheck { public static void main(String[] args) throws IOException { Calculator calculator = new Calculator(); Class aClass = calculator.getClass(); Method[] method = aClass.getMethods(); int number = 0; BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("a.txt")); for (Method method1 : method) { if (method1.isAnnotationPresent(Check.class)){ try { method1.invoke(calculator); } catch (Exception e) { number ++; bufferedWriter.write(method1.getName()+"方法异常"); bufferedWriter.newLine(); bufferedWriter.write("异常名称" + e.getCause().getClass().getSimpleName()); bufferedWriter.newLine(); bufferedWriter.write("异常的原因" + e.getCause().getMessage()); bufferedWriter.write("........................................"); bufferedWriter.newLine(); } } } bufferedWriter.write("一共出现" + number + "次异常"); bufferedWriter.flush(); bufferedWriter.close(); }
数据库的基本概述
1,数据库的英文单词:DataBase 简称 :DB
2,什么是数据库:用于存储和管理数据的仓库
3,数据库的特点:持久化存储数据,其实数据库就是一个文件系统
数据库的特点:
数据结构化
数据冗余度小:某一个数据可以作用在整个系统。
数据共享性好:数据可以被多个用户和多个应用共享使用。
数据独立性高:当数据库结构发生改变时,能保持应用程序尽可能不改变或少改变。
数据库保护:
1.安全性:保证只有赋予权限的用户才能访问数据库中的数据,防止对数据的非法使用。
2.完整性:保证输入到数据库中的数据满足相应的约束条件,以确保数据有效,正确。
3.并发控制:指当多个用户的并发进程同时存取,修改数据库时,相互干扰而得到错误的结果。
4.故障恢复:将数据库从错误状态恢复到某一个已知的正确状态的功能