2020年java常用类课堂笔记

java常用类

1.String类

String类是final类型,String字符串是常量,不可改变。

String类两种初始化方法(效果相同):

String 变量名 = “字符串”;

String 变量名 = new String(“字符串”);

String构造方法

方法声明 功能描述
String() 创建一个内容为空的字符串
String(String value) 根据指定的字符串内容创建对象
String(char[] value) 根据指定的字符数组创建对象

实例代码

public class CommonlyUsed {
    String s1 = "我是阿凡不平凡";
    String s2 = new String("我是阿凡不平凡");
    String s3 = new String(new char[]{'我','是','阿','凡','不','平','凡'});

    public void test(){
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
        System.out.println(s1+s2+s3);
    }
    public static void main(String[] args) {
       new CommonlyUsed().test();
    }
}

如果“+“两边操作数有一个是String类型,那么”+”表示字符串连接运算符

String类的常用方法

  1. 字符串的基本操作
方法声明 功能描述
int length() 返回此字符串的长度
char charAt(int index) 返回此字符串中第index位置上的字符
int indexof(String str) 返回str在此字符串中第一次出现的索引
int lastIndexOf(String str) 返回str在此字符串中最后一次出现的索引

实例代码

public class CommonlyUsed {

    public static void main(String[] args) {
        String str = "我是阿凡不平凡";
        System.out.println(str.length());  //7
        System.out.println(str.charAt(3));  //凡
        System.out.println(str.indexOf("凡"));  //3
        System.out.println(str.lastIndexOf("凡"));  //6
    }
}
  1. 字符串的转换操作
方法声明 功能描述
char[] toCharArray() 将此字符串转化为字符数组
static String valueOf(int num) 将int类型的num转化为String类型
String toUpperCase() 将此字符串字符都转化为大写
String toLowerCase() 将此字符串字符都转化为小写

实例代码

public class CommonlyUsed {

    public static void main(String[] args) {
        String str = "Hello,我是AFan不平凡";
        double num = 1314521.520;
        char[] charArray = str.toCharArray();
        for (char c : charArray) {
            System.out.print(c+"\t");
        }
        System.out.println();
        String s1 = String.valueOf(num);
        System.out.println(s1);
        String s2 = str.toLowerCase();
        System.out.println(s2);
    }
    
    //运行结果:
    //H    e  l  l  o  ,  我  是  A  F  a  n  不  平  凡  
    //1314521.52
    //hello,我是afan不平凡
}
  1. 字符串的替换和去除空格操作
方法声明 功能描述
String trim() 返回去除此字符串首尾的空格的新字符串
String replace(String s1,String s2) 返回用s2全部替换此字符串出现的所有s1的新字符串

实例代码

public class CommonlyUsed {

    public static void main(String[] args) {
        String str = "  我是AFan,我是aFan,我是阿凡  ";
        System.out.println(str.trim());
        System.out.println(str.replace("我","I"));
    }
    //运行结果:
    //我是AFan,我是aFan,我是阿凡
    //  I是AFan,I是aFan,I是阿凡
}
  1. 字符串的判断操作
方法声明 功能描述
boolean startsWith(String str) 判断字符串是否以str开头
boolean endsWith(String str) 判断字符串是否以str结尾
boolean contains(String str) 判断字符串是否包含str
boolean isEmpty() 判断字符串是否是空字符串
boolean equals(String str) 判断此字符串是否与str相同

"=="与"equal"的区别:

  1. "=="比较的是两个对象的内存地址
  2. "equal"比较的是两个对象的字符串值

实例代码

public class CommonlyUsed {

    public static void main(String[] args) {
        String str = "  我是AFan,我是aFan,我是阿凡  ";
        String str2 = "  我是AFan,我是aFan,我是阿凡  ";
        
        System.out.println(str.startsWith("阿凡")); //false
        System.out.println(str.endsWith("afan"));  //false
        System.out.println(str.contains("aFan"));  //true
        System.out.println(str.isEmpty());  //false
        
        System.out.println(str.equals(str2)); //true
        System.out.println(str == str2); //true
    }
}

5.字符串的截取和分割

方法声明 功能描述
String substring(int s,int e) 返回位置在s~e之间的新字符串
String[] split(String r) 根据正则表达式r的规则分割此字符串

实例代码

public class CommonlyUsed {

    public static void main(String[] args) {
        String str = "我是AFan,我是aFan,我是阿凡";

        String s1 = str.substring(2, 6);
        System.out.println(s1);  //AFan
        
        String[] split = str.split("是");
        for (int i = 0; i < split.length; i++) {
            System.out.print(split[i]+"   ");
        }//我   AFan,我   aFan,我   阿凡
        
        System.out.println();
        
        for (int i = 0; i < split.length; i++) {
            if(i != split.length-1){
                System.out.print(split[i]+"--");
            }else{
                System.out.print(split[i]);
            } //我--AFan,我--aFan,我--阿凡
        }
    }
}

2.StringBuffer类

作用:字符串缓冲区,操作String字符串,在原字符串基础上对此字符串增删改

StringBuffer类常用方法

方法声明 功能描述
StringBuffer append(char c) 在StringBuffer对象末尾添加字符c
StringBuffer insert(int d,String str) 在StringBuffer对象第d位置添加字符串str
StringBuffer deleteChartAt(int d) 删除StringBuffer对象第d位置的字符
StringBuffer delete(int s,int e) 删除StringBuffer对象s~e位置的字符串
StringBuffer replace(int s,int e,String str) 用str替换StringBuffer对象s~e位置的字符串
void setCharAt(int d,char ch) 用ch替换StringBuffer对象第d位置的字符串
String toString() 返回StringBuffer对象中的String对象
StringBuffer reverse() 将此字符串反转

实例代码

public class CommonlyUsed {

    public static void main(String[] args) {
        String str = "520,我是阿凡";
        StringBuffer sbf = new StringBuffer(str);

        sbf.append(24.0);
        System.out.println("增加字符后:"+sbf);

        sbf.insert(4,"Hello World");
        System.out.println("中途插入字符:"+sbf);

        sbf.delete(0,6);
        System.out.println("删除字符后:"+sbf);

        sbf.replace(0,9,"大家好");
        System.out.println("替换后:"+sbf);

        sbf.reverse();
        System.out.println("反转后:"+sbf);

        String std = sbf.toString();
        System.out.println("返回字符串对象:"+std);
    }
    /*运行结果:
    增加字符后:520,我是阿凡24.0
    中途插入字符:520,Hello World我是阿凡24.0
    删除字符后:llo World我是阿凡24.0
    替换后:大家好我是阿凡24.0
    反转后:0.42凡阿是我好家大
    返回字符串对象:0.42凡阿是我好家大
     */
}

String类与StingBuffer类区别:

  1. String类定义的字符串是常量,一旦创建,内容和长度都不可改变。

    StringBuffer类表示字符容器,可以任意增删操作字符串的字符。

  2. String类重写了Object类的equal()方法,两个相同值字符串对象比较后结果为true。

    StringBuffer类没有重写equal()方法,两个相同值字符串对象比较后结果为false(==)。

  3. String对象可以用“ + ”连接字符串。

    StringBuffer对象之间不能。

3.System类

作用:获得一些与系统相关的信息,类中的属性与方法都是static静态的

native方法 :是java调用其他编程语言的方法来实现对底层操作系统的控制

System类常用方法

方法声明 功能描述
static void exit(int s) 若s为0,终止程序运行,若s为非0时,表示程序出现异常
static void gc() 运行垃圾回收器
static native long currentTimeMillis() 返回以毫秒为单位的当前时间
static void arrayCopy(Object o1,int s1,Object o2,int s2,int length) 将数组o1元素按要求拷贝到数组o2
static Properties getProperties() 取得当前的系统属性
static String getProperty(String key) 获取指定键描述的系统属性

方法详解:

  1. getProperties()

    功能:获取当前系统的全部属性,该方法返回一个Properties对象,其中封装了系统的全部属性,这些属性以键值对的形式存在。

实例代码

public class Example {
    public static void main(String[] args) {
        //获取当前系统属性
        Properties properties = System.getProperties();
        System.out.println(properties);
        //获取所有系统属性的key值,返回Set对象
        Set<String>propertyNames = properties.stringPropertyNames();
        for (String key : propertyNames) {
            //根据键key来获取对应的value值
           String value = System.getProperty(key);
            System.out.println(value);
        }
    }
}
  1. currentTimeMillis()

​ 功能:计算程序运行时间

实例代码

public class Example {
    public static void main(String[] args) {
       long startTime = System.currentTimeMillis();
       int sum = 0;
        for (int i = 0; i < 10000000; i++) {
            sum = sum + i;
        }
       long endTime = System.currentTimeMillis();
        System.out.println("一共耗费"+(endTime-startTime)+"毫秒");
    }
}
  1. arrayCopy(Object o1,int s1,Object o2,int s2,int length)

    功能:将数组o1从位置s1开始长度为length的元素拷贝到数组o2从s2位置开始长度为length的空间里(如果数组o2的空间不够,会发生异常)

注意:o1,o2数据类型要一致,拷贝元素会覆盖o2原有位置的元素。

实例代码

public class Example {
    public static void main(String[] args) {
      int[] o1 = {12,34,5,67,8,1,0};
      int[] o2 = {11,23,32,4,55,3,19};
      System.arraycopy(o1,0,o2,0,7);
        for (int i = 0; i < o2.length; i++) {
            System.out.print(o2[i]+" "); //12 34 5 67 8 1 0 
        }
    }
}

4.Runtime类

作用:表示java虚拟机进程运行的状态,用于封装java虚拟机进程。

Runtime类常用方法详解

  1. getRuntime()

    功能:获取相关的Runtime对象,通过这个对象来获取当前虚拟机的相关信息。

    Runtime 变量名 = Runtime.getRuntime();

实例代码

public class Example {
    public static void main(String[] args) {
        Runtime rt = Runtime.getRuntime();
        System.out.println("处理器的个数:"+rt.availableProcessors()+"个");
        System.out.println("空闲内存大小:"+rt.freeMemory()/1024/1024+"M");
        System.out.println("最大可用内存大小:"+rt.maxMemory()/1024/1024+"M");
    }
  1. exec()

    功能:返回Process对象(功能:管理产生的新进程),执行DOS命令

实例代码

public class Example {
    public static void main(String[] args) throws Exception {
        Runtime rt = Runtime.getRuntime();
        Process notepad = rt.exec("notepad");
        Thread.sleep(3000); //程序休眠3秒
        notepad.destroy();  //关闭进程
    }
}

5.Math类

工具类,构造方法为private,无法创建对象,所有的方法都是静态方法

两个静态常量

Math.PI 表示 π

Math.E 表示 e

作用:完成复杂的数学运算

实例代码

public class Example{
    public static void main(String[] args) {
       System.out.println("计算绝对值:"+Math.abs(-2.7));

       System.out.println("计算正弦:"+Math.sin(Math.PI/2));
       System.out.println("计算余弦:"+Math.cos(0));
       System.out.println("计算正切:"+Math.tan(Math.PI));
       
       System.out.println("计算平方根:"+Math.sqrt(9));
       System.out.println("计算立方根:"+Math.cbrt(27));
       System.out.println("计算乘方:"+Math.pow(2,4));

       System.out.println("求大于参数的最小整数:"+Math.ceil(4.6));
       System.out.println("求小于参数的最大整数:"+Math.floor(4.6));
       System.out.println("求对小数进行四舍五入:"+Math.round(3.473));

       System.out.println("求两个数的最大值:"+Math.max(2,4));        System.out.println("求两个数的最小值:"+Math.min(2,4));

       System.out.println("生成一个大于等于0.0小于1.0的随机数:"+Math.random());
    }
}

6.Random类

作用:创建随机数生成器,在指定的取值范围内随机产生数字

Random类的构造方法

方法声明 功能描述
Random() 每次实例化对象都会产生不同的随机数
Random(long s) 当s相同时,每次实例化对象会产生相同的随机数

Random类的常用方法

方法声明 功能描述
boolean nextBoolean() 随机生成boolean类型的随机数
double nextDouble() 随机生成[0.0,1.0]之间double类型的随机数
int nextInt() 随机生成int类型的随机数
int nextInt(int n) 随机生成[0,n)之间int类型的随机数
long nextLong() 随机生成long类型的随机数

实例代码

import java.util.Random;

public class Example{
    public static void main(String[] args) {
        Random random = new Random();
        System.out.println("生成boolean类型的随机数:"+random.nextBoolean());
        System.out.println("生成double类型的随机数:"+random.nextDouble());
        System.out.println("生成int类型的随机数:"+random.nextInt());
        System.out.println("生成0~9之间int类型的随机数:"+random.nextInt(10));
        System.out.println("生成long类型的随机数:"+random.nextLong());
    }
}

7.包装类

作用:把基本数据类型变为类,通过这些类将基本数据类型的值包装为引用数据类型的对象

8种基本数据类型对应的包装类

基本数据类型 包装类 基本数据类型 包装类
byte Byte float Float
short Short double Double
int Integer boolean Boolean
long Long char Character

注意:包装类与对应的数据类型可以直接赋值,不用强制转换。

实例代码

public class Example{
    public static void main(String[] args) {
      int a = 3;
      Integer b = a;
        System.out.println( a + b); //6
        int c = b;
        System.out.println(c); //3
    }
}

基本数据类型、包装类与字符串之间的转换

  1. String.valueof(基本类型 变量名)可将8种基本数据类型转化为对应的字符串类型
  2. 7种包装类的静态方法valueof()方法可以将对应的基本数据类型转化包装类,也可以将字符串转化为对应的包装类(除了Character类)
  3. 8种包装类的有参构造也有同2功能
  4. 7种包装类的静态方法的parseXxx()可以将字符串转化为对应的基本数据类型(除了Character类)
  5. 包装类的toString()方法可以以字符串的形式返回对应的基本数据类型的值

**parseXxx(String s)valueof(String s)**注意:

  • 返回值类型不同:**parseXxx()**返回基本数据类型

​ **valueof()**返回包装类对象

  • Character包装类没有这两种方法
  • s不能是null,字符串s必须是相应的基本数据类型,否则编译通过,运行会出错

实例代码

public class Example{
    public static void main(String[] args) {
      int num =123;
      //1.通过String.valueof()方法将基本类型转化为字符串
      String str = String.valueOf(num);
      System.out.println("将int变量转化为字符串:"+str);

      //2.通过包装类的valueOf()静态方法将基本类型和字符串转化为包装类
      String str2 = "520";
      Integer integer1 = Integer.valueOf(num);
      Integer integer2 = Integer.valueOf(str2);
      System.out.println("将int变量转化为包装类:"+integer1);
      System.out.println("将字符串变量转化为包装类:"+integer2);

      //3.通过包装类的parseXxx()方法将字符串转化为基本数据类型
      int num2 = Integer.parseInt(str2);
      System.out.println("将字符串转化为int类型"+num2);
      //4.通过包装类的toString()方法将包装类转化为字符串
      String str3 = Integer.toString(num2);
      System.out.println("将int类型转化为字符串"+str3);

    }
}

8.Date类

作用:表示日期和时间

Date类的构造方法

方法声明 功能描述
Date() 创建当前日期时间的Date对象
Date(long date) 创建指定时间的Date对象

date参数:自1970年1月1日0时0分0秒以来的毫秒数

即System.currentTimeMillis()

实例代码

import java.util.Date;

public class Example{
  public static void main(String[] args) {
    Date date = new Date();
    Date date1 = new Date(System.currentTimeMillis());
    System.out.println(date);
    System.out.println(date1);
  }
}

9.Calendar类

Calendar类是抽象类,不可以new 对象

作用:完成日期和时间字段的操作

通过静态方法getInstance()来得到Calendar对象

Calendar calendar = Calendar.getInstance()

Calendar类的常用方法

方法声明 功能描述
int get(int field) 获取指定日历字段的值
void set(int field,int v) 为指定日历字段设置指定值v
void add(int field,int a) 根据日历规则,为指定的日历字段添加字段
void set(int year,int month,int day) 设置Calendar对象的年,月,日
void set(int year,int month,int day,int hour,int minute,int second) 设置Calendar对象的年,月,日,时,分,秒
void setLenient(boolean e) 当e为false时,开启非容错模式,日历规则更严格。
Date getTime() 获取Date对象

field为Calendar定义的常量值

Calendar常量 含义
Calender.YEAR
Calendar.MONTH 月(默认值为0)
Calendar.DATE
Calendar.HOUR
Calendar.MINUTE
Calendar.SECOND

实例代码

public class Example{
  public static void main(String[] args) {
    Calendar instance = Calendar.getInstance();
    int year = instance.get(Calendar.YEAR);
    int month = instance.get(Calendar.MONTH)+1;
    int day = instance.get(Calendar.DATE);
    int hour = instance.get(Calendar.HOUR);
    int minute = instance.get(Calendar.MINUTE);
    int second = instance.get(Calendar.SECOND);
    System.out.println("当前时间为:"+year+"年"+month+"月"+day+"日"+hour+"时"
    +minute+"分"+second+"秒");
  }
}

10.DateFormat类

DateFormat类是抽象类

  • 格式化:按照指定的格式,从Date对象转换为String对象。
  • 解析:按照指定的格式,从String对象转换为Date对象。

作用:将日期格式化成字符串,将特定格式显示的日期字符串转换为Date对象。

DateFormat类的常用方法

方法声明 功能描述
static DateFormat getDateInstance() 创建默认日期格式器
static DateFormat getDateInstance(int style) 创建style风格的日期格式器
static DateFormat getDateTimeInstance() 创建日期/时间格式器
static DateFormat getDateTimeInstance(int dataStyle,int timeStyle) 创建style风格的日期/时间格式器
String format(Date date) 将Date对象格式化为日期/时间字符串
Date parse(String source) 将字符串解析为Date对象

四个静态方法用于获得DateFormat类的实例对象。

参数style的四个常量值

DateFormat常量 含义
DateFormat.FULL 完整格式
DateFormat.LONG 长格式
DateFormat.MEDIUM 普通格式
DateFormat.SHORT 短格式

实例代码

import java.text.DateFormat;
import java.util.Date;
public class Example{
  public static void main(String[] args) {
    Date date = new Date();
      //创建DateFormat对象
    DateFormat dateInstance = DateFormat.getDateInstance();
    DateFormat fullFormat = DateFormat.getDateInstance(DateFormat.FULL);
    DateFormat longFormat = DateFormat.getDateInstance(DateFormat.LONG);
    DateFormat mediumFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);
    DateFormat shortFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);

    System.out.println("默认日期格式器:"+dateInstance.format(date));
    System.out.println("完整格式日期格式器:"+fullFormat.format(date));
    System.out.println("长格式日期格式器:"+longFormat.format(date));
    System.out.println("普通格式日期/时间格式器:"+mediumFormat.format(date));
    System.out.println("短格式日期/时间格式器:"+shortFormat.format(date));
  }
}

Parse(String source)方法使用实例代码

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

public class Example{
  public static void main(String[] args) throws ParseException {

      DateFormat d1 = DateFormat.getDateInstance();
      DateFormat d2 = DateFormat.getDateInstance(DateFormat.LONG);
      Date date1 = d1.parse("2020年02月3日");
      Date date2 = d2.parse("2020年3月4日");
      System.out.println(date1);
      System.out.println(date2);
  }
}

11.SimpleDateFormat类

SimpleDateFormat类是DateFormat类的子类,可以使用new关键字创建对象

作用:取代父类的parse()方法,更好地格式化日期、解析字符串。

  • 它的构造方法需要接收一个表示日期格式模板的字符串参数

常用的格式规则为:

标识字母(区分大小写) 含义
y
M
d
H
m
s

实例代码

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

public class Example{
  public static void main(String[] args) throws ParseException {
      Date date = new Date();
      SimpleDateFormat simpleDateFormat = new SimpleDateFormat("今年yyyy年MM月dd日");
      String format = simpleDateFormat.format(date);
      System.out.println(format);
  }
}

你可能感兴趣的:(java)