JAVASE加强

一、单元测试

       1、测试的目的:发现程序中的Bug

       2、主要测试方式

              黑盒测试:功能测试,关心功能是否实现,不关心代码。

              白盒测试:与黑盒相反,主要关心软件内部设计。

              灰盒测试:即关心功能,也关心内部设计。

       3、单元测试(模块测试)

              单元测试:是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。

              Junit3(了解)

              步骤:导包-自定义测试类继承TestCase-类中写测试方法-运行方法

              Junit4(掌握)

              步骤:导包-自定义测试类,在测试方法上写注解”@Test”,表示这是一个测试类,直接选中运行

             

              断言:就是程序结果是否达到预期,使用Assert类的方法

              注意:1、 Junit3和Junit4只能存在一个,同时存在的情况下,Junit3会报错

                       2、测试方法是公共无参无返回值的

二、jar包

       作用:希望自己写好的程序,在别的项目可以引用,或者使用别人写的代码

       导出jar步骤:File-->Export-->一步一步…

       引用:在自己项目创建一个lib存jar包,将jar与项目建立关联,配置到classpass中

       移除:在对应仓库remove Builder path

       classpath:配置文件中也可以修改

三、资源文件解析

       目的:解决硬编码问题(写死代码),从文件中读取数据

       配置文件:properties形式和XML形式

       方式一:传统io流方式:FileInputStream

       方式二:字节码对象获取流:XX.class..getResourceAsStream(“”)

       方式三:类加载器: XX.class.getClassLoader().getResourceAsStream(“”)

       方式四:使用线程类加载器(最常用)

              Thread.currentThread().getContextClassLoader().getResourceAsStream("")

      注意:

      1、资源文件不会编译到字节码文件中,src下资源文件,在编译后会保存在bin目录下。

      2、路径问题:

      字节码对象加载资源,不使用“/”是相对路径,字节码对象会到字节码同文件下去找;使用“/”,字节码对象会在bin目录下去找。

      类加载器加载资源,不使用“/”是在bin目录下找

    

四、ThreadLocal

       ThreadLocal,线程本地变量,在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。

       注意:之前学的卖票的情况不能使用这个类,是总共卖xx张票,而不是每个人卖xx张票。

       方法:

       get():获取线程副本值

       set():设置线程副本值

五、设计模式

      5.1 单例模式

       实际需求要求某个类对象只能存在一个的情况。

  特点:

    1.  对象构造私有化

    2.  私有静态当前类类型的字段

    3.  提供公共,静态对外的访问方法获取对象

       饿汉模式:加载时创建,线程安全

              缺点:加载效率低下,使用静态代码块,静态代码块在加载的时候不会初始化,只有使用时才会(如调用该类构造方法或调用静态方法)

         解决前

    解决后

  懒汉模式:需要时创建,线程不安全

              缺点:线程不安全,可以同步代码块synchronized解决,但效率较低,可以使用双重校验

              线程不安全:

    线程安全,但效率低

    使用双重校验

  5.2 装饰者模式

  装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。

  实现步骤 :通过对原类文件继承,对原有方法功能的基础上,实现新的功能

  理解:一个类的方法不能满足需求时,我们也不想修改原来的代码结构,又不想重新写类写相同的代码,这时,我们可以创建一个该类的子类,子类构造器中传入原来的类,在原方法的基础上修改,这也体现了代码的复用。

     5.3 工厂模式

  工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。

  实现步骤:使用工厂对象,根据传递的参数创建对象

     5.4 适配器模式

  适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。

原文地址:https://www.cnblogs.com/zwcnblog/p/9991625.html