Java基础——常用类

注意:其中资料来源于蓝桥云课(https://www.lanqiao.cn/),有兴趣的小伙伴可以去官网学习,这里是小编自己学习后整理的资料,有误之处欢迎留言讨论,谢谢!

Arrays

常用方法

image-20211201181747293

数组练习
import java.util.Arrays;
import java.util.Random;

/**
 * @author : yingH
 * @create : 2021-120119:59
 * @details :
 */
public class ArraysDemo {
    public static void main(String[] args) {
        int[] arr =new int[10];
        Arrays.fill(arr,9);
        System.out.println("fill:"+Arrays.toString(arr));
        Random random = new Random();
        for (int i = 0; i < arr.length; i++) {
            arr[i]=random.nextInt(101);
        }
        System.out.println("重新赋值:"+Arrays.toString(arr));
        arr[5]=50;
        Arrays.sort(arr);
        System.out.println("排序后:"+Arrays.toString(arr));
        int i=Arrays.binarySearch(arr,50);
        System.out.println("值为50的元素索引:" + i);
        int[] newarr=Arrays.copyOf(arr,arr.length);
        System.out.println("equals:" + Arrays.equals(arr, newarr));
    }
}

习题 数组练习

image-20211201203210268

import java.util.Arrays;

/**
 * @author : yingH
 * @create : 2021-120120:32
 * @details :
 */
public class ArraysTest {
    public static void main(String[] args) {
        int[] arr=new int[]{6,17,92,32,58,22,84,66,36,33};
        Arrays.sort(arr);
        int i= Arrays.binarySearch(arr,33);
        System.out.println(i);
    }
}

StringBuilder

​ StringBuilder 类是可变的。它是 String 的对等类,它可以增加和编写字符的可变序列,并且能够将字符插入到字符串中间或附加到字符串末尾(当然是不用创建其他对象的)。

构造方法

image-20211201205320113

常用方法

image-20211201205352199

StringBuilder练习
/**
 * @author : yingH
 * @create : 2021-120121:04
 * @details :
 */
public class StringBuilderTest {
    public static void main(String[] args) {
        StringBuilder s = new StringBuilder("I");
        s.append("java");
        s.insert(1," love ");
        System.out.println(s.toString());
    }
}

Calendar

​ 在早期的 JDK 版本中,Date 类附有两大功能:

  1. 允许用年、月、日、时、分、秒来解释日期。
  2. 允许对表示日期的字符串进行格式化和句法分析。
构造方法

TimeZone 是 java.util 包中的一个类,其中封装了有关时区的信息。每一个时区对应一组 ID。类 TimeZone 提供了一些方法完成时区与对应 ID 两者之间的转换。

//太平洋时区的 ID 为 PST
TimeZone tz0 = TimeZone.getTimeZone("PST")
//getDefault()可以获取主机所处时区的对象
TimeZone tz1 = TimeZone.getDefault()

//调用Locale类的构造方法
Locale l0 = new Locale(String language)
Locale l1 = new Locale(String language, String country)
Locale l2 = new Locale(String languge, String country, String variant)

//调用Locale类中定义的常量
Locale  l1 = Locale.CHINA
Calendar练习
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.logging.SimpleFormatter;

/**
 * @author : yingH
 * @create : 2021-120121:13
 * @details :
 */
public class CalendarDemo {
    public static void main(String[] args) {
        System.out.println("完整显示日期时间:");
        // 字符串转换日期格式
        DateFormat fdate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String str = fdate.format(new Date());
        System.out.println(str);

        // 创建 Calendar 对象
        Calendar calendar = Calendar.getInstance();
        // 初始化 Calendar 对象,但并不必要,除非需要重置时间
        calendar.setTime(new Date());

        // 显示年份
        System.out.println("年: " + calendar.get(Calendar.YEAR));

        // 显示月份 (从0开始, 实际显示要加一)
        System.out.println("月: " + calendar.get(Calendar.MONTH));


        // 当前分钟数
        System.out.println("分钟: " + calendar.get(Calendar.MINUTE));

        // 今年的第 N 天
        System.out.println("今年的第 " + calendar.get(Calendar.DAY_OF_YEAR) + "天");

        // 本月第 N 天
        System.out.println("本月的第 " + calendar.get(Calendar.DAY_OF_MONTH) + "天");

        // 3小时以后
        calendar.add(Calendar.HOUR_OF_DAY, 3);
        System.out.println("三小时以后的时间: " + calendar.getTime());
        // 格式化显示
        str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
        System.out.println(str);

        // 重置 Calendar 显示当前时间
        calendar.setTime(new Date());
        str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
        System.out.println(str);

        // 创建一个 Calendar 用于比较时间
        Calendar calendarNew = Calendar.getInstance();

        // 设定为 5 小时以前,后者大,显示 -1
        calendarNew.add(Calendar.HOUR, -5);
        System.out.println("时间比较:" + calendarNew.compareTo(calendar));

        // 设定7小时以后,前者大,显示 1
        calendarNew.add(Calendar.HOUR, +7);
        System.out.println("时间比较:" + calendarNew.compareTo(calendar));

        // 退回 2 小时,时间相同,显示0
        calendarNew.add(Calendar.HOUR, -2);
        System.out.println("时间比较:" + calendarNew.compareTo(calendar));

        // calendarNew创建时间点
        System.out.println((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendarNew.getTime()));
        // calendar创建时间点
        System.out.println((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime()));
        System.out.println("时间比较:" + calendarNew.compareTo(calendar));

    }
}

Date

​ Date 类表示日期和时间,里面封装了操作日期和时间的方法。Date 类经常用来获取系统当前时间。

构造方法

image-20211201213114822

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

public class DateDemo {
    public static void main(String[] args) {
        String strDate, strTime;
        Date objDate = new Date();
        System.out.println("今天的日期是:" + objDate);
        long time = objDate.getTime();
        System.out.println("自1970年1月1日起以毫秒为单位的时间(GMT):" + time);
        strDate = objDate.toString();
        //提取 GMT 时间
        strTime = strDate.substring(11, (strDate.length() - 4));
        //按小时、分钟和秒提取时间
        strTime = "时间:" + strTime.substring(0, 8);
        System.out.println(strTime);
        //格式化时间
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(formatter.format(objDate));
    }
}

Math

Math 类在 java.lang 包中,包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数.

常用方法

image-20211201214143059

image-20211201214205355

image-20211201214215728

Math练习
public class MathDemo {
    public static void main(String[] args) {
        System.out.println(Math.abs(-12.7));
        System.out.println(Math.ceil(12.7));
        System.out.println(Math.rint(12.4));
        System.out.println(Math.random());
        System.out.println("sin30 = " + Math.sin(Math.PI / 6));
        // 计算30°的正弦值,参数是用弧度表示的角,即π的六分之一
        System.out.println("cos30 = " + Math.cos(Math.PI / 6));
        // 计算30°的余弦值,这些计算三角函数的方法,其参数和返回值的类型都为double
        System.out.println("tan30 = " + Math.tan(Math.PI / 6));
        // 计算30°的正切值
    }
}
习题

image-20211201214427162

import java.util.Random;

/**
 * @author : yingH
 * @create : 2021-120121:44
 * @details :
 */
public class MathTest {
    public static void main(String[] args) {
        Random random = new Random();
        int a=random.nextInt(101);
        int b=random.nextInt(101);
        int c=Math.max(a,b);
        System.out.println(c);
    }
}

System

  • 标准输入,标准输出和错误输出流;
  • 访问外部定义的属性和环境变量;
  • 加载文件和库的方法;
  • 以及用于快速复制数组的实用方法。

注意:System 不可以被实例化,只可以使用其静态方法。

//从指定的源数组中复制一个数组,从源数组指定的位置开始,到目标数组指定的位置
public static void arraycopy(Object src,int srcPos, Object dest,int desPos,int length)
//返回以毫秒为单位的当前时间(从1970年到现在的毫秒数)
public static long currentTimeMillis()
//终止当前正在运行的Java虚拟机,status为 0时退出
public static void exit(int status)
//  运行垃圾收集器
public static void gc()
// 取得当前系统的全部属性
public static Properties getProperties()
//获取指定键的系统属性
public static String  getProperty(String key)
练习
import java.util.Arrays;

public class SystemDemo {
    public static void main(String[] args) {
        int[] a = {7, 8, 9, 10, 11};
        int[] b = {1, 2, 3, 4, 5, 6};
        //从数组a的第二个元素开始,复制到b数组的第三个位置 复制的元素长度为3
        System.arraycopy(a, 1, b, 2, 3);
        //输出结果
        System.out.println(Arrays.toString(b));
        System.out.println("当前时间:" + System.currentTimeMillis());
        System.out.println("java版本信息:" + System.getProperty("java.version"));
        //运行垃圾收集器
        System.gc();
        //退出
        System.exit(0);
    }
}
习题

image-20211201215340125

import java.util.Arrays;

/**
 * @author : yingH
 * @create : 2021-120121:54
 * @details :
 */
public class SystemTest {
    public static void main(String[] args) {
        System.out.println("当前Java安装路径:" + System.getProperty("java.home"));
        int[] a = {1, 2, 3, 4, 5};
        int[] b={6,7,8,9,10};
        System.arraycopy(a,2,b,2,2);
        System.out.println(Arrays.toString(b));


    }
}

Random

​ Random 类用于生成伪随机数流,在 java.util包下。

练习
import java.util.Random;

public class RandomDemo {
    public static void main(String[] args) {
        Random random = new Random();
        //随机生成一个整数 int范围
        System.out.println(random.nextInt());
        //生成 [0,n] 范围的整数  设n=100
        System.out.println(random.nextInt(100 + 1));
        //生成 [0,n) 范围的整数  设n=100
        System.out.println(random.nextInt(100));
        //生成 [m,n] 范围的整数  设n=100 m=40
        System.out.println((random.nextInt(100 - 40 + 1) + 40));
        //随机生成一个整数 long范围
        System.out.println(random.nextLong());
        //生成[0,1.0)范围的float型小数
        System.out.println(random.nextFloat());
        //生成[0,1.0)范围的double型小数
        System.out.println(random.nextDouble());
    }
}

注意:随机生成[m,n](m<n)的随机整数是 (random.nextInt(n - m + 1) + m)

习题 生成随机数

image-20211201221931352

import java.util.Random;
import java.util.Scanner;

/**
 * @author : yingH
 * @create : 2021-120122:20
 * @details :
 */
public class RandomTest {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int m,n;
        m=scan.nextInt();
        n=scan.nextInt();
        Random random = new Random();
        System.out.println(random.nextInt(n - m + 1)+m);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值