JavaAPI常用类01

目录

概述

Object类

Object类_toString()

代码展示

重写toString()方法前后输出

Object类_equals()

代码展示

重写equals()方法前后输出对比

Arrays类

equals()方法

Binary Search(二分查找)

copyOf()方法

sort()方法

了解sort()方法

进阶

基本数据类型包装类

例一

例二


概述

常用类API

常用类:Java系统中提供的一些使用频率较高的类

API:(Application Programming Interface):应用程序编程接口

  Java系统中所提供的一系列类和接口

api文档:官方给广大Java开发者、学习者提供对类和接口功能的说明文档

Object类

     object
       java.lang.object是Java类体系中的最顶级的类,万类之祖,

Object类_toString()

代码展示

package com.ffyc.javaapi.objectdemo;

public class Person extends Object{
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    /*
     重写父类中toString方法
    */
    @Override
    public String toString() {
        return "Person{" +
                "name='" + this.name + '\'' +
                ", age=" + this.age +
                '}';
    }
}

 toString()
       当输出一个对象时,会默认调用类中toString()方法,把对象以字符串形式输出,
       类中如果没有toString(),那么会调用父类(Object.toString)
          public String toString(){
                          //Object类中默认输出类的名字和对象在内存中的地址(10进制 转为16进制)
                 return getClass().getName() + "@" + Integer.toHexString(hashCode())

          }

package com.ffyc.javaapi.objectdemo;

public class ToStringDemo {
    */

    public static void main(String[] args) {
        Person person1 = new Person("三儿",18);
        Person person2 = new Person("小舞",100000);
        System.out.println(person1);//没有进行对toString方法重写前输出:com.ffyc.javaapi.objectdemo.Person@1b6d3586
        System.out.println(person2);
    }

}

重写toString()方法前后输出

重写前

重写后

Object类_equals()

代码展示

package com.ffyc.javaapi.objectdemo;

public class Person extends Object{
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    /*
     重写父类中equals方法 
    */
    @Override
    public boolean equals(Object obj) {
        Person p = (Person)obj;
        return this.name.equals(p.name) && this.age == p.age;
    }
}

         public boolean equals(Object obj){
                return (this == obj);
            }
            == 用于基本类型,比较值是否相等
            == 用于引用类型比较时,比较的是两个引用的地址是否相等

package com.ffyc.javaapi.objectdemo;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

public class TestEquals {
    public static void main(String[] args) { 
        int a = 10;
        int b = 10;
        System.out.println(a==b);
        Person person1 = new Person("三儿",18);//凡是new出来的,内存地址肯定不同
        Person person2 = new Person("三儿",18);
        Person person3 = person2;
        System.out.println(person1.equals(person2));
        //以后如果比较两个对象的地址是否相等时,直接使用==比较即可
        System.out.println(person1==person2);
        System.out.println(person3==person2);
        //所以其他的类为了比较两个对象中包含的内容是否相等,都对Object中的equals(),进行了重写,改为判断内容是否相等
        System.out.println(person1.equals(person2));

        //equals()用来比较对象中的内容是否相等
        String s1 = new String("aaa");
        String s2 = new String("aaa");
        System.out.println(s1==s2);//false
        System.out.println(s1.equals(s2));//true
    }
}

重写equals()方法前后输出对比

重写前

重写后

Arrays类

equals()方法

          equals是object类中的方法,只能用于判断引用类型
          equals方法默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等。
          比如String和Integer类中的equals源代码

package com.ffyc.javaapi.arraysdemo;

import java.util.Arrays;

public class ArraysEquals {

    public static void main(String[] args) { 
        int[]  a = {1,2,3,4,5,6};//数组也是对象,也是继承Object
        int[]  b = {1,2,3,4,5,6};
        System.out.println(a==b);//false 比较的是两个数组对象的地址
        System.out.println(a.equals(b));//false 数组也是对象,也继承了Object类,数组名.equals() 调用的是Object类中的equals
        System.out.println(Arrays.equals(a,b)); //true比较的两个数组中的内容是否相等
    }
}

Binary Search(二分查找)

package com.ffyc.javaapi.arraysdemo;

import java.util.Arrays;

public class ArraysBinarySearch {

    public static void main(String[] args) {
        int [] a = {1,2,3,4,5,6,7};

        //二分查找算法, 需要数组是有序,如果数组中不包含要找的key,返回负数,找到了返回元素所在的索引位置
        int  index  =  Arrays.binarySearch(a,8);
        System.out.println(index);

        //指定区间的查找 包含开始索引,到结束索引-1.
        int index1 = Arrays.binarySearch(a,0,4,5);
        System.out.println(index1);
    }
}

copyOf()方法

           数组复制:
             java中的数组在创建时,指定长度,一旦给定长度不能改变
             30--->扩容40 new 40
             将原数组中的内容复制到一个指定长度的新数组中

package com.ffyc.javaapi.arraysdemo;

import java.util.Arrays;

public class ArraysCopyof {

    public static void main(String[] args) { 

        int [] a = {1,2,3,4,5};
        int[] b = Arrays.copyOf(a,10);
        System.out.println(Arrays.toString(b));
    }
}

sort()方法

了解sort()方法

即对一个数组的所有元素进行排序
而且排序的时候是从小到大

package com.ffyc.javaapi.arraysdemo;

import java.util.Arrays;

public class ArraysSort {
    public static void main(String[] args) {

        //基本数据类型
        int [] a = {5,2,3,4,1,6};
        Arrays.sort(a);//对整个数组默认进行升序排序
        Arrays.sort(a,0,4);//对指定区间进行升序排序,包含开始位置,不包含结束位置(显示结束位置的上一位)
        System.out.println(Arrays.toString(a));

        //引用数据类型
        String[] s = {"b","a","c","d"};
        Arrays.sort(s);
        System.out.println(Arrays.toString(s));
    }
}

进阶

当存在两种或两种以上数据类型时,通过重写sort()方法进行排序

package com.ffyc.javaapi.arraysdemo;

public class Student implements Comparable<Student>{
    private int num;
    private String name;

    public Student(int num, String name) {
        this.num = num;
        this.name = name;
    }

    @Override
    public String toString() {
        return "Student{" +
                "num=" + num +
                ", name='" + name + '\'' +
                '}';
    }

    /*
     此方法用来制定和排序规则
     此方法会在sort()进行调用
    */
    @Override
    public int compareTo(Student o) {
        return this.num - o.num;//小于0  等于0  大于0(通过num排序)
        //return this.name.compareTo(o.name);(通过name排序)
    }
}
package com.ffyc.javaapi.arraysdemo;

import java.util.Arrays;

public class ArraysSort {
    public static void main(String[] args) { 

        Student s1 = new Student(001,"三儿");
        Student s2 = new Student(002,"十三");
        Student s3 = new Student(003,"洛雪");
        Student s4 = new Student(004,"一心");
        Student[] students = new Student[4];
        students[0] = s2;
        students[1] = s1;
        students[2] = s4;
        students[3] = s3;
        Arrays.sort(students);
        System.out.println(Arrays.toString(students));

        //System.out.println("a".compareTo("b"));字符串比较大小,返回一个int值

    }
}

基本数据类型包装类

         Java中基本数据类型,由8种关键字设声明的,不是面向对象的设计。
         为了对基本类型更加方便的操作,Java为每一种基本类型创建了一个类来进行表示。
         核心是类中还是包含了一个基本数据类型,还包含了很多关于基本类型操作的方法。
         这样我们使用包装类型,表示一个数据,符合面向对象思想

例一

package com.ffyc.javaapi.datatype;

public class MyInt {

    int value;

    public MyInt(int value) {
        this.value = value;
    }

    public int maxint(){
        return Integer.MAX_VALUE;
    }

    public int minint(){
        return Integer.MIN_VALUE;
    }

    public static void main(String[] args) {
       int a = 10;
       MyInt b = new MyInt(10);
        System.out.println(b.maxint());
        System.out.println(b.minint());
        System.out.println(Integer.toBinaryString(3)); 
    }
}

例二

package com.ffyc.javaapi.datatype;

public class IntegerDemo1 {
    public static void main(String[] args) {
        int x = 10;
        Integer a = new Integer(x);

        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
        System.out.println(Integer.SIZE);
        System.out.println(Integer.BYTES);
        System.out.println(Integer.toBinaryString(333));
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/409260.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在使用nginx的时候快速测试配置文件,并重新启动

小技巧 Nginx修改配置文件后需要重新启动&#xff0c;常规操作是启动在任务管理器中关闭程序然后再次双击nginx.exe启动&#xff0c;但是使用命令行就可以快速的完成操作。 将cmd路径切换到nginx的安装路径 修改完成配置文件后 使用 nginx -t校验nginx 的配置文件是否出错 …

Python入门必学:reverse()和reversed()的区别

Python入门必学&#xff1a;reverse()和reversed()的区别 &#x1f4c5;2024年02月25日 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程…

Cover和contain属性

一.背景的盒子 代码&#xff1a; <body><div class"box"></div><style>.box {width: 500px;height: 500px;border: 1px solid #ccc;background: url(./20191017095131790.png) no-repeat;}</style></body> 盒子的宽度和高度是…

SpringBootRest服务调用

目录 RestTemplate 依赖配置 自定义RestTemplate webCilent 依赖配置 自定义webCilent springboot中有两种方式实现Rest远程服务调用&#xff0c;分别是RestTemplate与webCilent。下面分别介绍一下这两种方式。 RestTemplate 依赖配置 RestTemplate是Spring Framework提供的…

不会做UI自动化测试?一起设计框架再实践吧

目的 相信做过测试的同学都听说过自动化测试&#xff0c;而UI自动化无论何时对测试来说都是比较吸引人的存在。 相较于接口自动化来说它可以最大程度的模拟真实用户的日常操作与特定业务场景的模拟&#xff0c;那么存在即合理&#xff0c;自动化UI测试自然也是广大测试同学职…

2.23日学习打卡----初学Nginx(二)

2.23日学习打卡 目录: 2.23日学习打卡一. Nginx 虚拟主机虚拟主机的分类Nginx支持三种类型的虚拟主机配置Nginx虚拟主机单网卡多IP配置Nginx虚拟主机_基于域名虚拟主机配置Nginx虚拟主机基于多端口的配置4 二. Nginx 核心指令root和alias指令的区别return指令rewrite指令rewrit…

Vue | (六)使用Vue脚手架(下)| 尚硅谷Vue2.0+Vue3.0全套教程

文章目录 &#x1f4da;Vue 中的自定义事件&#x1f407;使用方法&#x1f407;案例练习&#x1f407;TodoList案例优化 &#x1f4da;全局事件总线&#x1f407;使用方法&#x1f407;案例练习&#x1f407;TodoList案例优化 &#x1f4da;消息订阅与发布&#x1f407;使用方法…

RCE (Remote ????? execution) --->CTF

看这个标题就知道今天的内容不简单&#xff01;&#xff01;&#xff01;&#xff01; 那么就来讲一下我们的RCE吧 目录 ​编辑 1. &&#xff1f; |&#xff1f; ||&#xff1f; &&&#xff1f; 2.PHP命令执行函数&& ||"" 1."" &…

USB Micro引脚及相应原理图绘制

前言&#xff1a;博主为实现绘制USB Micro输入口原理图&#xff0c;首先在 GD32F103XX的数据手册中找到引脚的功能描述&#xff0c;找到USBDM与USBDP功能&#xff0c;分别为引脚PA11与引脚PA12。然后进行相应的原理图绘制。 * USBDM。USBDM 引脚是与通用串行总线 (Universal Se…

java数据结构与算法刷题-----LeetCode106. 从中序与后序遍历序列构造二叉树

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 1. 法一&#xff1a;递归 解题思路&#xff1a;时间复杂度O(n),空间复杂度…

人工智能 — 相机模型和镜头畸变

目录 一、相机模型1、相机与图像2、坐标系1、世界坐标系2、相机坐标系3、图像物理坐标系4、图像像素坐标系 3、相机成像4、世界坐标系到摄像机坐标系5、欧氏变换6、齐次坐标7、摄像机坐标系到图像物理坐标系8、图像物理坐标系到图像像素坐标系9、摄像机坐标系到图像像素坐标系1…

图解目标检测 之 【YOLOv9】 算法 最全原理详解

YOLOv9与SOTA模型对比 什么是 YOLOv9&#xff1f;YOLOv9是YOLO系列中的最新产品&#xff0c;是一种实时目标检测模型。它通过先进的深度学习技术和架构设计&#xff0c;包括通用 ELAN (GELAN) 和可编程梯度信息 (PGI)&#xff0c;展现出更好的性能。 YOLO 系列通过引入计算机视…

C++入门学习(三十七)函数分文件编写【DEV】

创建.h后级名的头文件创建.cpp后缀名的源文件在头文件中写函数的声明在源文件中写函数的定义 一、选择文件、新建、项目 二、 选择Empty Project 三、 新建源文件New File 四、贴代码 test.cpp #include <iostream> #include "add.h" using namespace std;i…

在Sora引爆视频生成时,Meta开始用Agent自动剪视频了

未来&#xff0c;视频剪辑可能也会像视频生成领域一样迎来 AI 自动化操作的大爆发。 这几天&#xff0c;AI 视频领域异常地热闹&#xff0c;其中 OpenAI 推出的视频生成大模型 Sora 更是火出了圈。而在视频剪辑领域&#xff0c;AI 尤其是大模型赋能的 Agent 也开始大显身手。 …

PMP项目管理考试要注意些什么?

PMP考试和PMP备考过程中应该注意哪些问题&#xff1f; PMP备考完成后就要迎接实战考试了&#xff0c;考试前千万不要有多余的想法&#xff0c;顺其自然就行了&#xff0c;我想大家各种紧张、各种忧虑的原因大抵是因为考试成本考&#xff0c;担心考不过&#xff0c;其实只要你在…

Java后端服务接口性能优化常用技巧

接口性能优化常用技巧 前言1.数据库索引2.慢SQL优化3.异步执行4.批量处理5.数据预加载6.池化技术&#xff08;多线程&#xff09;8.事件回调机制9.串行改为并行调用10.深度分页问题 前言 对于高标准程序员来说提供高性能的服务接口是我们所追求的目标&#xff0c;以下梳理了一…

Linux安装Zookeeper

目录 下载配置启动 下载 下载链接 https://archive.apache.org/dist/zookeeper/上传 我直接本地下好了&#xff0c;拖到对应文件夹解压&#xff0c;重命名&#xff0c;注意路径 tar -zxvf /opt/Zookeeper/apache-zookeeper-3.7.2-bin.tar.gz -C /opt/ mv /opt/apache-zookeep…

WPF真入门教程29--MVVM常用框架之MvvmLight

1、MVVM模式回顾 关于mvvm模式的基础知识&#xff0c;请看这2个文章&#xff1a; WPF真入门教程23--MVVM简单介绍 WPF真入门教程24--MVVM模式Command命令 做过VUE开发或微信小程序开发的伙伴&#xff0c;就知道MVVM模式&#xff0c;核心就是数据驱动控件&#xff0c;全栈开…

【EAI 025】Ego4D: Around the World in 3,000 Hours of Egocentric Video

Paper Card 论文标题&#xff1a;Ego4D: Around the World in 3,000 Hours of Egocentric Video 论文作者&#xff1a;Kristen Grauman, Andrew Westbury, Eugene Byrne, et al. 作者单位&#xff1a;UC Berkeley, CMU, Google 论文原文&#xff1a;https://arxiv.org/abs/2110…

【MySQL高可用集群】MySQL的MGR搭建

前情提要&#xff1a; MySQL官方在 5.7.17版本正式推出组复制&#xff08;MySQL Group Replication&#xff0c;简称MGR&#xff09;&#xff0c;使用类似 zookeeper 的多于一半原则。在一个集群由 2N1 个节点共同组成一个复制组&#xff0c;一个事务的提交&#xff0c;必须经过…
最新文章