Java web:是用java语言完成服务器端开发。
黑盒测试:不知道具体实现代码具体实现过程。通过给该段代码输入一些数据。看看是否输出的数据与预期相符。(不需要写代码)
白盒测试:可以知道代码的所有实现逻辑,运行时需要关注具体代码的实现逻辑。比如,代码是否高效、简洁。是否实现对应模块功能等。遇到有问题的模块或代码时,需要按需求更改代码。
1、junit单元测试
junit是用于java进行测试使用的包。基于白盒测试,需要下载插件(导入junit以依赖的运行环境)。
使用方法:定义一个测试类,一般在测试类名后面加上Test,包名命名一般在包名后面加Test。
定义测试类的方法:一般在需要测试类的前面加test,如testadd()。返回值为void,参数为空。
还需要给方法加@Test,但是如果不导入junit依赖的环境就会报错。
判定结果:
运行后,如果为红色则代表该段代码存在问题。绿色则代表该段代码没有问题。(指语法上)一般我们会用断言操作判断结果是否和预期结果一致。Assert.assertEquals(期望的结果,返回的值);
初始化方法:用于资源申请,所有测试方法在执行之前都会执行该方法。
使用:在方法之前加上@Before
释放资源方法:在所有测试方法执行完之后,自动执行该方法。
使用:在方法之前加上@After
反射:框架的灵魂。框架:半成品软件。开发时,在框架的基础上进行开发,可以简化开发流程。
将类的各个组成部分封装为其他对象,这就是反射机制。
要了解反射,我们需要了解java运行的过程。
如果你编写了一个叫a.class的类,运行时,java会通过jdk中的javac.exe将该类中的代码编译成字节码文件。而这些数据都是存储在硬盘上的。这是java运行的第一个阶段(源代码阶段)。
而你在程序中使用new a()来实例化对象,这个类就会运行。这是java运行的第三个阶段。(运行时阶段),具体运行过程是:当你使用new a()来实例化对象时,它会查找之前编译的字节码文件,找到字节码文件中的a对象,然后通过类加载器加载到内存进行执行。这个就是java运行的第三阶段。那么,内存中是怎样描述对象的呢?
java万物皆对象,在内存中,自然也有一个对象,叫Class类对象,而这个对象封装了对象的所有方法,如成员变量、构造方法、成员方法等,当然,类不止一个,所以这些都是数组,将a这个对象的具体实现通过Class类对象封装成其他对象,就是反射机制。
反射的好处:可以在程序运行过程中,操作这些对象。这个怎么理解呢?比如,你在类中定义了一个叫string str的字符串,当你用str.的时候,就会发现有许多对象可以使用。如:toString(),charAt()等,为什么有那么多对象可以使用呢?因为这些对象都是Class类对象中的,通过反射机制就能实现这么多的对象方法。
获取class对象的方式:
class.forName("全类名");//将字节码文件加载进内存,返回class对象。(第一阶段)
类名.class:通过类名的属性class获取。(第二阶段)
对象.getclass():getclass对象定义在Object类中定义,所以所有的类都能访问到。(第三阶段)
同一个字节码文件(*.class),只会被加载一次。所以,无论通过哪一种方式获取class对象都是同一个。
附图: