首页 > 编程语言 >Java基础——常用API

Java基础——常用API

时间:2024-11-10 19:16:08浏览次数:3  
标签:常用 Java String 对象 System API println new out

API(应用程序接口):java帮我们写好的一些程序,如类、方法等

1. String

1.1. 创建String对象并封装字符串

// 1. 直接用双引号得到字符串对象,封装字符串数据
String name = "xiaoming";
System.out.println(name); // xiaoming
// 2. 使用new String创建对象, 并调用构造器来初始化
String s = new String();  // 无参构造器
System.out.println(s); // ""
// 3. 使用字符数组构造器
char[] chars = {'a', 'b', 'c'};
String s1 = new String(chars); // 字符数组构造器
System.out.println(s1);  // abc
// 4. 使用字节数组构造器
byte[] bytes = {97, 98, 99};
String s2 = new String(bytes);  // 字节数组构造器
System.out.println(s2); // abc

1.2. String的常用方法

String a = new String("test");
String b = new String("test");
System.out.print(a == b); // false 比较地址
System.out.print(a.equals(b)); // true

1.3. 注意事项

  1. String的对象是不可变的字符串对象
  2. 只要是以""写出的字符串对象,都会存在堆的常量池中,且相同内容只存储一份
  3. 通过new创建的字符串对象,每new一次都会产生一个新对象放在堆内存中。

2. ArrayList

3. Object

  1. Object类是Java中所有类的祖宗类,Java中所有的对象都可以使用Object类提供的方法
  2. ,equals比较的是地址
  3. toString()和equals()方法主要是为了让子类去重写,实现新的逻辑。
  4. 子类对clone()方法重写时,需要实现Cloneable接口(一个标记接口),克隆的对象是一个新对象

4. Objects

objects是一个工具类,提供了许多静态方法,可以使用类名直接调用

5. 包装类

  1. 把基本类型的数据包装成对象

  1. 使用valueOf()方法,将基本类型数据转换为对象
  2. Java中提供自动装箱,可以自动的把基本数据类型转化为对象;自动拆箱,将封装的对象自动转换为基本数据类型。
  3. 包装类可以将基本数据类型转换为字符串(如Integer.toString()),可以将字符串对应的数值转化为基本数据类型(如 parseInt()),推荐直接使用valueOf("123")

6. StringBuilder

  1. StringBuilder是一个可变字符串对象,相当于是一个容器,里边的字符串是可以改变的,就是用来造作字符串的。

  1. StringBuilder支持链式编程,如s.append(123).append("123");
  2. 为什么使用StringBuilder,因为如果有对字符串频繁的拼接和修改,StringBuilder的效率更高,因其每次返回的都是对象本身,而String是创建新的对象

7. StringBuffer

  1. StringBuffer的用法与StringBuilder一模一样
  2. StringBuffer是线程安全的,StringBuilder是线程不安全的

8. StringJoiner

  1. 不仅能提高字符串的操作效率,在某些场景下使用它来操作字符串,代码会更简洁

9. Math

  1. 是一个数学工具类,提供了一些对数据操作的静态方法

10. System

  1. 一个系统工具类

从1970-1-1 0:0:0 开始到此的毫秒值

11. Runtime

  1. 代表程序所在的运行环境
  2. 是一个单例类

12. BigDecimal

  1. 用于解决浮点运算时,结果失真的问题。

  1. 把小数转换为字符串,利用BigDecimal进行运算

13. Date

  1. 代表的是日期和时间。

14. SimpleDateFormat

  1. 简单日期格式化,用于把日期对象和毫秒值格式化为我们想要的格式。

  1. 将字符串转换为日期对象

15. Calendar

  1. 代表系统此刻时间对应的日历,可以通过它单独获取和修改时间中的年、月、日、时、分、秒等。

16. LocalDate、LocalTime、LocalDateTime

16.1. LocalDate

代表本地日期,年、月、日、星期(Year、Month、DayOfMonth、DayOfWeek)

16.2. LocalTime

代表本地时间,时、分、秒、纳秒(Hour、Minute、Second、Nano)

16.3. LocalDateTime

代表本地日期、时间(年、月、日、星期、时、分、秒、纳秒)

// 1. 获取本地日期对象
LocalDate localDate = LocalDate.now();

// 2. 获取日期信息
System.out.println(localDate.getYear()); // 2024 年
System.out.println(localDate.getMonthValue()); // 11 月
System.out.println(localDate.getDayOfMonth()); // 10 日
System.out.println(localDate.getDayOfWeek().getValue()); // 7 周几
System.out.println(localDate.getDayOfYear()); // 315 一年中的第几天

// 3. 修改日期信息 withYear、withMonth、withDayOfMonth、withDayOfWeek
LocalDate localDate1 = localDate.withYear(2099); // 修改后返回的是一个新对象, 原对象会被保留
System.out.println(localDate1); // 2099-11-10

// 4. 把某个信息加多少 plusYears、plusMonths、plusDays、plusWeeks
LocalDate localDate2 = localDate.plusWeeks(7);
System.out.println(localDate2);

// 5. 把某个信息减多少 minusYears、minusMonths、minusDays、minusWeeks
LocalDate localDate3 = localDate.minusYears(10);
System.out.println(localDate3);

// 6. 获取指定日期的LocalDate对象 of(year, month, dayOfMonth)
LocalDate of = LocalDate.of(2002, 01, 01);

// 7. 判断两个日期对象是否相等, 在前还是在后 equals、isBefore、isAfter
boolean flag = of.isBefore(localDate1);  // true
System.out.println(flag);

17. ZoneId、ZonedDateTime

17.1. ZoneId

获取时区Id

// 1. ZoneId的常用方法
// 1.1 获取当前系统默认时区
ZoneId zoneId = ZoneId.systemDefault();
System.out.println(zoneId);

// 1.2 获取所有时区列表
Set<String> availableZoneIds = ZoneId.getAvailableZoneIds();
System.out.println(availableZoneIds);

// 1.3 将时区id封装成ZoneId对象
ZoneId of = ZoneId.of("America/New_York");

17.2. ZonedDateTime

带时区的时间

// 2. ZonedDateTime 带时区的时间
// 2.1 获取某个时区的ZonedDateTime对象
ZonedDateTime now = ZonedDateTime.now(of);
System.out.println(now);

// 2.2 获取系统默认的时区的ZonedDateTime对象
ZonedDateTime now1 = ZonedDateTime.now();
System.out.println(now1);

18. Instance

时间线上的某一个时刻/时间戳,由两部分组成:从1970-01-01 00:00:00 开始到此的总秒数 + 不到1秒的纳秒数

19. DateTimeFormatter

格式化器,用于时间的格式化、解析

20. Period、Duration

20.1. Period

用于计算两个LocalDate对象相差的年数、月数、天数。

20.2. Duration

用于计算两个时间对象相差的天数、小时数、分钟数、秒数、纳秒数

21. Arrays

  1. 用来操作数组的一个工具类

  1. 如何解决不能对自定义对象的排序

A. 让该对象的类实现Comparable接口,重写CompareTo()方法,自定义比较规则

// 学生类
public class Student implements Comparable<Student>{
    private String name;
    private int age;
    private double score;

    public Student() {
    }

    public Student(String name, int age, double score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }

    @Override
    public int compareTo(Student o) {
        // 约定
        // 1. 如果左边对象大于右边对象, 返回正整数
        // 2. 如果左边对象小于右边对象, 返回负整数
        // 3. 如果左边对象等于右边对象, 返回0
        if(this.score > o.score){
            return 1;
        }else if(this.score < o.score){
            return -1;
        }
        return 0;
    }
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", score=" + score +
                '}';
    }
}

// 主类
public static void main(String[] args) {
        Student[] students = new Student[3];
        students[0] = new Student("小明", 20, 99.5);
        students[1] = new Student("小红", 21, 89.4);
        students[2] = new Student("小绿", 22, 89.3);
        Arrays.sort(students);
        System.out.println(Arrays.toString(students));
    }

B. 使用下面这个sort方法,创建Comparator比较接口的匿名内部类对象,自定义比较规则

public static <T> void sort(T[] arr, Comparator<? super T> c)

// public static <T> void sort(T[] arr, Comparator<? super T> c)
// 参数1 比较的数组
// 参数2 比较器对象, 用于制定比较规则
Student1[] students1 = new Student1[3];
students1[0] = new Student1("小明", 20, 99.5);
students1[1] = new Student1("小红", 21, 89.4);
students1[2] = new Student1("小绿", 22, 89.3);

Arrays.sort(students1, new Comparator<Student1>() {
    @Override
    public int compare(Student1 o1, Student1 o2) {
        // 制定比较规则
        return Double.compare(o1.getScore(), o2.getScore());
    }
});
System.out.println(Arrays.toString(students1));

标签:常用,Java,String,对象,System,API,println,new,out
From: https://blog.csdn.net/weixin_68853331/article/details/143664710

相关文章

  • 基于java的图书馆预约座位系统的设计与实现(部署+源码+LW)
    项目描述临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于java的图书馆预约座位系统的设计与实现。功能需求本文基于这一研究背景......
  • 基于Java+SpringBoot+Mysql在线课程学习教育系统功能设计与实现二
    一、前言介绍:免费获取1.1项目摘要随着信息技术的飞速发展和互联网的普及,教育领域正经历着深刻的变革。传统的面对面教学模式逐渐受到挑战,而在线课程学习教育系统作为一种新兴的教育形式,正逐渐受到广泛关注和应用。在线课程学习教育系统的出现,不仅为学生提供了更加灵活、便捷......
  • JAVA绕过RASP
    JAVA绕过RASPRASP介绍RASP是一种安全技术,旨在通过在应用程序运行时实施保护机制来增强应用程序的安全性。它使得应用程序能够实时监控和防御潜在的攻击,而不依赖于外部的安全设备或控制措施。因为从 JDK1.5开始,Java提供了一种动态代理机制,允许代理检测在JVM中运行的服务,通......
  • JavaWeb:文件上传2
    欢迎来到“雪碧聊技术”CSDN博客!在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将不断探索Java的深邃世界,分享最新的技术动态、实战经验以及项目......
  • 基于Java+SpringBoot+Mysql在线课程学习教育系统功能设计与实现一
    免费下载:猿来入此一、前言介绍:1.1项目摘要随着信息技术的飞速发展和互联网的普及,教育领域正经历着深刻的变革。传统的面对面教学模式逐渐受到挑战,而在线课程学习教育系统作为一种新兴的教育形式,正逐渐受到广泛关注和应用。在线课程学习教育系统的出现,不仅为学生提供了更加灵......
  • 【最新原创毕设】基于移动端的助农电商系统+08655(免费领源码)可做计算机毕业设计JAVA、
    基于移动端的助农电商系统的设计与实现摘要近年来,电子商务的快速发展引起了行业和学术界的高度关注。基于移动端的助农电商系统旨在为用户提供一个简单、高效、便捷的农产品购物体验,它不仅要求用户清晰地查看所需信息,而且还要求界面设计精美,使得功能与页面完美融合,从而提升......
  • (2024最新毕设合集)基于SpringBoot的梓锦社区疫苗接种服务系统+42529|可做计算机毕业设
    目 录摘要1绪论1.1选题背景与意义1.2开发现状1.3论文结构与章节安排2 梓锦社区疫苗接种服务系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.......
  • 【计算机毕设选题推荐】基于javaee的超市外卖系统的设计与实现 【附源码+部署+讲解】
    ✍✍计算机编程指导师⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java实战|SpringBoot/SSMPython实战项目|Django微信小程......
  • 11.10 javaweb day3 表格,表单标签
    表格标签:定义表格整体,可以包裹多个,1.border:表格边框的宽度2.width:规定表格的宽度3.cellspacing:规定单元之间的空间:表格的行,可以包裹多个:单元格,表头单元格可以换成<body><tableborder="3px"cellspacing="2"width="600px"><tr><th>序号</th>......
  • %windir% 是一个环境变量,它指向当前操作系统中 Windows 安装目录的路径。它常用于批处
    %windir%是一个环境变量,它指向当前操作系统中Windows安装目录的路径。它常用于批处理文件、命令行或者脚本中,帮助系统或用户快速定位Windows系统文件夹的路径。类似的环境变量还有很多,它们通常用于在操作系统中快速访问重要的文件夹和目录,避免硬编码路径,从而提高脚本的可移植......