Java期末测试

简介: Java期末测试

1.定义一个图形接口,一个有抽象方法。求周长子类实现接口,创建子类对象求周长

//1.定义一个图形接口,一个有抽象方法求周长
interface Shape{
  double girth(int length);
}
//2.子类圆形实现接口
class Circle implements Shape{
  int r;
  //创建有参构造方法
  public Circle(int r) {
    super();
    //将r赋值给成员变量r,this.r调用成员变量
    this.r = r;
  }
  //重写girth()方法,求出周长
  @Override
  public double girth(int length) {
    // TODO Auto-generated method stub
    return 2*3.14*length;
  }
}
//3.测试类
public class ShapeTest {
  public static void main(String[] args) {
    //将长度2添加到Circle对象中
    Circle c = new Circle(2);
    //通过Circle对象调用girth()方法
    System.out.println(c.girth(c.r));
  }
}

运行结果

12.56

2.随机输出500-560之间的30个,存到数组中,并升序排序

public class RandomTest {
  public static void main(String[] args) {
    //1.创建数组
    int[] arr = new int[30];
    //2.创建随机数对象
    Random random = new Random();
    //3.for循环,将随机数存到数组
    for(int i = 0;i<arr.length;i++) {
      arr[i] = random.nextInt(61)+500;
    }
    //4.for-each全部输出,升序
    Arrays.sort(arr);
    for (int a : arr) {
      System.out.print("\t"+a);
    }
  }
}

运行结果

500 501 501 501 501 502 503 503 505 505 513 515 517 524 526 531 534 535 535 540 540 541 543 549 550 551 556 557 557 559

3.输出流输出Stu对象,序列化,输入流读取到控制台

public class ObjectTest {
  public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
    //创建有参对象
    Stu s1 = new Stu("11","aa");
    Stu s2 = new Stu("22","bb");
    Stu s3 = new Stu("11","cc");
    //创建集合,将对象添加进去
    HashSet hs = new HashSet();
    hs.add(s1);
    hs.add(s2);
    hs.add(s3);
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\\a.txt"));
    //迭代器遍历
    Iterator iterator = hs.iterator();
    while(iterator.hasNext()) {
      Stu stu = (Stu)iterator.next();
      oos.writeObject(stu);
    }
    //关闭流
    oos.close();
    //对象输入流
    ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\\a.txt"));
    //读数据
    Stu stu1 = (Stu)ois.readObject();
    Stu stu2 = (Stu)ois.readObject();
    //显示在控制台
    System.out.println(stu1);
    System.out.println(stu2);
    //关闭流
    ois.close();
  }
}
class Stu implements Serializable{
  String id,name;
  public Stu() {
    super();
    // TODO Auto-generated constructor stub
  }
  public Stu(String id, String name) {
    super();
    this.id = id;
    this.name = name;
  }
  @Override
  public String toString() {
    return "id=" + id + ", name=" + name ;
  }
  @Override
  public int hashCode() {
    // TODO Auto-generated method stub
    return this.id.hashCode();
  }
  @Override
  public boolean equals(Object obj) {
    Stu s = (Stu)obj;
    return this.id.equals(s.id);
  }
}

运行结果

id=11, name=aa

id=22, name=bb

4.点击按钮判断登录是否成功

public class JframeLogin {
  public static void main(String[] args) {
    //创建窗口
    JFrame frame = new JFrame("窗口");
    //设置窗口
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(500,200,300,200);
    //创建面板
    JPanel panel = new JPanel();
    //创建组件
    Label label1 = new Label("账号:");
    JTextField textField1 = new JTextField(10);
    Label label2 = new Label("密码:");
    JPasswordField textField2 = new JPasswordField(10);
    JButton button = new JButton("登录");
    //将组件添加到面板上
    panel.add(label1);
    panel.add(textField1);
    panel.add(label2);
    panel.add(textField2);
    panel.add(button);
    //将面板添加到窗口上
    frame.add(panel);
    //可见窗口
    frame.setVisible(true);
    //事件处理
    button.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        //获取用户名输入框
        String username = textField1.getText();
        //获取密码框
        String pwd = new String(textField2.getPassword());
        //判断用户名和密码
        if(username.equals("123") && pwd.equals("123")) {
          //弹窗
          JOptionPane.showMessageDialog(frame, "登录成功");
        }else {
          JOptionPane.showMessageDialog(frame, "登录失败");
        }
      }
    });
  }
}

运行结果

5.在窗体上有标签,文本框,按钮,在文本框输入账号,点击确定,在数据库中查找是否存在

public class SelectTest {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    JFrame jf = new JFrame("查询");
    jf.setBounds(500, 200, 400 ,300);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //窗体上放中间容器
    JPanel jp = new JPanel();
    //面板上摆放组件
    JLabel jl = new JLabel("请输入账号");
    JTextField field = new JTextField(15);
    JButton btn = new JButton("查找");
    //将组件添加到面板上
    jp.add(jl);
    jp.add(field);
    jp.add(btn);
    //将面板添加到窗体上
    jf.add(jp);
    jf.setVisible(true);
    //事件处理
    btn.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        Connection con = null;
        Statement sta = null;
        ResultSet rs = null;
        String url = "jdbc:mysql://localhost:3306/teacherinfo?serverTimezone=UTC&useSSL=false";
        String user = "root";
        String password = "123456";
        try {
          Class.forName("com.mysql.cj.jdbc.Driver");
          con = DriverManager.getConnection(url, user, password);
          sta = con.createStatement();
          rs = sta.executeQuery("select * from info");
          boolean flag = false;
          while(rs.next()) {
            int id = rs.getInt(1);
            String idTxt = field.getText();
            if (idTxt.equals(String.valueOf(id))) {
              flag = true;
              break;
            }
          }
          if (flag==true) {
            JOptionPane.showMessageDialog(jf, "查找到了");
          }else {
            JOptionPane.showMessageDialog(jf, "没有找到");
          }
        } catch (ClassNotFoundException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
        } catch (SQLException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
        }finally {
          if (rs!=null) {
            try {
              rs.close();
            } catch (SQLException e1) {
              // TODO Auto-generated catch block
              e1.printStackTrace();
            }
          }
          if (sta!=null) {
            try {
              sta.close();
            } catch (SQLException e1) {
              // TODO Auto-generated catch block
              e1.printStackTrace();
            }
          }
          if(con!=null) {
            try {
              con.close();
            } catch (SQLException e1) {
              // TODO Auto-generated catch block
              e1.printStackTrace();
            }
          }
        }
      }
    });
  }
}

运行结果

目录
相关文章
|
4月前
|
算法 IDE Java
Java 项目实战之实际代码实现与测试调试全过程详解
本文详细讲解了Java项目的实战开发流程,涵盖项目创建、代码实现(如计算器与汉诺塔问题)、单元测试(使用JUnit)及调试技巧(如断点调试与异常排查),帮助开发者掌握从编码到测试调试的完整技能,提升Java开发实战能力。
444 0
|
9月前
|
缓存 监控 负载均衡
如何提升 API 性能:来自 Java 和测试开发者的优化建议
本文探讨了如何优化API响应时间,提升用户体验。通过缓存(如Redis/Memcached)、减少数据负载(REST过滤字段或GraphQL精确请求)、负载均衡(Nginx/AWS等工具)、数据压缩(Gzip/Brotli)、限流节流、监控性能(Apipost/New Relic等工具)、升级基础设施、减少第三方依赖、优化数据库查询及采用异步处理等方式,可显著提高API速度。快速响应的API不仅让用户满意,还能增强应用整体性能。
|
5月前
|
Java 编译器 数据安全/隐私保护
Java 大学期末考试真题与答案 含知识点总结 重难点归纳及题库汇总 Java 期末备考资料
本文汇总了Java大学期末考试相关资料,包含真题与答案、知识点总结、重难点归纳及题库,涵盖Java基础、面向对象编程、异常处理、IO流等内容,并提供完整代码示例与技术方案,助你高效复习备考。
267 3
|
5月前
|
安全 Java 测试技术
Java 大学期末实操项目在线图书管理系统开发实例及关键技术解析实操项目
本项目基于Spring Boot 3.0与Java 17,实现在线图书管理系统,涵盖CRUD操作、RESTful API、安全认证及单元测试,助力学生掌握现代Java开发核心技能。
250 0
|
5月前
|
安全 Java 测试技术
Java 项目实战中现代技术栈下代码实现与测试调试的完整流程
本文介绍基于Java 17和Spring技术栈的现代化项目开发实践。项目采用Gradle构建工具,实现模块化DDD分层架构,结合Spring WebFlux开发响应式API,并应用Record、Sealed Class等新特性。测试策略涵盖JUnit单元测试和Testcontainers集成测试,通过JFR和OpenTelemetry实现性能监控。部署阶段采用Docker容器化和Kubernetes编排,同时展示异步处理和反应式编程的性能优化。整套方案体现了现代Java开发的最佳实践,包括代码实现、测试调试
209 0
|
5月前
|
人工智能 Java 测试技术
Java or Python?测试开发工程师如何选择合适的编程语言?
测试工程师如何选择编程语言?Java 还是 Python?多位资深专家分享建议:Python 入门简单、开发效率高,适合新手及自动化测试;Java 生态成熟,适合大型项目和平台开发。建议结合公司技术栈、个人基础及发展方向选择。长远来看,两者兼通更佳,同时关注 Go 等新兴语言。快速学习与实践才是关键。
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
187 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
1893 2
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
237 5
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
447 1