JAVA基础:单元测试;注解;枚举;网络编程 (学习笔记)

单元测试

操作步骤:

a.导包import org.junit;

b.三个注解 @Test @Before @After

c.点击@Test 运行就可以了

用在不需要控制台输入的情境下:javaweb,框架项目,微服务项目 供开发人员自己做测试。

java 复制代码
package com.page.test;

import com.page.entry.DVD;
import com.page.service.DvdService;
import com.page.service.impl.DvdServiceImpl;
import com.page.controller.DvdController;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@SuppressWarnings("all")
public class DVDTest {

    @Test
    public void test1(){
        DvdController controller=new DvdController();
        controller.menu();
    }
    DvdService service=null;
    @Before
    public void  testB(){
        service=new DvdServiceImpl();
    }

    @Test
    public void test2(){
        int i= service.getDataCount(new DVD());
        System.out.println("一共有"+i+"条数据");
    }

    @Test
    public void test3(){
        int i= service.getDataCount(new DVD());
        System.out.println("一共有"+i+"条数据");
    }

    @After
    public  void testA(){
        System.out.println("测试结束!");
    }


}

注解

一,注解的分类

1,jdk中的常用注解:

@SuppressWarnings("all") 抑制警告

@Deprecated 标记过时

@Override 表示重写方法

2,单元测试里的注解:

@Test

@Before

@After

3,javadao注释里的注解;

4,框架、javaweb里的注解。

5,元注解:修饰注解的注解就是元注解。

其中注意:

Ø @param @return和@exception这三个标记都是只用于方法的。

Ø @param的格式要求: @param 形参名 形参类型 形参说明

Ø @return的格式要求: @return 返回值类型返回值说明,如果方法的返回值类型是void就不能写

Ø @exception的格式要求: @exception 异常类型异常说明

Ø @param和@exception可以并列多个

枚举

一,创建

java 复制代码
package page.enumdemo;

public enum DVDType {
    恐怖,搞笑,穿越,古装
}

二,使用

java 复制代码
package page.test;

import page.entry.DVD;
import page.enumdemo.DVDType;

import java.util.Scanner;

public class EnumTest {
    public static void main(String[] args) {
        //赋值,取值,转换,枚举
        DVD dvd=new DVD();
        //1,直接赋值
        dvd.setDvdType(DVDType.古装);
        //2,控制台输入赋值
        Scanner input=new Scanner(System.in);
        String s=input.next();
        DVDType dvdType=DVDType.valueOf(s);
        dvd.setDvdType(dvdType);
        System.out.println(dvd.getDvdType());
    }
}

三,Enum类常用方法

java 复制代码
package com.msb.enum03;

public class TestSeason {
    //这是一个main方法,是程序的入口:
    public static void main(String[] args) {
        //用enum关键字创建的Season枚举类上面的父类是:java.lang.Enum,常用方法子类Season可以直接拿过来使用:
        //toString();--->获取对象的名字
        Season autumn = Season.AUTUMN;
        System.out.println(autumn/*.toString()*/);//AUTUMN
        System.out.println("--------------------");
        //values:返回枚举类对象的数组
        Season[] values = Season.values();
        for(Season s:values){
            System.out.println(s/*.toString()*/);
        }
        System.out.println("--------------------");
        //valueOf:通过对象名字获取这个枚举对象
        //注意:对象的名字必须传正确,否则抛出异常
        Season autumn1 = Season.valueOf("AUTUMN");
        System.out.println(autumn1);
    }
}

网络编程

  • 客户端

    java 复制代码
    package page.socketdemo;
    
    /**
     * 客户端:发送信息给服务器  问  "中午吃啥了?"
     */
    
    import java.io.*;
    import java.net.Socket;
    import java.util.Scanner;
    
    public class Asocket {
        public static void main(String[] args) throws IOException {
            while (true) {
                Scanner input = new Scanner(System.in);
                //设置一个socket对象,锁定服务器的IP和端口
                Socket socket = new Socket("127.0.0.1", 8888);
                //2.获得输出节点流
                OutputStream outputStream = socket.getOutputStream();
                DataOutputStream dos = new DataOutputStream(outputStream);
                //3.写入数据
                /*   dos.writeUTF("中午吃啥了?");*/
                System.out.println("请输入你要发送的信息:");
                dos.writeUTF(input.next());
                //4.接受服务器端回复的消息
                InputStream inputStream = socket.getInputStream();
                DataInputStream dis = new DataInputStream(inputStream);
                System.out.println("服务器回复:" + dis.readUTF());
                //4.关闭流资源
                dis.close();
                dos.close();
            }
        }
    }
  • 服务器端

    java 复制代码
    package page.socketdemo;
    
    import java.io.*;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.Scanner;
    
    /**
     * 服务器端
     */
    public class SSocket {
        public static void main(String[] args) throws IOException {
              Scanner input = new Scanner(System.in);
              ServerSocket ss = new ServerSocket(8888);
              while (true) {
                    System.out.println("服务器已启动!");
                    //通过系统类,一直关注一个端口号,判断是否有客户端发送请求
    
                    //2.接收发送过来的请求:
                    Socket socket = ss.accept();//accept();---可以阻塞线程
                    //3.获得输入流
                    InputStream inputStream = socket.getInputStream();
                    DataInputStream dis = new DataInputStream(inputStream);
    
                    //4.读出
                    String s = dis.readUTF();
                    System.out.println("客户端发来了的消息:" + s);
    
                    //5.回复
                    OutputStream outputStream = socket.getOutputStream();
                    DataOutputStream dos = new DataOutputStream(outputStream);
                    System.out.println("请回复客户:");
                    dos.writeUTF(input.next());
    
                    //5.关闭资源
                    dos.close();
                    dis.close();
              }
        }
    }

    cmd

相关推荐
饭小猿人3 分钟前
Android 腾讯X5WebView如何禁止系统自带剪切板和自定义剪切板视图
android·java
byoass7 分钟前
智巢AI知识库深度解析:企业文档管理从大海捞针到精准狙击的进化之路
开发语言·网络·人工智能·安全·c#·云计算
南境十里·墨染春水19 分钟前
C++笔记 STL——set
开发语言·c++·笔记
L16247620 分钟前
Win11 共享→Windows Server 访问故障总结(极简可复用)
开发语言·windows·php
Advancer-33 分钟前
第二次蓝桥杯总结(上)
java·算法·职场和发展·蓝桥杯
\xin44 分钟前
pikachu自编SQL(POST)
java·数据库·sql
一行代码一行诗++1 小时前
注释是什么和注释该怎么写(C语言)
java·前端·javascript
.柒宇.1 小时前
FastAPI 基础指南:从入门到实战
开发语言·python·fastapi
xyq20241 小时前
Go 错误处理
开发语言
JAVA面经实录9171 小时前
企业级java+LangChain4j-RAG系统 限流熔断降级
java·开发语言·分布式·langchain