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. 装饰设计模式的作用
  • 装饰模式指的是在不改变原类的基础上,动态的扩展一个类的功能。
相关推荐
BING_Algorithm几秒前
JDBC核心教程
java·后端·mysql
京师20万禁军教头几秒前
33面向对象(中级)-object类详解
java
一个小浪吴啊几秒前
重构 AI 编程流:基于 Hermes 记忆中枢与 OpenCode 执行终端的 Harness 工程化实践
java·人工智能·opencode·harness·hermes
Lyyaoo.6 分钟前
【JAVA网络面经】应用层协议
java·开发语言·网络
無限進步D11 分钟前
Java 面向对象高级 继承
java·开发语言
云烟成雨TD13 分钟前
Spring AI Alibaba 1.x 系列【37】ReactAgent 构建、执行流程分析
java·人工智能·spring
是宇写的啊22 分钟前
MyBaties
java·开发语言·mybatis
钝挫力PROGRAMER25 分钟前
程序中事件机制的实现
java·后端·python·软件工程
程序员威哥29 分钟前
Java调用YOLO模型性能优化实战:CPU/GPU加速与内存优化全指南
java·人工智能·后端
Xpower 1735 分钟前
OpenClaw Token 优化的技术方案与实践:OpenSpace 自进化 Skill 引擎
java·开发语言·人工智能