JAVA常用类

2023-05-16

Object类

Object类是类层次结构的根,每个类都可以将Object作为超类,所有类都直接或者间接的继承该类
Object只有无参构造方法
在这里插入图片描述

Math类

包含执行基本数学运算的方法
在这里插入图片描述

Random类(伪随机数)

java.utal.Random类

public class Test1 {
    public static void main(String[] args) {
        //创建Random类
        Random random = new Random();
        //调用方法nexInt(范围),0~19
        int i = random.nextInt(20);
        System.out.println(i);
    }
}

File类

File类概述

  • File:它是文件和目录路径名的抽象表示
  • 文件和目录是可以通过File封装成对象的
  • 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在也可以是不存在;
    在这里插入图片描述
public class Test1 {
    public static void main(String[] args) throws ParseException {
        File file = new File("E:\\java_test\\java.txt");
        File file1 = new File("E:\\java_test","java.txt");
        File file2 = new File("E:\\java_test");
        File file3 = new File(file2,"java.txt");//此时并不会生成java.txt文件
        System.out.println(file);
    }
}

File类创建功能

在这里插入图片描述

public class Test1 {
    public static void main(String[] args) throws ParseException, IOException {
        File file = new File("E:\\java_test\\java.txt");
        //创建文件,创建成功返回true,失败返回false,已创建java.txt,再执行将不会重复创建
        System.out.println(file.createNewFile());
        File file1 = new File("E:\\java_test\\javatest");
        //创建目录,创建成功返回true,失败返回false,已创建javatest目录,再执行将不会重复创建
        System.out.println(file1.mkdir());
        File file2 = new File("E:\\java_test\\javaweb\\js");
        //创建多级目录,当javaweb目录不存在时,创建成功返回true,失败返回false,已创建java.txt,再执行将不会重复创建
        System.out.println(file2.mkdirs());
    }
}

File类判断和获取功能

在这里插入图片描述

File类删除功能

在这里插入图片描述
注意如果该目录下还有文件,就不能直接删除该目录;

遍历目录

/**
 * todo 遍历目录
 */
public class Test1 {
    public static void main(String[] args) {
        //给定目录或着文件创建file对象
        File srcFile = new File("E:\\html");
        getAllFilePath(srcFile);
    }

    //todo 定义方法,返回一个目录下所有内容
    public static void getAllFilePath(File srcFile){
        if(srcFile.isFile()){
            System.out.println(srcFile.getAbsolutePath());
        }else{
            //获取给定的目录下的所有文件或着目录
            File[] fileArray = srcFile.listFiles();
            //遍历该file数组,得到每一个file对象
            if(fileArray!=null){
                for (File file : fileArray) {
                    //判断该对象是否是目录
                    if(file.isDirectory()){
                        getAllFilePath(file);
                    }else{
                        System.out.println(file.getAbsolutePath());
                    }
                }
            }
        }
    }
}

包装类

将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法
操作该数据常用的操作之一:基本数据类型与字符串之间的转换
在这里插入图片描述

例:Integer

在这里插入图片描述

public class Test1 {
    public static void main(String[] args) {
        Integer integer = Integer.valueOf("100");
        System.out.println(integer);
        Integer integer1 = Integer.valueOf(100);
        System.out.println(integer1);
    }
}

在这里插入图片描述

自动装箱和拆箱

  • 装箱:把基本数据类型转换为对应的包装类类型’
  • 拆箱:把包装类类型转换为对应的基本数据类型

在这里插入图片描述

日期类

Date类

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

SimpleDateFormat类

用于以区域设置敏感的方法格式化和解析日期
在这里插入图片描述

构造方法

在这里插入图片描述

格式化和解析日期

在这里插入图片描述

public class Test1 {
    public static void main(String[] args) throws ParseException {
        //格式化:Date到String
        Date d=new Date();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String s=sdf.format(d);
        System.out.println(s);
        System.out.println("----------------");
        //从String 到 Date
        String ss="2022-08-02 09:09:09";
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date dd = sdf2.parse(ss);
        System.out.println(dd);
    }
}

Calendar类(日历类)

Calendarw为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
Calendar 提供了一个类方法getInstance用于获取Calendat对象,其日历字段已使用当前日期和时间初始化:
Calendar rightNow =Calendar.getInstance();

public class Test1 {
    public static void main(String[] args) throws ParseException {
        //获取对象
        Calendar instance = Calendar.getInstance();
        System.out.println(instance);
        int year = instance.get(Calendar.YEAR);//年
        int month = instance.get(Calendar.MONTH) + 1;//月,月是从0开始的
        int date = instance.get(Calendar.DATE);//日
        System.out.println(year+"-"+month+"-"+date);
    }
}

在这里插入图片描述

String类

  • String类再java.lang包下,使用时不需要导包
  • String类代表字符串,Java程序中的所有字符串文字,都是此类的实例,即java程序中所有的双引号字符串,都是String类的对象

String字符串的特点

  • 字符串不可变,他们的值在创建后不能被更改
  • String的值是不可变的,但是他们可以被共享
  • 字符串效果上相当于字符数组(char[]),但是底层原理是字节数组(byte[]).
    注:JDK8及以前是字符数组,JDK9及以后是字节数组

String构造方法

注意:以""方式给出的字符串,只要字符序列相同()顺序和大小写,无论在程序中出现多少次,JVM都只会建立一个String对象,并在字符串池中维护。在这里插入图片描述

String的字符串拼接

String str1 = "c";
String str2 = "x";		  
String str3 = "c" + "x";//常量池中的对象
String str4 = str1 + str2; //TODO:在堆上创建的新的对象	  
String str5 = "cx";//常量池中的对象
System.out.println(str3 == str4);//false
System.out.println(str3 == str5);//true
System.out.println(str4 == str5);//false

‘==’与equal区别

  • ==:比较的是两个字符串内存地址(堆内存)的数值是否相等,属于数值比较;
  • equals():比较的是两个字符串的内容,属于内容比较。

遍历字符串

public class Test1 {
    public static void main(String[] args) {
        String s="cx";
        for (int i = 0; i < s.length(); i++) {
            System.out.println(s.charAt(i));//指定索引处的字符值
        }
        }
}

面试问题

String a=new String(“abc”);在执行的时候创建了几个对象,答案是:1个
因为abc是存放在常量池中的,这个过程是在编译的时候就产生的,而问题是,在执行的过程中!!!

StringBuffer(线程安全synchronized)

线程安全的可变字符序列,它是一个类似于String的字符串缓冲区,其实体容量会随着存放的字符串增加而自动增加。

StringBulider(非线程安全)

为什么使用StringBulider

在这里插入图片描述
使用String进行字符串拼接时,会浪费空间;

StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动维护数组的扩容。原理
在这里插入图片描述

StringBulider概述

StringBulider是一个可变的字符串类,可变指的是内容可变

  • String:内容不可变
  • StringBuilder:内容可变

StringBuilder构造方法

在这里插入图片描述

StringBuilder添加和反转方法

在这里插入图片描述

public class Test1 {
    public static void main(String[] args) {
        StringBuilder s1=new StringBuilder("c");
        StringBuilder s2 = s1.append("x");
        System.out.println(s1);//cx
        System.out.println(s2);//cx
        //这就是返回对象本身
    }
}

String与StringBuilder相互转化

在这里插入图片描述

System类

在这里插入图片描述

public class Test1 {
    public static void main(String[] args) {
        long start=System.currentTimeMillis();
        StringBuilder s1=new StringBuilder("c");
        StringBuilder s2 = s1.append("x");
        System.out.println(s1);//cx
        System.out.println(s2);//cx
        //这就是返回对象本身
        long end=System.currentTimeMillis();
        System.out.println("共耗时:"+(end-start)+"毫秒");//1毫秒
    }
}

枚举类Enum

  • JDK1.5之前需要自定义枚举类
  • JDK1.5新增的enum关键字用于定义枚举类
  • 枚举类的属性
  1. 枚举类对象的属性不应该允许被改动,所以应该使用private final修饰
  2. 若枚举类使用private final修饰的属性应该在构造器中为其赋值
  3. 若枚举类显式的定义了带参数的构造器,则在列出枚举值时也必须对应的传入参数
/**
 * 使用enum关键字定义枚举类
 * 定义的枚举类默认继承与java.lang.Enum
 */
public enum Gender {
    MAN("男"),
    WOMAN("女");

    //申明Gender对象的属性,用private final
    private final String sex;

    Gender(String sex) {
        this.sex=sex;
    }

    public String getSex() {
        return sex;
    }
}

public class Test15 {
    public static void main(String[] args) {
        Gender man = Gender.MAN;
        //toString():返回当前枚举类对象常量的名称
        System.out.println(man.toString());
        System.out.println("-------");
        //values():返回枚举类型的对象数组
        Gender[] values = Gender.values();
        for (Gender value : values) {
            System.out.println(value);
        }
        System.out.println("-------");
        //valueOf(String objName):返回枚举类中对象名是objName的对象,没找到则抛出异常
        Gender man1 = Gender.valueOf("MAN");
        System.out.println(man1.getSex());
    }
}

枚举类实现接口

public class Test16 {
    public static void main(String[] args) {
        Gender1 woman = Gender1.WOMAN;
        woman.show();
    }
}

//接口
interface Info{
    void show();
}

enum Gender1 implements Info {
    MAN("男"){
        @Override
        public void show() {
            System.out.println("this is man");
        }
    },
    WOMAN("女") {
        @Override
        public void show() {
            System.out.println("this is woman");
        }
    };

    //申明Gender对象的属性,用private final
    private final String sex;

    Gender1(String sex) {
        this.sex=sex;
    }

    public String getSex() {
        return sex;
    }
}

=》javaAPI官方文档

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA常用类 的相关文章

  • 删除docker容器中的文件,你还看不明白?

    原理讲解前 xff0c 先看一个最经典的业务场景 xff0c 如开发一个电商网站 xff0c 要实现支付订单的功能 xff0c 流程如下 xff1a 创建一个订单之后 xff0c 如果用户立刻支付了这个订单 xff0c 我们需要将订单状态更
  • 实战Compose——做个简洁却不简单的星球打卡App

    Focus Focus是一款帮助你集中的app 为自己的目标建立星球 xff0c 将时间投入在上面 花在星球上的每一分钟都会被记录 xff0c 每颗星球可以定制颜色与外观 为了贯彻简单干净不让人分心的设计理念 xff0c app采用白灰为主
  • android 截屏实现的几种方式

    Android 截屏分为四种 xff1a View 截屏 WebView 截屏 系统截屏 和 adb 截屏 1 View 截屏 View 截图是将当前 View 界面截取下来 xff0c 而对于屏幕上其他信息比如 xff1a 状态栏或其他应
  • iBatis使用log4j2输出日志

    原文链接这里 iBatis是一个老项目 xff0c 2 3 4 726版本发布之后 xff0c 项目改名为MyBatis xff0c 项目主页目前为http mybatis github io 我从08年开始接触iBatis xff0c 一
  • Android搭建无线调试环境

    ADB 安卓官网对此工具的介绍 Android 调试桥 adb 是一种功能多样的命令行工具 xff0c 可让您与设备进行通信 adb 命令可用于执行各种设备操作 xff08 例如安装和调试应用 xff09 xff0c 并提供对 Unix s
  • Golang:使用 FCM 实现推送通知

    firebase和设备令牌基本介绍 设备令牌是主要参赛者 xff0c 负责推送通知 这不是一个花哨的词 xff0c 它只是每个设备唯一的 id 当我们安装任何应用程序时 xff0c 我们设备的唯一令牌会存储在他们的服务器上 xff0c 他们
  • 适用于 Flutter 的 AWS Amplify

    关于Amplify Amplify 于 2017 年推出 xff0c 是面向移动和前端 Web 开发人员的端到端 AWS 解决方案 它是服务和工具的组合 xff0c 可以一起使用或单独使用 xff0c 以帮助移动和前端开发人员使用 AWS
  • Android Native 异常捕获库

    现状 发生native异常时 xff0c 安卓系统会将native异常信息输出到logcat中 xff0c 但是java层无法感知到native异常的发生 xff0c 进而无法获取这些异常信息并上报到业务的异常监控系统 业务部门可以快速实现
  • 从 ExoPlayer 源码分析视频无法播放问题

    What happened 最近负责的项目中碰到了在部分手机上无法播放视频的问题 xff0c 我们接入的是 ExoPlayer 三方库 xff0c 从 log 看出现的是 Decoder init failed xff0c 也是网上常见的
  • Android Xposed 框架

    一 Xposed框架简介 Xposed是Android平台上的一个常用的HOOK框架 xff0c 可以在不改变程序源代码的前提下 xff0c 影响程序的运行 一个支持Xposed的Android应用程序被称为一个Xposed模块 xff0c
  • 干了3年Android开发,2023年我离职了...

    今天在网上刷到一个帖子 xff0c 说Android岗 xff0c 在公司呆了三年 xff0c 由于疫情原因 xff0c 公司效益不是很好 xff0c 加上自己的技术一直停留在应用开发 xff0c 在公司可有可无 xff0c 被公司裁后找不
  • 新来的23岁Android开发上来秀了波操作,把几个老员工看傻了

    春招了 xff0c 公司来了个小伙子 xff0c 一看简历 xff0c 嘿 xff1f 22岁 xff0c 这不刚毕业的小毛孩子嘛 xff0c 结果没想到人家上来就把现有项目的性能优化了一遍 xff0c 给公司节省了一半的成本 xff0c
  • 程序员因薪资低拒绝offer,HR恼羞成怒,网友瞬间炸翻了..

    一名程序员员在求职过程中 xff0c 碰到一位薪资谈不拢就恼羞成怒的HR xff0c 并说出 估计你一辈子就是个程序员 这样的话 从这位开发和HR的聊天内容中 xff0c 我们可以看到二者的谈薪过程 首先 xff0c HR开出15k的薪资
  • Linux C系统编程——使用信号量实现生产者,消费者问题(两分钟搞明白)

    信号量和信号不是同一个东西 信号量 xff1a 指的是semaphore xff0c 相当于设置初始值为N的互斥量 xff0c N就表示同时访问的线程数 xff08 针对的是线程同步问题 xff09 信号 xff1a 指的是用来实现进程与进
  • Java线程状态中BLOCKED和WAITING有什么区别?

    刚才在看CSDN的问答时 xff0c 发现这个问题 原问题的作者是在观察jstack的输出时提出的疑问 xff0c 那么BLOCKED和WAITING有什么区别呢 xff1f 答复在JDK源码中可以找到 xff0c 如下是java lang
  • 随记-创建sftp用户并分配操作目录权限

    背景 xff1a 客户需要到我服务器上存取文件 xff0c 单独给他创建sftp账号 步骤 1 创建一个sftp用户 xff0c 名称暂定为sjzx sftp user xff0c 并修改密码 span class token functi
  • 【idea导入外部项目目录结构显示不完整解决方案】与【Maven配置永久生效方案】

    一 idea导入外部项目目录结构显示不完整 idea导入外部项目时 xff0c 目录结构显示不完整 xff0c 如下图所示 可能的情况即解决方案如下 xff1a 1 等待即可 xff1b idea正在下载项目所需依赖 xff0c 等待pom
  • Kotlin实现登录界面的密码显示与隐藏

    kotlin实现android登录界面 1布局的设计 xff0c 密码的显示和隐藏2主程序的监听事件的绑定 1布局的设计 xff0c 密码的显示和隐藏 span class token prolog lt xml version 61 34
  • Ubuntu18.04 设置 root 用户登录

    1 Ubuntu root用户 初始是没有密码的 xff0c 所以在使用之前最好先设置密码 xff0c 在终端使用以下指令 sudo passwd root 2 输入下方指令 xff0c 修改文件内容 xff0c 设置root用户登录 cd
  • 【Jetpack】学穿:ViewBinding → 视图绑定

    0x0 Jetpack简介 手机厂商还没卷完Android 12 xff0c Android 13 就悄然声息地来了 xff0c 距离Google 2008年9月22日发布Android 1 0 xff0c 已过去13个年头 历经13年的打

随机推荐

  • 如何做影视解说短视频?素材文案+配音,每一个都不能少

    如何做影视解说短视频 xff1f 素材文案 43 配音 xff0c 每一个都不能少 很多小伙伴都喜欢问我如何才能做出来一个影视解说短视频 xff0c 其实并没有我们想象中的那么难 只是如果想要做成大号 xff0c 变成拥有六千多万粉丝 xf
  • 如何抓住用户痛点进行短视频文案创作?三个小方法可运用

    如何抓住用户痛点进行短视频文案创作 xff1f 三个小方法可运用 众所周知 xff0c 短视频的文案创作 xff0c 其实也是需要抓住用户痛点的 xff0c 而只要能够做到这一点 xff0c 吸引用户其实就非常简单了 所谓抓住用户痛点 xf
  • 短视频文案怎么写才能吸引用户?幽默不是唯一,触发情感也很重要

    短视频文案怎么写才能吸引用户 xff1f 幽默不是唯一 xff0c 触发情感也很重要 很多做短视频的小伙伴们都会烦恼一件事 xff0c 那就是不知道短视频的文案究竟要怎么写才能够顺利的吸引到用户 很多小伙伴认为幽默的文案才能吸粉引流 xff
  • 短视频运营小技巧,标题文案都很重要,还有配音也别忘记

    短视频运营小技巧 xff0c 标题文案都很重要 xff0c 还有配音也别忘记 想要让自己的短视频获得高高的流量 xff0c 那么是离不开运营小技巧的 xff0c 那么今天我们就来分享三个短视频运营的小技巧 xff0c 标题文案都很重要 xf
  • java中怎样获取绝对路径,增加代码的灵活性?

    介绍获取绝对路径的方法 xff0c 一种是获取普通文件 xff0c 另一种是只能获取后缀名为 properties的文件 第一种 xff1a 在IO流读取文件时 xff0c 我们往往会通过直接写文件名的方式取 xff0c 例如 xff1a
  • tomcat学习笔记之catalina.sh

    本文基于tomcat 8 0 18版本的源码实现写作 xff0c 随tomcat7发布的脚本可能会有些差异 最早是在07年部门培训的时候接触到tomcat xff0c 但后来的工作都和web开发不相关 xff0c 所以没有积累多少使用经验
  • 24届春招百度暑假实习笔试第二题

    题干 解答 该题目在解决的时候 xff0c 需要发现就是对于相同的字符我们应该放在一起 xff0c 这样在进行修改的时候 xff0c 对其他字符的影响才会小 然后连续相同字符个数 和 组成的回文子串数目 它们的通解为 an 61 n 2 4
  • (二十三)操作系统-多生产者·多消费者问题

    文章目录 一 问题描述二 问题分析1 关系分析2 整理思路 三 实现1 代码2 如果不要互斥信号量3 将盘子 xff08 缓冲区 xff09 容量设为2 四 总结 一 问题描述 桌子上有一只盘子 xff0c 每次只能向其中放入一个水果 爸爸
  • 事件循环机制的理解

    点此链接
  • 【快速学习vue3】

    点此链接
  • 配置FTP协议 并且连接交换机进行文件传输

    配置FTP连接交换机进行文件传输 文章目录 配置FTP连接交换机进行文件传输前言一 FTP文件传输协议1 配置环境电脑验证 xff08 使用CMD直接ftp 43 进行连接的设备IP xff09 前言 本文为网络工程师培训中的学习笔记 xf
  • Mysql-最左前缀法则以及索引失效情况

    最左前缀法则 如果索引了多列 xff08 联合索引 xff09 xff0c 要遵守最左前缀法则 最左前缀法则指的是查询从索引的最左列开始 xff0c 并且不跳过索引中的列 如果跳跃某一列 xff0c 索引将会部分失效 后面的字段索引失效 以
  • Spring框架开发流程

    Spring框架是什么 xff1f Spring是一个开源框架 xff0c Spring是于2003 年兴起的一个轻量级的Java 开发框架 xff0c 由Rod Johnson 在其著作Expert One On One J2EE Dev
  • HJ71 字符串通配符

    描述 问题描述 xff1a 在计算机中 xff0c 通配符一种特殊语法 xff0c 广泛应用于文件搜索 数据库 正则表达式等领域 现要求各位实现字符串通配符的算法 要求 xff1a 实现如下2个通配符 xff1a xff1a 匹配0个或以上
  • 如何用Java实现判断一个链表是否有环

    设置一个快指针和一个慢指针 xff0c 快指针一次走两步 xff0c 慢指针一次走一步 如果该链表没有环 xff0c 快指针会先指向NULL xff0c 可据此判断链表没有环结构 xff1b 如果该链表有环 xff0c 则快指针肯定先进环
  • Arch Linux安装 2023-04-09

    除特殊场景外 下面所有的 34 34 后都是注释 准备 EFI分区不小于200mb iso版本 archlinux 2023 04 01 x86 64 使用分区工具预留出足够空间 gt 20G 标签为 未分配 安装 连接网络 rfkill
  • Spring Boot配置数据库链接池

    配置方法 基于当前的1 5 2 RELEASE的Spring Boot 依照官方文档 xff0c 如果增加了如下依赖的配置 xff0c 或者类路径中存在spring boot starter jdbc的jar xff0c 那么已默认启用了数
  • 一文搞懂Java中相对路径与绝对路径

    一文搞懂Java中相对路径与绝对路径 在java中路径分隔使用正斜杠 xff0c 不推荐使用反斜杠 xff08 因为反斜杠需要转义两个反斜杠表示一个正斜杠 xff09 在windows磁盘中用 反斜杠 表示路径的分隔在浏览器中用 正斜杠 来
  • 【向量的叉乘】

    一 二维向量叉乘公式 xff1a a xff08 x1 xff0c y1 xff09 xff0c b xff08 x2 xff0c y2 xff09 xff0c 则a b 61 xff08 x1y2 x2y1 xff09 二 a b 61
  • JAVA常用类

    Object类 Object类是类层次结构的根 xff0c 每个类都可以将Object作为超类 所有类都直接或者间接的继承该类 Object只有无参构造方法 Math类 包含执行基本数学运算的方法 Random类 伪随机数 java uta