博客
关于我
JavaWeb基础知识综合总结
阅读量:364 次
发布时间:2019-03-04

本文共 2217 字,大约阅读时间需要 7 分钟。

JavaWeb基础知识综合总结

1. Junit单元测试

Junit是一种常用的单元测试框架,主要用于测试软件组件的行为。测试可以分为黑盒测试和白盒测试两种。

测试分类

  • 黑盒测试:不需要写代码,仅需提供输入,观察程序是否能输出预期结果。
  • 白盒测试:需要编写代码,关注程序的具体执行流程。

Junit使用:白盒测试

测试用例通常包括以下步骤:

  • 定义测试类

    • 类名建议为被测试类的名称加“Test”(如CalculatorTest)。
    • 包名建议为cn.itcast.test等。
  • 定义测试方法

    • 方法名建议为被测试方法加“test”(如testAdd())。
    • 返回类型为void,参数列表为空。
  • 使用Junit注解

    • 测试方法上加@Test注解。
    • 初始化和资源释放方法可以使用@Before@After注解修饰。
  • 断言结果

    • 使用Assert.assertEquals进行结果判断。
    • 常用断言方法如assertEqualassertNotEquals等。
  • 示例代码

    @Beforepublic void init() {    System.out.println("init......");}@Afterpublic void close() {    System.out.println("close.....");}@Testpublic void testAdd() {    Calculator c = new Calculator();    int result = c.add(1,2);    Assert.assertEquals(3, result);}

    2. 反射:框架设计的灵魂

    反射机制允许在程序运行时对类进行动态操作,提高了程序的灵活性和可扩展性。

    Class对象获取方式

  • Class.forName("全类名")

    • 适用于配置文件中存储类名的情况,用于动态加载类。
  • 类名.class

    • 主要用于参数传递。
  • 对象.getClass()

    • 获取当前对象的字节码。
  • Class对象功能

    • 成员变量获取

      • getFields()获取public变量。
      • getDeclaredFields()获取所有变量。
    • 构造方法获取

      • getConstructors()获取public构造方法。
      • getDeclaredConstructors()获取所有构造方法。
    • 成员方法获取

      • getMethods()获取public方法。
      • getDeclaredMethods()获取所有方法。
    • 全类名获取

      • 使用getName()方法。

    Field操作

    • 设置值

      • set()方法,可通过setAccessible(true)暴力反射设置值。
    • 获取值

      • get()方法。

    Constructor操作

    • 创建对象
      • 使用newInstance()方法。

    Method操作

    • 执行方法
      • invoke()方法。

    案例:动态方法执行

    需求:在不修改源代码的情况下,动态创建任意类的对象并执行任意方法。

    实现步骤:

  • 将类名和方法存储在配置文件中。
  • 读取配置文件,加载类。
  • 使用反射创建对象。
  • 执行指定方法。
  • 示例代码

    import reflect.domain.Person;import java.io.IOException;import java.lang.reflect.Method;import java.util.Properties;public class ReflectTest {    public static void main(String[] args) throws Exception {        Properties pro = new Properties();        ClassLoader classLoader = ReflectTest.class.getClassLoader();        InputStream is = classLoader.getResourceAsStream("pro.properties");        pro.load(is);        String className = pro.getProperty("className");        String methodName = pro.getProperty("methodName");        Class cls = Class.forName(className);        Object obj = cls.newInstance();        Method method = cls.getMethod(methodName);        method.invoke(obj);    }}

    3. 注解

    注解是一种代码自解释的方式,可以在不修改源代码的情况下扩展功能。

    MySQL

    JDBC

    HTML和CSS

    JavaScript

    BootStrap

    XML

    Tomcat

    Servlet和HTTP请求协议

    Request和Response

    Cookie和Session

    JSP, EL和JSTL

    Filter和Listener

    jQuery

    Ajax和JSON

    Redis

    Maven基础


    本文内容整理自网络资源,版权归原作者所有,若有任何问题请联系原作者。

    转载地址:http://huer.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现操作注册表 (附完整源码)
    查看>>
    Objective-C实现攀登 n 级楼梯的不同方式算法(附完整源码)
    查看>>
    Objective-C实现改变图片亮度算法(附完整源码)
    查看>>
    Objective-C实现数乘以二multiplyByTwo算法(附完整源码)
    查看>>
    Objective-C实现数列的和(附完整源码)
    查看>>
    Objective-C实现数字图像处理算法(附完整源码)
    查看>>
    Objective-C实现数组切片(附完整源码)
    查看>>
    Objective-C实现数组去重(附完整源码)
    查看>>
    Objective-C实现数组的循环右移(附完整源码)
    查看>>
    Objective-C实现数组的循环左移(附完整源码)
    查看>>
    Objective-C实现数除以二divideByTwo算法(附完整源码)
    查看>>
    Objective-C实现整个字符串转换为小写字母算法(附完整源码)
    查看>>
    Objective-C实现整数N以内的质数算法(附完整源码)
    查看>>
    Objective-C实现文件传输(附完整源码)
    查看>>
    Objective-C实现文件分割(附完整源码)
    查看>>
    Objective-C实现文件拷贝(附完整源码)
    查看>>
    Objective-C实现文件断点传输(附完整源码)
    查看>>
    Objective-C实现文件的删除、复制与重命名操作实例(附完整源码)
    查看>>
    Objective-C实现无序表查找算法(附完整源码)
    查看>>
    Objective-C实现无锁链表(附完整源码)
    查看>>