(一)Object类

Object类是所有类的父类,也就是说任何一个类在定义时如果没有明确地继承一个父类,那它就是Object类的子类,也就是说以下两种类定义的最终效果是完全相同的。

Object类的常用方法

说明

int hashCode()

返回该对象的散列码值

String toString()

返回该对象的字符串表示,默认返回运行时类名+@+对象的hashCode的16进制数

Object clone()

创建与该对象的类相同的新对象

Class getClass()

返回一个对象运行时的实例类(.class文件)

void notify()

激活等待在该对象的监视器上的一个线程

void wait()

在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待

boolean equals(Object)

比较两个对象是否相等。默认比较的是地址值。

(二)Math类

java.lang.Math类提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI(圆周率)

import java.lang.Math;

public class Math01 {
    public static void main(String[] args) {
        //提供数学运算的功能
        System.out.println(Math.abs(-8.7)); //求绝对值
        System.out.println(Math.max(10,9)); //求最大值
        System.out.println(Math.min(10,9)); //求最小值
        //生成0.0-1.0之间的随机数
        System.out.println(Math.random());
        //生成0-9之间的随机数
        int random=(int)(Math.random()*10);
        System.out.println(random);
    }
}

(三)Random类

import java.util.Random;

public class Random01 {
    public static void main(String[] args) {
        //创建随机数生成器
        //随机数生成器的种子相同,每次生成的随机数是相同的
        //随机数生成器的种子不同,每次生成的随机数是不同的
        /*常用写法 1:Random random=new Random(); */
        /*常用写法 2:Random random=new Random(时间的毫秒); */
        Random random=new Random();
        //生成随机数
        System.out.println(random.nextInt()); //生成一个int范围内的随机整数
        System.out.println(random.nextInt(10)); //生成一个0-10范围内的随机整数
    }
}

(四)File类

  • File类可以表示一个文件,还可以表示一个目录(Directory),所以我们可以在程序中用File 类的对象可以表示一个文件 或者 目录
  • 当创建了 File 对象之后,我们可以利用该对象来对文件或者目录进行书属性修改:例如:文件的名称,修改日期的日期等等
  • File 类的对象 还不能直接对文件进行读写操作,只能修改文件的属性
import java.io.File;

public class FileDemo {
    public static void main(String[] args) {
            File f1=new File("src\\aa.txt");
            //相对路径,如果没有前面的src,就在当前目录创建文件
            if(f1.exists()) {
                System.out.println("文件已经存在");
            }
            System.out.println("文件已经存在:"+f1.exists());
            System.out.println("文件的名字:"+f1.getName());
            System.out.println("文件的路径:"+f1.getPath());
            System.out.println("文件的绝对路径:"+f1.getAbsolutePath());
            System.out.println("是目录吗:"+f1.isDirectory());
            System.out.println("文件大小:"+f1.length());
   }
}

(五)包装类

包装类把基本数据类型转换为对象,每个基本数据类型在java.long包中都有一个相应的包装类

包装类的作用

  • 提供了一系列实用的方法
  • 集合不允许存放基本数据类型,存放数字时,要用包装类型

java 通用性的公共组件 有哪些 java系统提供的常用类_java

包装类的构造方法

  • 以每个包装类对应的基本数据类型作为参数
int iNum=9;
Integer i1=new Integer(iNum);
  • 除Character类型外,以字符串作为参数(Character没有带字符串作为参数的构造方法)
Integer i2=new Integer("123");
System.out.println(i2+1);  //124,而并非是1231.
  • Boolean类型构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false
  • 当Number包装类构造方法参数为String类型时,字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,否则编译不通过,运行时会抛出NumberFormatException异常

包装类的常用方法

  • XXXValue() —— 包装类转换为基本类型
Integer i=new Integer(100);
int iNum=i.intValue();
System.out.println(iNum); //100
  • toString() —— 基本类型转换为字符串(更常用)
int s=100;
String sNum1=Integer.toString(s);
System.out.println(sNum1);
//也可简写为:
String sNum2=100+"";
  • parseXXX() —— 字符串转换为基本类型(Character除外)(很常用)
String age="18";
int ageNum=Integer.parseInt(age);
  • valueOf() —— 基本类型或字符串转换为包装类
//valueOf() —— 基本类型转换为包装类
//当包装类为Number时,参数字符串必须为数字兼容的字符串,NumberFormatException异常
        int j=90;
        Integer j1=Integer.valueOf(j);
        char sex='女';
        Character sex1=Character.valueOf(sex);
//valueOf() —— 字符串转换为包装类
//Boolean类型调用valueOf(字符串)时,若该字符串内容为true(不考虑大小写),
//则该Boolean对象表示true,否则表示false
        String m="123";
        Integer mi=Integer.valueOf(m);

装箱和拆箱

基本类型和包装类的自动转换

  • 装箱:基本类型转换为包装类的对象
//基本数据类型-->包装类  自动转换——装箱
        int j=90;
        Integer j1=j;
        System.out.println(j1);
  • 拆箱:包装类对象转换为基本类型的值
//包装类-->基本数据类型  自动转换——拆箱
        Integer i=new Integer(100);
        int i1=i;
        System.out.println(i1);
//集合中只能存取包装类型,不能存基本数据类型
//        List list=new ArrayList();
//        int num=100;
//        Integer numInteger=new Integer(num);
//        list.add(numInteger);
          List list=new ArrayList();
          list.add(100); //int 100————自动装箱为Integer

(六)时间日期

Date类

import java.util.Date;
//获取当前日期
        Date date=new Date();
        System.out.println(date);
//结果:Tue Mar 15 11:20:03 CST 2022

SimpleDateFormat

import java.text.SimpleDateFormat;
//定制日期格式:年 月 日 ~ 时 分 秒
Date date=new Date();       
SimpleDateFormat formater =new     SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateStr=formater.format(date);
        System.out.println(dateStr);
//结果:2022-03-15 11:20:03

Calendar

  • 抽象类,用于设置和获取时间或日期数据的特定部分

方法或属性

说明

int get(int field)

返回给指定日历字段的值

MONTH

指示月

DAY_OF_MONTH

指示一个月中的某天

DAY_OF_WEEK

指示一个星期中的某天

import java.util.Calendar;
Calendar c=Calendar.getInstance();
        int year=c.get(Calendar.YEAR);
        int month=c.get(Calendar.MONTH)+1;
        int day=c.get(Calendar.DAY_OF_MONTH);
        int week=c.get(Calendar.DAY_OF_WEEK)-1; //Sunday是1
        System.out.print("今天是:"+year+"年"+month+"月"+day+"日");
        System.out.println("-星期"+week);
//结果:今天是:2022年3月15日-星期2

练习

//计算2021-04-06是一年中的第几个星期
        Calendar c= Calendar.getInstance();
        c.set(Calendar.YEAR,2021);
        c.set(Calendar.MONTH,4-1);
        c.set(Calendar.DAY_OF_MONTH,6);
        int n=c.get(Calendar.WEEK_OF_YEAR);
        System.out.println("2021-04-06 是一年中的第"+n+"个星期");
//结果:2021-04-06 是一年中的第15个星期

(七)String类

length()

用来获取一个String对象的字符序列的长度

equals()

比较当前String对象的字符序列是否与参数s指定的String对象的字符序列相同

  1. equals():比较两个字符串内容是否相同————String类重写过该方法 == :比较两个字符串内存地址是否相等,比较两个字符串是否为同一对象
  2. 字符串对象创建问题(面试经常出题)
//以下代码创建了 1 个对象
        String s1="Hello"; //此时s1指向字符串池中的"Hello"对象
        String s2="Hello"; //此时s2指向字符串池中的"Hello"对象
        System.out.println(s1.equals(s2)); //true
        System.out.println(s1==s2);  //true
//以下代码创建了 2 个对象
        String s1="Hello";//此时s1指向字符串池中的"Hello"对象
        String s2=new String("Hello");//此时s2指向堆中的"Hello"对象
        System.out.println(s1.equals(s2)); //true
        System.out.println(s1==s2); //false
//以下代码创建了 3 个对象
        String s1="hello";//此时s1指向字符串池中的"hello"对象
        String s2=new String("Hello");
        //s2指向堆中的"Hello"对象;该行代码创建了2个对象,堆中的"Hello"对象和字符串池中的"Hello"对象
        System.out.println(s1.equals(s2)); //false
        System.out.println(s1==s2); //false
//以下代码创建了 4 个对象
        String s1="hello";
        //s1指向堆中的"hello"对象;该行代码创建了2个对象,堆中的"hello"对象和字符串池中的"hello"对象
        String s2=new String("Hello");
        //s2指向堆中的"Hello"对象;该行代码创建了2个对象,堆中的"Hello"对象和字符串池中的"Hello"对象
        System.out.println(s1.equals(s2)); //false
        System.out.println(s1==s2); //false

其他

  • starts With(String s):判断当前String对象的字符序列前缀是否是参数指定的String对象s的字符序列
  • compare To(String s):按字典序与参数指定的String对象s的字符序列比较大小
  • contains(String s):判断当前String对象的字符序列是否包含参数s的字符序列
  • indexOf(String s):从当前String对象的字符序列的0索引位置开始检索首次出现s的字符序列的位置,并返回该位置
  • lastIndexOf(String s):从当前String对象的字符序列的0索引位置开始检索最后一次出现s的字符序列的位置,并返回该位置
  • substring(int start,int end):获得一个新的String对象,新的String对象的字符序列是复制当前String对象的字符序列中的startpoint位置至最后位置上的字符所得到的字符序列
  • trim():得到一个新String对象,新String对象的字符序列是当字符序列去掉两端空格后的字符序列

字符串拆分函数

split()——字符串拆分函数

public class StrMethods {
    public static void main(String[] args) {
        System.out.println("*原歌词*");
        String song="长亭外 古道边 芳草碧连天";
        System.out.println(song);
        String[] songs=song.split(" ");
        System.out.println("*按空格拆分后的歌词*");
        for(String s:songs){
            System.out.println(s);
        }
    }
}

StringBuffer

  • 对字符串的频繁修改(如字符串连接)时,使用StringBuffer类可以大大提高程序执行效率
  • StringBuffer声明
StringBuffer s = new StringBuffer();
StringBuffer s = new StringBuffer("aaa");
  • StringBuffer使用
s.toString();      //转化为String类型
s.append("**");    //追加字符串
s.insert(1,"**");  //插入字符串
import java.util.Scanner;
//将一个数字字符串转换成逗号分隔的数字串,即从右边开始每隔三个数字用逗号分隔开
public class StringBufferDemo02 {
    public static void main(String[] args) {
        Scanner input= new Scanner(System.in);
        System.out.println("输入一个字符串:");
        String s = input.next();
        StringBuffer a = new StringBuffer(s);
        for (int i=a.length()-3;i>0;i=i-3){
            a.insert(i,",");   //在特定位置插入字符串
        }
        System.out.println(a);
    }
}