Java基础API学习

一、Java API之Object类

Object类属于java.lang之下,是所有类的父类,所有对象(包括数组)都实现这个类的方法

#方法

  1. toString():
package object;
//Person类默认继承Object类,可以使用Object的toString()方法
public class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

Demo01toString.java

package object;

public class Demo01toString {
    public static void main(String[] args) {
        Person p = new Person("张三", 18);
        String s = p.toString();//返回字符串,
        System.out.println(s);//返回object.Person@2d98a335,是地址。
        System.out.println(p);//返回object.Person@2d98a335,打印对象名和对象的toString方法都是返回地址。
        //直接打印地址值没有意义,在Person类重写toString()方法。
    }
}

在Person类重写toString后,就可以打印出自定义方法。

@Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

此时Demo01toString.java输出结果为

Person{name='张三', age=18}
Person{name='张三', age=18}

此外,Random都没有重写toString方法,Scanner、ArrayList重写了toString方法。

  1. equals()源码如下:
public boolean equals(Object obj){
    return (this==obj);
        }
比较两个对象p1,p2
public class Demo01toString {
    public static void main(String[] args) {
        Person p1 = new Person("张三", 18);
        Person p2 = new Person("李四", 20);
        Person p3 = new Person("李四", 20);
        boolean b=p2.equals(p3);
        System.out.println(b);//没有重写时为false,两个对象地址不同。
        System.out.println(p2==p3);//false,两个对象不同。
    }
}

在Person类重写equals方法

@Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;//使用反射技术,判断o是否为Person类型
        Person person = (Person) o;//强转Object为Person类
       return age == person.age &&
                Objects.equals(name, person.name);
    }
重写equals方法后,返回true
  boolean b=p2.equals(p3);
  System.out.println(b);//true,比较的是两个对象的姓名、年龄属性。

二、Java API之Objects类

1. equals方法源码
功能:比较两个对象是否相同,加入了健壮性判断,避免空指针异常。

public static boolean equals(Object a,Object b){
return (a==b)||(a!=null&&a.equals(b));
}
import java.utils.Objects;
public class Main {
    public static void main(String[] args) {
        String s1=null;
        String s2="abc";
        result=Objects.equals(s1,s2) ;    
         System.out.println(s1.equals(s2));//空指针异常
        System.out.println(result);//返回false
    }
}

三、Java API之Date类

类Date表示特定瞬间,精确到毫秒,1s=1000ms。
eg:2020-06-01 20:12:23:456
作用:可以把日期转化为毫秒进行计算,计算完毕,再把毫秒转化为日期
时间原点:1970年1月1日00:00:00(格林威治标准时间)
注意:在中国东八区,为1970年1月1日08:00:00
1天=246060*1000=86400000毫秒

package Date;
import java.util.Date;
public class demoDate
{
    public static void main(String[] args) {
        System.out.println(System.currentTimeMillis());//获取当前系统一共到1970年1月1日00:00:00经历了多少毫秒,结果为1591193649632
        demo01();
        demo02();
    }
        /*
        Date空参数构造方法,Date()获取当前系统的日期和时间
         */
        private static void demo01(){
            Date date = new Date();
            long time=date.getTime();
            System.out.println(time);//结果为1591193649632
            System.out.println(date);//Wed Jun 03 22:04:48 GMT+08:00 2020
        }
    /*
    Date带参数构造方法,Date(long date),参数为毫秒值。
     */
    private static void demo02(){
        Date date1 = new Date(0L);
        Date date2 = new Date(System.currentTimeMillis());
        System.out.println(date1);//Thu Jan 01 08:00:00 GMT+08:00 1970
        System.out.println(date2);//Wed Jun 03 22:04:48 GMT+08:00 2020
    }
    /*
    Date类成员方法,long getTime(),参数为毫秒值。返回自1970年1月1日00:00:00 GMT以来Date对象表示的毫秒数。
    把日期转换为毫秒。相当于System.currentTimeMillis()
     */
    }

四、Java API之DateFormat类

DateFormat类是Format的子类,是抽象类,无法直接创建对象,可以使用SimpleDateFormat子类。
y:年 M:月 d:日 H:小时 m:分 s :秒
“yyyy-MM-dd HH:mm:ss”
“yyyy年MM月dd日 HH时mm分ss秒”

package Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*成员方法:
String foramt(Date date):把Date日期转化为符合模式的字符串
Date parse(String source):把符合模式的字符串转化为Date日期
 */
public class DemoDateFormat {
    public static void main(String[] args) {
        demo01();
        demo02();
    }

    private static void demo01() {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date=new Date();
        //parse方法声明了ParseException解析异常,如果字符串和和构造方法的模式不一样,程序抛出异常
        Date text= null;
        try {
            text = sdf.parse("2020-06-03 22:39:14");
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println(date);//Wed Jun 03 22:39:14 GMT+08:00 2020
        System.out.println(text);//Wed Jun 03 22:39:14 GMT+08:00 2020
    }
    private static void demo02() {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date=new Date();
        String text=sdf.format(date);
        System.out.println(date);//Wed Jun 03 22:39:14 GMT+08:00 2020
        System.out.println(text);//2020-06-03 22:39:14
    }
}

例子:使用日期API,计算一个人已经出生了多少天

package Date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class exercise {
    public static void main(String[] args) throws ParseException {
        System.out.println("输入出生日期,格式为yyyy-MM-dd");
        Scanner in=new Scanner(System.in);
        String s=in.next();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date birthdate=sdf.parse(s);
        long birthtime=birthdate.getTime();
        long todaytime=new Date().getTime();
        long time=todaytime-birthtime;
        System.out.println(time/1000/60/60/24);
    }   
}

五、Java API之Calendar类

Calender 类是一个抽象类,里面提供了很多操作日历的方法(YEAR、MONTH、DAY_OF_MONTH、HOUR)。无法直接创建对象,里面有一个静态方法getInstance(),返回一个Calender 类对象。

//创建Calender 类对象
package Calendar;
import java.util.Calendar;
public class demoCalendar
{
    public static void main(String[] args) {
        Calendar c=Calendar.getInstance();//多态
        System.out.println(c);
    }
}

//成员方法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值