Java学习(常用API)

API(回顾)

简单介绍: Java写好的技术(功能代码),可以直接调用。
Java提供了许多API给我们使用,这里截取两个重要的类的API进行学习:String、ArrayList。

Srting

简单介绍: String类定义的变量可以存储字符串,同时String类提供了很多操作字符串的功能,我们可以直接使用。

学习目标

image.png

概述:

  1. java.lang.String类代表字符串,String类定义的变量可以用于指向字符串对象,让后操作该字符串。
  2. Java程序中的所有字符串文字都为此类的对象。

特点: String常被称为不可变字符串类型,它的对象创建后不可改变。

public class StringDemo {
    public static void main(String[] args) {
        String name = "计算机";
        name += "与信息工程";
        name += "学院";
        System.out.println(name);
    }
}

我们看上面的例子,这段代码的运行结果是:计算机与信息工程学院,name指向的是字符串对象,那为啥说字符串不可变呢?这需要从内存原理来看:
image.png
以""方式给出的字符串对象,在字符串常量池中存储。“计算机”,“与信息工程”,"学院"都是存储在字符串常量池中,"计算机"和"与信息工程"运算连接成了一个新对象,存储在堆内存中,然后通过改变name中的地址值使其指向新的对象。此时,"计算机"和"与信息工程"并没有改变。

创建对象的2种方法

  1. 直接使用""定义(推荐)String name = "abc";
  2. 通过String类的构造器创建对象

传入字节数组的时候,会依据ASCII码将数字转换为字符存储。

区别(面试常考)

  1. 以·”“方式给出的字符串对象,在字符串常量池中存储,并且相同内容只会在其中存储一份。
  2. 通过构造器new对象,每new一次都会产生一个新对象,存储在堆内存中。

Java存在编译优化机制,在编译的时候"a"+"b"+"c"会直接转化为"abc"

常用API

字符串内容比较(equals)

public class StringDemo {
    public static void main(String[] args) {
        //正确账号密码
        String okPassword = "135790";
        //输入密码
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入密码:");
        String password = sc.next();
        //判断是否正确
        if(okPassword ==password){
            System.out.println("登录成功!");
        }else{
            System.out.println("密码错误!");
        }
    }
}

这里比较的是两者的地址,但是前者存储在字符串常量池中,后者存储在堆内存中,两者地址不同,无法用"=="比较。

"=="可用于基本类型比较

但是String中提供了一种API用于比较内容:equals

忽略大小写可以用于作为验证码验证系统

故将代码中第10行if中的条件改为:okPassword.equals(name)即可成功比较。

其余常用API

ArrayList

简单介绍: ArrayList代表集合类,集合是一种容器,与数组相似,不同的是集合的大小是不固定的。

学习目标

image.png

数组与集合的区别

  1. 数组在定义完成并启动后,类型确定、长度固定,在个数不确定、需要增减个数的时候不适合使用数组。
  2. 集合的大小不固定、类型不固定、可以动态变化,集合提供了许多的好用的功能。

ArrayList集合的对象获取&添加元素

对象获取: ArrayList();
两种添加元素的方法:

泛型

定义:可以在编译阶段约束集合对象只能操作某种数据类型的集合
格式:
ArrayList<E>
如果在约束了某种特定的数据类型后仍向里添加其他类型的数据,会报错:java: 不兼容的类型

注意:

  1. 集合中只能存储引用类型,不支持基本数据类型
  2. JDK1.7开始,泛型后面的类型申明可以不写

常用API

注意:

  1. E指的是任意一种引用数据类型
  2. 在删除元素的时候,只会删除出现的第一个。

每日一练:学生信息系统的数据搜索

需求: 后台程序需要存储如上学生信息并展示,然后要提供依据学号搜索学生信息的功能。
image.png
:::
分析:

  1. 定义一个学生类,定义ArrayList类去存储如上学生信息,同时实现遍历展示
  2. 提供方法,可以接收ArrayList类和学号,返回学生信息并展示
import java.util.ArrayList;
import java.util.Scanner;

public class ArrayListDemo {
    public static void main(String[] args) {
    //定义一个学生类并录入信息
        ArrayList<Student> students = new ArrayList<>();
        students.add(new Student(20180302,"叶孤城",23,"护理一班"));
        students.add(new Student(20180303,"东方不败",23,"推拿二班"));
        students.add(new Student(20180304,"西门吹雪",26,"中药学三班"));
        students.add(new Student(20180305,"梅超风",25,"神经科四班"));
    //遍历展示学生信息
        System.out.println("=====================================");
        System.out.println("学号\t\t\t姓名\t\t年龄\t\t班级\t\t");
        for (int i = 0; i < students.size(); i++) {
            Student s = students.get(i);
            System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t\t"+s.getClasses());
        }
        System.out.println("=====================================");
    //提供查找方法
        while(true){
            System.out.print("请输入您想搜索学生的学号:");
            Scanner sc = new Scanner(System.in);
            long getId = sc.nextLong();
            Student get = getStudnt(students,getId);
            if(get == null){
                System.out.println("您输入的学号有误或不存在,请您重新输入!");
                System.out.print("您是否想继续搜索?(Y or N):");
                String answer = sc.next();
                if(answer.charAt(0) == 'N'){
                    break;
                }
            }else{
                System.out.println("您搜索的学生信息如下:");
                System.out.println("=====================================");
                System.out.println("学号\t\t\t姓名\t\t年龄\t\t班级\t\t");
                System.out.println(get.getId()+"\t"+get.getName()+"\t"+get.getAge()+"\t\t"+get.getClasses());
                System.out.println("=====================================");
                System.out.print("您是否想继续搜索?(Y or N):");
                String answer = sc.next();
                if(answer.charAt(0) == 'N'){
                    break;
                }
            }
        }
    }

    private static Student getStudnt(ArrayList<Student> students, long getId) {
        for (int i = 0; i < students.size(); i++) {
            Student s = students.get(i);
            if(getId == s.getId()) {
                return s;
            }
        }
        return null;
    }
}

image.png

  • 33
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Servlet APIJava平台上的Web应用程序开发API,它提供了一组类和接口,用于处理HTTP请求和响应。Servlet是一个Java类,它可以在Web服务器上运行,并且可以响应来自客户端的HTTP请求。 它的基础学习包括以下内容: 1. Servlet生命周期:Servlet生命周期是指Servlet从创建到销毁的整个过程。了解Servlet的生命周期可以更好地管理Servlet。 2. Servlet API:Servlet APIJava Servlet提供的一组类和接口,通过使用Servlet API,我们可以编写出处理HTTP请求和响应的Servlet。 3. Servlet容器:Servlet容器是指Web服务器中用于管理和运行Servlet的软件组件。Tomcat就是一个常用的Servlet容器。 4. Servlet映射:Servlet映射是指将HTTP请求映射到相应的Servlet处理程序。可以通过在web.xml文件中配置Servlet映射。 5. Servlet请求和响应:Servlet通过HttpServletRequest对象获取客户端发送的请求信息,并通过HttpServletResponse对象向客户端发送响应。 6. Servlet过滤器:Servlet过滤器是用于处理Servlet请求和响应的软件组件。可以通过过滤器对请求进行处理,从而实现对请求的过滤。 7. Servlet会话管理:Servlet会话管理是通过HttpSession对象来管理用户会话状态。它可以在不同的请求之间保持数据,并且可以在不同的Servlet之间共享数据。 学习Java Servlet API需要熟悉Java编程语言和Web开发技术。可以通过在线教程和文档来学习。同时,还需要实践和应用,通过编写Servlet程序来加深理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值