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

ApI概念

Apl:指的是官方给开发人员提供的说明文档,对语言中有哪些类,类中有哪些方法进行说明

Objict 类

java.lang.Object

是java类体系结构中最顶层的类

Object可以表示java中任意的类

 

 Object类中的方法

toString()

 输出一个对象,但是对象在内存中,是不能输出的
当输出一个对象时,会默认调用此对象的toString(),
如果类中没有定义toString(),会调用object类中toString(),
Object类中toString(),是把对象在内存中的哈希值返回(以16进制返回)
把对象信息以字符串形式输出

equals()

boolearn equals(Object obj) 判断两个对象是否相等
Object类中的equals
public boolean equals(Object obj){
return (this==obj)默认比较的时两个对象的地址是否相等

public boolean equals(Object obj) {if(obj instanceof person){person other = (person) obj;return this.name.equals(other.name)&&this.age==other.age;}return false;
}

 == 比较等号两边是否相等
当==用于基本类型比较时,比较的是变量值是否相等
当==用于引用类型比较时,比较的是对象的地址是否相等

Arrays类

 java,util.Arrays类

● equals 方法

比较两个数组对象中元素是否相等.

而数组对象中的equals用来判断与另一个数组对象是否相等。

声明:public static boolean equals(type[]a,type[]a2) 参数的类型可以是原生数据类型和引用类型的任意一种类型

System.out.println(  Arrays.equals(a,b));

● copyOf方法

数组复制,将指定数组中的元素复制到一个指定长度的新数组中,并返回 新数组.

int []d=Arrays.copyOf(a,10);
System.out.println(d);

●fill方法

将指定的int值分配给指定的int数组的每个元素

Arrays.fill(b,0);
System.out.println(Arrays.toString(b));

●toString方法

返回指定数组内容的字符串表示形式。

System.out.println(Arrays.toString(d));

●sort -排序

作用于数组的所有元素 public static void sort(type[] a)

作用于数组指定范围内的元素

将指定的类型数组所有元素按数字升序进行排序。

long [] a={5,4,3,2,1,0};
Arrays.sort(a);//0--length-1
//Arrrays.sort(a,开始位置,结束位置(不包含))
Arrays.sort(a,0,4);
System.out.println(Arrays.toString(a));

●binarySearch -使用二分搜索算法搜索指定数组

/*
binarySearch() 二分搜素算法查找指定的元素位置,如果未找到返回负数*/
int []b={2,3,4,1,5};
int index=Arrays.binarySearch(b,1);
System.out.println(index);
Arrays.sort(b);
int flag=Arrays.binarySearch(b,1);
System.out.println(flag);

●自定义类实现Comparable接口

 重写compareTo方法

我们一个类进行排序,那么这个类必须实现Compaareable接口,

指定一个排序方式(这样所有的类都使用统一的方法进行排序了) 用来指定排序规则, 可以执行用类中那个属性作为排序的项
这个方法在sort()方法底层使用

@Override
public int compareTo(student o) {return this.id-o.id;
}
------------------------------------------   Arrays.sort(students);System.out.println(Arrays.toString(students));String s="a";String sr="b";System.out.println(s.compareTo(sr));

基本数据类型封装类

基本类型包装类:

Java中的基本数据类型使用8个关键字声明的,不是面向对象的

●Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进表示,这样八个和基本数据类型对应的类统称为包装类.

●包装类(如:Integer,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作方法。

类的用途主要包含两种:

● 作为和基本数据类型对应的类类型存在。

● 包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操 作方法。

类型转换:

自动拆箱:把引用类型 转为 基本类型

自动装箱:把基本类型 转为 引用类型

会默认调用valueof()方法,

在valueof()方法中如果基本类型值在-128---+127之间,会从缓存数组中直接取出一个Integer对象,减少创建对象次数,如果两个值相同,获取的是同一个对象,基本类型如果不在-128---+127范围内,每次都创建一个新的Integer对象返回。

/*
自动拆箱*/
int c=a.intValue();
int d=b;
/*
自动装箱*/
int z=128;
Integer x=Integer.valueOf(z);
Integer y=z;

String类

java.lang.String

"abc"-->字符串对象 底层是一个char数组 private final char value[]

字符串对象创建方式:

1.String s="abc";

创建时先去字符串常量池中去查找有没有相同值的对象,如果没有,就创建一个字符串对象,并返回地址
如果字符串常量中已经存储,就不用创建新的,直接返回已存在对象的地址

String s1="abc";
String s2="abc";
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
2.String s1=new String();

new 每次都是在堆中创建新的字符串对象

String s3=new String("abc");
String s4=new String("abc");
System.out.println(s3==s4);
System.out.println(s3.equals(s4));

字符串不变:

他们的值在创建后不能被更改

String s="abc";// abc   第一个字符串对象
s+="bcd";// abcbcd      第二个字符串对象
s+="aaa";// abcbcdaaa   第三个字符串对象
System.out.println(s);

String类方法

构造方法

String()

String(String s)

String(byte[] bytes)

public static void main(String[] args) throws UnsupportedEncodingException {String s1="你好";byte[] bytes=s1.getBytes("GBK");System.out.println(Arrays.toString(bytes));String s2=new String(bytes,"GBK");System.out.println(s2);}

 public String(char[] value)

public static void main(String[] args) {String s="bac";char[] chars=s.toCharArray();Arrays.sort(chars);System.out.println(Arrays.toString(chars));String s2=new String(chars);System.out.println(s2);
}

●判断功能

boolean equals(Object obj)  比较字符串内容是否相等
boolean equalsIgnoreCase(String str)   比较字符串内容是否相等(忽略字母大小)
boolean contains(String str)    判断字符串中是否包含指定字串
boolean isEmpty()      判断字符串是否为"'空
boolean startsWith(String prefix)   判断字符串是否以指定开头
boolean endsWith(String suffix)     判断字符串是否以指定结尾

String s1=new String("aabc");
String s2=new String("aaBc");System.out.println(s1.equals(s2));
System.out.println(s1.equalsIgnoreCase(s2));
System.out.println(s1.contains("bc"));
System.out.println(s1.isEmpty());
System.out.println(s1.startsWith("ab"));
System.out.println(s1.endsWith("bc"));

●获取功能

int length()    获取字符串长度 char charAt(int index)   获取指定位置上的字符int indexOf(String str) 返回的指定字符串首次出现的位置 int indexOf(String str,int fromIndex)从指定位置开始查找,返回指定字符串首次出现的位置int lastindexOf("ch")从后向前查找,返回的指定字符串首次出现的位置 String substring(int start) 从在指定位置开始截取一个字符串到完String substring(int start,int end)从在指定位置开始截取一个字符串副本到指定位置(不包含指定位置)
String s1="abcdefg";
System.out.println(s1.length());
System.out.println(s1.charAt(1));
System.out.println(s1.indexOf("c"));
System.out.println(s1.indexOf("d",1));
System.out.println(s1.substring(0));
System.out.println(s1.substring(1,5));

● 转换功能

byte[] getBytes() 将字符串转为byte数组char[] toCharArray() 将字符串转为字符数组static String valueOf(char[] chs) static String valueOf(int a)将传入的参数转为字符串类型 String toLowerCase()将英文字母转为小写 String toUpperCase() 将英文字母转为大写 String concat(String str) 拼接指定字符串内容到字符串末尾,返回一个新的字符串对象Stirng[] split(分割符);
public static void main(String[] args) {String s="ac;vna;nBX";String s1=String.valueOf("a");System.out.println(s1);System.out.println( s.toLowerCase());System.out.println(s.toUpperCase());String s3=  s.concat("dddd");System.out.println(s3);
String[] s4=s.split(";");System.out.println(Arrays.toString(s4));
}

● 替换功能

 String replace(char old,char new) String replace(String old,String new) 用新内容替换字符串中指定的字符串replaceAll(String regex, String replacement)用新内容替换字符串中正则表达式匹配字符串  replaceFirst(String regex,Stringreplacement) 用新内容替换字符串中正则表达式匹配字符串  ,只替换第一个 

 String s="adan2ca5";
s.replace("c","C");
s.replaceAll("\\d","a");
s.replaceFirst("\\d","d");System.out.println(s.trim());

● 去除字符串两端空格

String trim()

StringBuffer

StringBuffer是内容可以改变的字符串

public static void main(String[] args) {/*因为String声明的字符串对象值一旦给定就不能改变了,每次拼接都会创建新的字符串对象,耗时,占用空间StringBuffer是内容可以改变的字符串char[] value;没有使用final修饰,每次添加内容都是堆此数组进行操作,不会创建新的字符串对象*///SstringBuffer s1 =new StringBuffer("abcd");//创建 内容长度+16的char数组// StringBuffer s2=new StringBuffer();//空参的构造方法 指定底层数组长度是16StringBuffer s = new StringBuffer(11);s.append("acb");//向在字符串末尾添加内容s.append("acjanvnavn");s.insert(1, "a");//向指定的位置插入指定字符串s.deleteCharAt(2);//删除指定位置上的字符串s.delete(0, 2);//删除指定区域的元素  包含开始位置,不包含结尾s.replace(0, 3, "aaa");//替换字符串s.reverse();//反转字符串}

String类StringBuffer类StringBuilder区别

● String:是字符常量,适用于少量的字符串操作的情况

● StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况

● StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况

● StringBuilder类功能和StringBuffer功能完全一致, StringBuffer是线程 安全的

Math类

abs 绝对值
sqrt 平方根
pow(double a, double b) a的b次幂
max(double a, double b)
min(double a, double b)
random() 返回 0.0 到 1.0 的随机数
long round(double a) double型的数据a转换为long型(四舍五入)
System.out.println(Math.max(18,5));
System.out.println(Math.abs(-15));
System.out.println(Math.sqrt(16));
System.out.println(Math.random());
System.out.println(Math.pow(2,4));

Random类

● Random类概述 此类用于产生随机数

● 构造方法 public Random()

● 成员方法 public int nextInt() public int nextInt(int n)

Random random=new Random();
System.out.println(random.nextBoolean());
System.out.println(random.nextInt());
System.out.println(random.nextInt(35)+1);

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

适合新手博主站长使用的免费响应式WordPress博客主题JianYue

这款JianYue主题之所以命名为 JianYue,意思就是简单而不简约的。是根据Blogs主题优化而成,剔除了一些不必要的功能及排版,仅保留一种博客布局,让新手站长能够快速手上WordPress。可以说这款主题比较适合新手博主站长使用&#xff…

【Linux】部署前后端分离项目---(Nginx自启,负载均衡)

目录 前言 一 Nginx(自启动) 2.1 Nginx的安装 2.2 设置自启动Nginx 二 Nginx负载均衡tomcat 2.1 准备两个tomcat 2.1.1 复制tomcat 2.1.2 修改server.xml文件 2.1.3 开放端口 2.2 Nginx配置 2.2.1 修改nginx.conf文件 2.2.2 重启Nginx服务 2…

【MySQL】探索表结构、数据类型和基本操作

表、记录、字段 数据库的E-R(entity-relationship,实体-关系)模型中有三个主要概念: 实体集 、 属性 、 关系集 。 一个实体集对应于数据库中的一个表,一个实体则对应于数据库表 中的一行,也称为一条记录。…

adb-连接模拟器和真机操作

目录 1. 连接模拟器(夜神模拟器示例) 1.1 启动并连接模拟器 1.2 开启调试模式 2. USB连接真机调试 2.1 usb数据线连接好电脑,手机打开调试模式 2.2 输入adb devices检测手机 3. Wifi连接真机调试 3.1 USB连接手机和电脑 3.2 运行 adb…

12 Autosar_SWS_MemoryMapping.pdf解读

AUTOSAR中MemMap_autosar memmap-CSDN博客 1、Memory Map的作用 1.1 避免RAM的浪费:不同类型的变量,为了对齐造成的空间两份; 1.2 特殊RAM的用途:比如一些变量通过位掩码来获取,如果map到特定RAM可以通过编译器的位掩码…

云原生应用测试:挑战与方法

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

2.25基础会计学

资本公积是指由股东投入、但不能构成“股本”或“实收资本”的资金部分。 盈余公积是指公司按照规定从净利润中提取的各种积累资金。 所以区别在于盈余公积来自净利润。 借贷其实就是钱从哪来和到哪去的问题,来源是贷,流向是借。比如购入9w原材料&…

H5多用途的产品介绍展示单页HTML5静态网页模板

H5多用途的产品介绍展示单页HTML5静态网页模板 源码介绍:一款H5自适应多用途的产品介绍展示单页HTML静态网页模板,可用于团队官网、产品官网。 下载地址: https://www.changyouzuhao.cn/13534.html

目标检测新SOTA:YOLOv9 问世,新架构让传统卷积重焕生机

在目标检测领域,YOLOv9 实现了一代更比一代强,利用新架构和方法让传统卷积在参数利用率方面胜过了深度卷积。 继 2023 年 1 月 YOLOv8 正式发布一年多以后,YOLOv9 终于来了! 我们知道,YOLO 是一种基于图像全局信息进行…

设计模式浅析(六) ·命令模式

设计模式浅析(六) 命令模式 日常叨逼叨 java设计模式浅析,如果觉得对你有帮助,记得一键三连,谢谢各位观众老爷😁😁 命令模式 概念 命令模式(Command Pattern)是一种行为设计模式&#xff0c…

集合、List、Set、Map、Collections、queue、deque

概述 相同类型的数据进行统一管理操作,使用数据结构、链表结构,二叉树 分类:Collection、Map、Iterator 集合框架 List接口 有序的Collection接口,可以对列表中的每一个元u尿素的插入位置进行精确的控制,用户可以根…

如何在 VM 虚拟机中安装 Windows XP 操作系统保姆级教程(附链接)

一、VMware Workstation 虚拟机 没有安装 VM 虚拟机的参考以下文章进行安装: VM 虚拟机安装教程https://eclecticism.blog.csdn.net/article/details/135713915 二、Windows XP 镜像 点击链接下载镜像 下载链接https://pan.baidu.com/s/1sk5pU8PoTJ1dOxMpGCUfc…

【前端】夯实基础 css/html/js 50个练手项目(持续更新)

文章目录 前言Day 1 expanding-cardsDay 2 progress-stepsDay 7 Split Landing PageDay9 Sound BoardDay10 Dad Jokes 前言 发现一个没有用前端框架的练手项目,很适合我这种纯后端开发夯实基础,内含50个mini project,学习一下,做…

[服务器-数据库]MongoDBv7.0.4不支持ipv6访问

文章目录 MongoDBv7.0.4不支持ipv6访问错误描述问题分析错误原因解决方式 MongoDBv7.0.4不支持ipv6访问 错误描述 报错如下描述 Cannot connect to MongoDB.No suitable servers found: serverSelectionTimeoutMS expired: [failed to resolve 2408]问题分析 首先确定其是…

【Python从入门到进阶】49、当当网Scrapy项目实战(二)

接上篇《48、当当网Scrapy项目实战(一)》 上一篇我们正式开启了一个Scrapy爬虫项目的实战,对当当网进行剖析和抓取。本篇我们继续编写该当当网的项目,讲解刚刚编写的Spider与item之间的关系,以及如何使用item&#xff…

DIcom调试Planar configuration

最近和CBCT组同事调dicom图像 这边得图像模块老不兼容对方得dicom文件。 vtk兼容,自己写得原生解析不兼容。 给对方调好了格式,下次生成文件还会有错。 简单记录下,日后备查。 今天对方又加了 个字段:Planar configuration 查…

计算机网络-网络互联

文章目录 网络互联网络互联方法LAN-LAN:网桥及其互连原理使用网桥实现LAN-LAN使用交换机扩展局域网使用路由器连接局域网 LAN-WANWAN-WAN路由选择算法非自适应路由选择算法自适应路由选择算法广播路由选择算法:分层路由选择算法 网络互联 网络互联是指利…

【安装记录】解决ssh密码正确,却无法连接到虚拟机

可能是没有允许Root登录 解决办法:修改/etc/ssh/sshd_config文件,将 PermitRootLogin 项打开

AI大模型与小模型之间的“脱胎”与“反哺”(第一篇)

一、AI小模型脱胎于AI大模型,而AI小模型群又可以反哺AI大模型 AI大模型(如GPT、BERT等)通常拥有大量的参数和训练数据,能够生成或理解复杂的文本内容。这些大模型在训练完成后,可以通过剪枝、微调等方式转化为小模型&…

WordPres Bricks Builder 前台RCE漏洞复现(CVE-2024-25600)

0x01 产品简介 Bricks Builder是一款用于WordPress的开发主题,提供直观的拖放界面,用于设计和构建WordPress网站。它使用户能够轻松创建自定义的网页布局和设计,无需编写或了解复杂的代码。Bricks Builder具有用户友好的界面和强大的功能,使用户可以通过简单的拖放操作添加…