javaweb技术栈

单元测试

  1. 单元测试就是针对最小功能单元编写测试代码,Java程序最小的功能但愿是方法,因此,单元测试就是方法的测试,进而检查方法的正确性。
  2. 目前测试方法是怎么进行的,存在什么问题?
  • 只有一个main方法,如果一个方法的测试失败了,其他方法测试就会收到影响
  • 无法得到测试的结果报告,需要程序员自己去观察测试是否成功。
  • 无法实现自动化测试。
  1. Junit单元测试框架
  • JUnit是使用Java语言实现的单元测试框架,它是开源的,Java开发者都应当学习并使用Junit编写单元测试
  • 此外,几乎所有的IDE工具都继承了Junit,这样我们就可以再IDE中编写并运行Junit测试,Juni目前最新的版本是Junit5
  1. 优点
  • Junit可以灵活的选择执行那些测试方法,可以一件执行全部测试方法。
  • Junit可以生成全部方法的测试报告
  • 单元测试是单独进行的,不会影响其他的测试方法。

单元测试快速入门

需求:使用单元测试进行业务方法预期结果、正确性测试的快速入门。

分析

  • 将Junit的jar包导入到项目中

  • 编写测试方法:该测试方法必须是公共的无参数无返回值的非静态方法。

  • 在测试方法上使用@Test注解:标注该方法是一个测试方法

  • 再测试方法中完成被测试方法的预期正确性测试。

  • 选中测试方法,选择Junit运行,如果测试良好则是绿色;如果测试失败,则是红色。
    过程

  • 必须导入Junit框架的jar包

  • 定义的测试方法必须是无参数无返回值,且公开的方法

  • 测试方法使用@Test注解标记

Junit测试某个方法,测试全部方法怎么处理?成功的编辑是什么

  • 测试某个方法直接右键该方法启动测试。
  • 测试全部方法,可以选择类或者模块启动。
  • 红色失败,绿色通过

反射

  1. 反射概述
  • 反射是指对于任何一个Class类,在运行的时候都可以直接得到这个类的全部成分。
  • 在运行时,可以直接得到这个类的构造器对象:Constructor
  • 在运行时,可以直接得到这个类的成员变量对象:Fidld
  • 在运行时,可以直接得到这个类的成员方法对象:Method
  • 这种运行是动态获取信息以及动态调用类中成分的能力称为Java语言的反射机制
  1. 反射的第一步是什么?
  • 获取Class类对象,如此次啊可以解析类的全部成分
  1. 获取Class类的对象的三种方式
  • 方式一:Class c1 = Class.forName("全类名")
  • 方式二:`Class c2 = 类名.class
  • 方式三:Class c3 = 对象.getClass();

反射获取构造器对象

  1. 利用反射技术获取构造器对象的方式
  • getDeclaredConstructors()
  • getDeclaredConstructor(Class<?>...parameterTypes)
  1. 反射得到的构造器可以做什么?
  • 依然是创建对象的:public newInstance(Object...initargs)
  • 如果是非public的构造器,需要打开权限(暴力反射),然后再创建对象
  • setAccessible(bolean)
  • 反射可以破坏封装性,私有的也可以执行了

反射获取成员变量

  1. 利用反射技术获取成员变量的方式
  • 获取类中成员变脸的方法:getDeclaredFields()getDeclaredField(String name
  1. 反射得到成员变量可以做什么?
  • 依然是在某个对象中取值和赋值:void set(Object obj, Object value,Object get (Object obj)
  1. 如果某成员变量是非public的,需要打开权限(暴力反射),然后再取值、赋值
  • setAccessible(boolean

反射获取方法对象

  1. 利用反射技术获取成员方法对象的方式
  • 获取类中成员方法对象:getDeclaredMethods(),getDeclaredMethod(String name,Class<?>...parameterTypes)
  1. 反射得到成员方法可以做什么?
  • 依然是在某个对象中出发该方法执行:Object invoke(Object obj,Object...args)

反射的作用

  • 反射值作用在运行时的技术,此时集合的泛型不能产生约束了,此时是可以为集合存入其他类型的元素的。
  • 反省只是在编译阶段可以约束集合只能操作某种数据类型,在编译成Class文件进入运行姐u但的时候,其真实类型都是ArrayList了,反省相当于被擦除了。
  1. 反射的作用
  • 可以在运行的时候得到一个类的全部成分然后操作
  • 可以破坏封装性
  • 可以破坏泛型的约束性
  • 更重要的用途是:做JAVA高级框架

注解

  1. 注解的作用
  • 对Java中类 、方法、成员变量做标记,然后进行特殊处理
  • 例如:JUnit框架中,标记了注解@Test的方法就可以被当成测量方法执行,而没有标记的就不能当成测量方法执行
  1. 自定义注解
  • 自己做一个注解使用

动态代理-一种设计模式

  1. 代理是什么?
  • 一个对象,用来对被代理对象的行为额外做出一些辅助工作
  1. 在Java中实现动态代理的步骤是什么样的?
  • 必须存在接口
  • 被代理对象需要实现接口
  • 使用Proxy类提供的方法
  1. 通过代理对象调用的方法,执行的流程是什么样的?
  • 先走向代理
  • 代理可以为方法做一些额外的工作
  • 开发真正出发对象的方法的执行
  • 回到代理中,有代理负责返回结果给方法的调用者
  1. 动态代理的优点
  • 可以在不改变方法源码的情况下,实现对方功能的增强,提高了代码的复用性
  • 简化了编程工作、提高了开发效率,同时提高了软件系统的可扩展性。
  • 可以为被代理对象的送有方法做代理。
  • 非常灵活,支持任意接口累心的是想类对象做代理,也可以直接为接口本身做代理

XML

  1. XML是什么?
  • XML是一种可扩展的标记语言
  • 它是一种数据表示格式,可以用于自定义数据格式
  1. XML的作用是什么?
  • 用于进行存储数据和传输数据
  • 作为软件的配置文件
  • 最终需要被程序进行读取,解析里面的信息

XML文件的解析技术

  1. Dom解析的文档对象模型是什么样子的?
    Document对象:整个xml文档

Element对象:标签

Attribute对象:属性

Text:文本内容

  1. Dom常用的框架

Dom4j

(牵一发动全身的改shift+F6)


XML检索技术:XPath

  1. Xpath更适合信息检索
  2. 介绍
  • Xpath在解析XML文档方面提供了一独树一帜的路径思想,更加优雅高效
  • Xpath使用路径表达式来定位XML结点D

工厂设计模式的作用

  • 对象通过工厂的方式创建返回,工厂的方法可以为该对象进行加工和数据注入
  • 可以实现类与类之间的解耦操作

装饰设计模式

  1. 装饰设计模式的作用
  • 装饰模式指的是在不改变原类的基础上,动态的扩展一个类的功能。
相关推荐
drebander15 分钟前
使用 Java Stream 优雅实现List 转化为Map<key,Map<key,value>>
java·python·list
乌啼霜满天24918 分钟前
Spring 与 Spring MVC 与 Spring Boot三者之间的区别与联系
java·spring boot·spring·mvc
tangliang_cn24 分钟前
java入门 自定义springboot starter
java·开发语言·spring boot
程序猿阿伟24 分钟前
《智能指针频繁创建销毁:程序性能的“隐形杀手”》
java·开发语言·前端
Grey_fantasy34 分钟前
高级编程之结构化代码
java·spring boot·spring cloud
弗锐土豆41 分钟前
工业生产安全-安全帽第二篇-用java语言看看opencv实现的目标检测使用过程
java·opencv·安全·检测·面部
Elaine20239142 分钟前
零碎04 MybatisPlus自定义模版生成代码
java·spring·mybatis
小小大侠客1 小时前
IText创建加盖公章的pdf文件并生成压缩文件
java·pdf·itext
一二小选手1 小时前
【MyBatis】全局配置文件—mybatis.xml 创建xml模板
xml·java·mybatis
猿java1 小时前
Linux Shell和Shell脚本详解!
java·linux·shell