Java教程

Java基础-----常用类

本文主要是介绍Java基础-----常用类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java基础-----常用类

文章目录

  • 一、Scanner类
  • 二、包装类
    • 2.1、包装类概述
    • 2.2、包装类对应基本类型
    • 2.3、包装类的用途
    • 2.4、自动装箱和拆箱
      • 2.4.1、自动拆箱/拆箱的本质
      • 2.4.2、包装类的缓存问题
        • 2.4.2.1 为什么两个100的对象使用== 相等,但是两个1000的对象使用 ==不等于
  • 三、字符串相关类
    • 3.1、String字符串
    • 3.2、StringBuilder和StringBuffer可变字符序列
    • 3.3、字符串和可变字符序列使用陷阱
  • 四、 时间处理类
    • 4.1、时间类图
    • 4.2、时间类方法
    • 4.3、DateFormat类和SimpleDateFormat类
      • 4.3.1、字符串转换成Date
      • 4.3.2、Date转换成字符串
      • 4.3.3、格式化字符的意义
      • 4.3.3、使用格式化字符
    • 4.4、Calender类
  • 五、其他类
    • 5.1、Math和Randon类
    • 5.2、File类
      • 5.2.1、作用
      • 5.2.2、创建目录或者文件
      • 5.2.3、递归将一个文件夹中的所有文件复制到另外一个文件夹中
    • 5.3、枚举
  • 总结


一、Scanner类

(主要作用:用户交互)
在这里插入图片描述

package com.wr.oyc;

import java.util.Scanner;

public class System {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(java.lang.System.in);

        java.lang.System.out.print("请输入您的年龄:");
        int num = scanner.nextInt();

        if(num < 18 ){

            java.lang.System.err.println("禁止未成年上网!!!");

        }else{
            java.lang.System.out.println("去网吧耍吧");
        }
    }
}

在这里插入图片描述


二、包装类

2.1、包装类概述

在这里插入图片描述

2.2、包装类对应基本类型

在这里插入图片描述
类图:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.3、包装类的用途

在这里插入图片描述

2.4、自动装箱和拆箱

在这里插入图片描述

定义:自动装箱和拆箱就是将基本数据类型就是和包装类自动转换

2.4.1、自动拆箱/拆箱的本质

在这里插入图片描述
自动装箱:
在这里插入图片描述
自动拆箱:

在这里插入图片描述

2.4.2、包装类的缓存问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.4.2.1 为什么两个100的对象使用== 相等,但是两个1000的对象使用 ==不等于

	原因在valueof方法中
	a、如果传入的数在缓存的区间就返回原来的数字(也就是同一个对象) 
		  如果传入的数不在缓存区间就返回新的对象,那么就算两个数字相同
		  但是对象不同那么内存地址也就不同,使用==比较的就内存地址

三、字符串相关类

3.1、String字符串

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对于"hello" + "java“ 和 "hellojava"是同一对象,由于字符串常量池
但是str3+str4 是不等于str5
因为在编译期间编译器是不知道str3 + str4是什么的
什么 str4 不等于 (str3 + str4)

3.2、StringBuilder和StringBuffer可变字符序列

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3、字符串和可变字符序列使用陷阱

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

	不要用String去拼接字符串,每一次拼接都是创建一个对象,占用空间

四、 时间处理类

在这里插入图片描述
在这里插入图片描述

4.1、时间类图

在这里插入图片描述

4.2、时间类方法

在这里插入图片描述

package com.wr.oyc.date;

import java.util.Date;

public class Demo1 {
    public static void main(String[] args) {
        Date date = new Date(100000000000003032L);

        System.out.println(date);

        System.out.println(date.getTime());

        
        Date date1 = new Date(-21L*365*24*3600*1000);
        System.out.println(date1);
    }
}

在这里插入图片描述

4.3、DateFormat类和SimpleDateFormat类

在这里插入图片描述

在这里插入图片描述

4.3.1、字符串转换成Date

在这里插入图片描述
在这里插入图片描述

4.3.2、Date转换成字符串

在这里插入图片描述
在这里插入图片描述

4.3.3、格式化字符的意义

在这里插入图片描述

4.3.3、使用格式化字符

在这里插入图片描述
在这里插入图片描述

4.4、Calender类

在这里插入图片描述
在这里插入图片描述
菜鸟教程中的时间类


五、其他类

5.1、Math和Randon类

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
菜鸟教程中Math类


5.2、File类

在这里插入图片描述

5.2.1、作用

在这里插入图片描述

5.2.2、创建目录或者文件

在这里插入图片描述

5.2.3、递归将一个文件夹中的所有文件复制到另外一个文件夹中

package wr.oyc;
 
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
 
public class CopyCopyFileAndDirectory {
    public static void main(String[] args) {
        copyAll(new File("C:\\Users")
                , new File("E:\\"));
    }
 
    // 复制整个文件夹的方法
    public static void copyAll(File source, File start) {
 
        if (!start.exists()) {// 目的地是否有bourn的文件或者目录
            start.mkdir();// 没有就创建一个
            File[] listFiles = source.listFiles();// 获取源文件当前目录下第一层的所有文件信息
            for (File file : listFiles) {// 循环遍历
                if (file.isFile()) {// 当前的元素时文件么 如果是 则直接进行拷贝
                    copyFile(new File(source + "\\" + file.getName()), new File(start+ "\\" + file.getName()));
                } else {// 如果不是 则是目录 递归调用自己的方法 实现多层级复制
                    copyAll(new File(source + "\\" + file.getName()), new File(start+ "\\" + file.getName()));
                }
            }
        }
    }
 
    // 复制一个文件的方法
    public static void copyFile(File src, File newplace) {
        BufferedInputStream bis = null;// 创建输入输出缓存字节流 提高数据流通的性能
        BufferedOutputStream bos = null;
        try {
            bis = new BufferedInputStream(new FileInputStream(src));// 把字节流和字节缓存流连接在一起,形成通路
            bos = new BufferedOutputStream(new FileOutputStream(newplace));
 
            byte[] b = new byte[1024];// 创建byte数组的中转站,缓存为1024byte
            int len = 0;// 接受读取时read方法的返回值
            while ((len = bis.read(b)) != -1) {// 返回值为-1则读完了 停止读取和写入
                bos.write(b);// 写出byte数组的数据
                bos.flush();// 手动刷新输出的缓冲区
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            if (bos == null) {
                try {
                    bos.close();// 反向关闭高层流
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if (bis == null) {
                try {
                    bis.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
 
    }
}

5.3、枚举

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

总结

关于Scanner类的输出、包装类的装箱和拆箱、字符串String和可变字符序列StringBuffer、StringBuilder
再到Math类和Random类、枚举类、文件类、再到时间类Date SimpleDateFormat 字符串转时间 时间转字符串 Calender类 ,一起加油,每日一记

这篇关于Java基础-----常用类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!