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.mzph.cn/news/704569.shtml

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

相关文章

在Ubuntu系统下搭建TDengine集群

目录 一、Ubuntu虚拟机创建 二、系统相关配置 1、设置系统hostname 2、网络配置及IP规划 3、配置FQDN(etc/hosts) 4、服务端口设置 三、TDengine server安装 1、服务安装 2、修改配置 3、启动taosd 4、服务卸载 四、客户端安装 1、client安…

大厂经验谈之OKR目标管理

前言 这是大厂经验谈系列第一篇文章,来看看互联网公司是如何制定和管理目标的。OKR是目前互联网公司经常采用的目标管理工具,最开始也是由国外著名公司推崇,比如Google、微软、亚马逊等,后面才逐步引入国内。既然是工具就有用得好和不好的地方,很多团队仍然把OKR当做KPI来…

vue2.0及起步(前端面试知识积累)

1、需要了解的vue概要知识 1、vue是什么? 一套用于构建用户界面的渐进式JavaScript框架。 为什么vue被称为是渐进式JS框架? 答:Vue允许开发者在不同的项目中以渐进式的方式使用它,这种渐进式表现在以下的方面: 逐步采…

这几个Python内置函数你都知道吗

divmod() divmod() 是一个 Python 内置函数,用于同时返回商和余数。它接受两个参数,第一个参数是被除数,第二个参数是除数,返回一个包含两个值的元组,第一个值是商,第二个值是余数。 示例用法如下&#…

【Simulink系列】——动态系统仿真 之 混合系统

声明:本系列博客参考有关专业书籍,截图均为自己实操,仅供交流学习! 一、混合系统概述 由不同类型系统共同构成的系统称为混合系统!仿真时必须考虑连续信号和离散信号的采样匹配问题,一般使用变步长连续求…

SpreadJS+vue3练手使用

SpreadJS的练手使用 // 首先在 package.json 这个文件里{"name": "app-admin","private": true,"version": "0.0.0","type": "module","scripts": {"dev": "vite",&quo…

【深度学习笔记】 3_13 丢弃法

注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 3.13 丢弃法 除了前一节介绍的权重衰减以外,深度学习模型常常使用丢弃法(dropout)[1] 来应对过拟合…

阿里面试:最佳线程数,如何确定?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、shein 希音、百度、网易的面试资格,遇到很多很重要的面试题: 如何确定系统的最佳线程数? 小伙伴 没有回…

阿里云服务器ECS u1实例性能怎么样?

阿里云服务器ECS u1实例,2核4G,5M固定带宽,80G ESSD Entry盘优惠价格199元一年,性能很不错,CPU采用Intel Xeon Platinum可扩展处理器,购买限制条件为企业客户专享,实名认证信息是企业用户即可&a…

spring boot 集成科大讯飞星火认知大模型

一、安装依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/…

Educational Codeforces Round 160 (Rated for Div. 2) D. Array Collapse(笛卡尔树+DP)

原题链接&#xff1a;D. Array Collapse 题目大意&#xff1a; 给你一个长度为 n n n 的排列 p p p &#xff0c;排列的定义为 [ 1 , 2 , 3 , . . , n ] [1,2,3,..,n] [1,2,3,..,n] 中每个数都出现 恰好 一次。 你可以做 任意多次 这样的操作&#xff1a; 选出一个任意长度…

unity导航网格无法烘培到台阶和斜坡

如图是我在b站学Unity导航网格时建的一个示例场景&#xff0c;本场景使用的为棱长1m的立方体&#xff0c;读者可以以此为参照度量其他物体大小。 可见导航网格根本无法烘焙到斜坡和台阶上&#xff0c;为解决问题我做了不少尝试&#xff0c;调整最大坡度和步高都没办法解决问题…

AI新纪元:可能的盈利之道

本文来源于Twitter大神宝玉&#xff08;dotey&#xff09;在聊 Sora 的时候&#xff0c;总结了 Sora 的价值和可能的盈利方向&#xff0c;我把这部分内容单独摘出来再整理一下。现在的生成式 AI 大家应该不陌生&#xff0c;用它总结文章、翻译、写作、画图&#xff0c;当然真正…

搭建私有Git服务器:GitLab部署详解

引言&#xff1a; 为了方便团队协作和代码管理&#xff0c;许多组织选择搭建自己的私有Git服务器。GitLab是一个集成了Git版本控制、项目管理、代码审查等功能的开源平台&#xff0c;是搭建私有Git服务器的理想选择。 目录 引言&#xff1a; 一、准备工作 在开始部署GitLab之…

MySQL数据库基础(十五):PyMySQL使用介绍

文章目录 PyMySQL使用介绍 一、为什么要学习PyMySQL 二、安装PyMySQL模块 三、PyMySQL的使用 1、导入 pymysql 包 2、创建连接对象 3、获取游标对象 4、pymysql完成数据的查询操作 5、pymysql完成对数据的增删改 PyMySQL使用介绍 提前安装MySQL数据库&#xff08;可以…

shell脚本介绍及基本功能

目录 1. 什么是shell 2. hello word 2.1 echo 2.2 第一个脚本 3. Bash的基本功能 3.1别名 3.2 常用快捷键 3.3 输入输出 3.4 输出重定向 3.5 多命令执行 3.6 管道符 3.7 通配符和特殊符号 1. 什么是shell Shell 是一个用 C 语言编写的程序&#xff0c;它是用户使用…

STM32--低功耗模式详解

一、PWR简介 正常模式与睡眠模式耗电是mA级&#xff0c;停机模式与待机模式是uA级。 二、电源框图 供电区域有三处&#xff0c;分别是模拟部分供电&#xff08;VDDA&#xff09;&#xff0c;数字部分供电&#xff0c;包括VDD供电区域和1.8V供电区域&#xff0c;后备供电&…

mysql和redis双写一致性策略分析

mysql和redis双写一致性策略分析 一.什么是双写一致性 当我们更新了mysql中的数据后也可以同时保证redis中的数据同步更新&#xff1b; 数据读取的流程&#xff1a; 1.读取redis,如果value!null,直接返回&#xff1b; 2.如果redis中valuenull&#xff0c;读取mysql中数据对应的…

Leaflet-学习

一、官网 英文官网&#xff1a;Leaflet 中文官网&#xff1a;Leaflet 二、介绍 Leaflet 是一个开源并且对移动端友好的交互式地图 JavaScript 库。 它大小仅仅只有39 KB, 并且拥有绝大部分开发者所需要的所有地图特性。 Leaflet 简单、高效并且易用。 它可以高效的运行在桌…

uni-app原生api的promise化以解决异步等待问题分析

相信各位在进行uni-app开发的时候会遇到各种关于异步回调问题&#xff0c;例如要传code给后端以换取session_key&#xff0c;在这之前需要先调用 uni.login&#xff0c;所以执行的顺序是必须同步等待的。在写这篇文章之前对于整体的流程概念需要做一个梳理&#xff0c;以便能更…