当前位置: 首页 > article >正文

java基础day08

java中的常用API-----01

1、说明

API(应用程序接口):

数据接口:获取数据接口(前后端分离)、数据可视化

功能接口:手机短信接口,邮箱发送接口,支付接口

Java中常用的API指常用的一些类的方法

2、api

1-Object

Object是java中所有类的直接或间接的父类--------有可以叫祖宗类

Object上的常用方法:

方法名意义
Object clone()本地方法(native),将当前对象进行克隆,被克隆对象所在类必须实现Cloneable的接口。克隆相当于赋值,基于存在的对象克隆一个属性相同的对象
void finalize当前类所创建的对象,如果没有引用时,被判定为垃圾对象,但是该对象不是被立即回收而是达到了垃圾回收器的条件时触发,在触发对象回收时,会调用该方法,完成资源的清理。这个概念有点类似于析构(当对象没有引用时,会自动调用方法,完成对象所持有资源的释放,并清理对象)但是java中的finalize,不等同于析构。java没有析构的概念。System.gc();唤醒垃圾回收器,清理垃圾对象。但是垃圾回收器不一定会立即执行。如果在对象不被使用时,释放对象所占用资源,应该自己编写相应的代码实现。
Class<?> getClass获取对象的实际类型
hashCode()可以认为是唯一的---同一个对象的哈希码一致,不同对象的哈希码不同。---取值大概是43亿个;哈希码的取值是散列的---随机分布在这43亿个取值范围中
boolean equals(0bject obi):用于比较两个对象的地址是否相同,通常情况下,equals方法需要重写实现当两个引用地址不同,但是属性相同时,也可以判定为相等。
String toString()将一个对象·作为字符串打印输出,则该方法的返回值就作为要打印的内容,一般作为代码调试

instanceof关键字,用于判断某个对象是否为指定的类型:

obj instanceof ClassName

null关键字:表示当前的引用地址为空,也作为对象中引用类型属性的默认值

null表示可以用于比较是否相等,但不能做其他任何操作,否则抛空指针异常

以下方法是Object的其他方法:与线程通信相关的方法

其他方法意义
notify()唤醒线程池中的任意一个线程
notifyAll()唤醒所有线程
wait(long timeout)线程等待(挂起),并设置超时时间
wait()

2、String

定义: 表示字符串,并且是一个最终类

字符串拼接问题:

在使用""对字符串拼接时,实际上使用的是new stringBuilder().append()

如果遇到需要循环拼接字符串的场景,则应该使用stringBuilder(),节约内存空间.

在字符串拼接的应用中有两个类都可以处理:

StringBuilder:(默认),存在多线程并发安全问题,线程不安全类。并发效率高

StringBuffer: 加入了关键字synchronized,保证线程安全。并发效率相比stringBuilder较快 ​ 字符串string实际上是char valuel](字符数组)

常用方法

方法意义
charAt(int index)获取指定位置上的字符;如果指定的下标不存在,则会出现StringIndexOutOfBoundsException
length()获取字符串的长度
toCharArray()将字符串转化为一个字符数组
compareTo(String str)按字典顺序(实际上就是按照从小到大的顺序)来比较两个字符串
concat(String str)拼接两个字符串,返回一个新字符串
getBytes(String charsetName)将字符串按照指定的编码转化为字节数组
equals(Object o)比较两个字符串是否一致。比较的是两个字符串的实际值
endsWith(String suffix)判断是否是指定的结尾
startsWith(String suffix)判断是否是指定的开头
contains(String str)判断字符串中是否包含str。
hashCode()-获取对象的哈希码---注意,同一个字符串的哈希码在任何条件下都是一样的。
String(char[] cs, int index, int offset)表示从字符数组cs的第index位开始,将offset个元素转化为字符串
indexOf(int ch, int index表示从字符串的第index位开始,向后寻找字符ch第一次出现的位置;如果找不到,则返回-1
import java.util.Arrays;
​
public class Demo4Exercise {
    public static void main(String[] args) {
​
//        charAt(int index)---获取指定位置上的字符;如果指定的下标不存在,则会出现StringIndexOutOfBoundsException
          String str1="abcd";
        System.out.println(str1.charAt(0));//a------可以把字符串看出数组的下标
​
//        length()---获取字符串的长度
        String str2="abcd";
        System.out.println(str2.length());//4---可以看作字符的位数
​
//        toCharArray()---将字符串转化为一个字符数组
        String str3="abcd";
        char[] chars = str3.toCharArray();
        //遍历数组也可以直接使用toString方法
        for (char ch:chars
             ) {
            System.out.println(ch);
        }
​
//        compareTo(String str)---按字典顺序(实际上就是按照从小到大的顺序)来比较两个字符串
        String str401="Qbz";
        String str402="Bac";
        int i = str401.compareTo(str402);//大于多少就是正数多少,反之负多少,如果是因为字符串比较的就是首位---大小写不分
        System.out.println(i);
​
//        concat(String str)---拼接两个字符串,返回一个新字符串---------也可以直接使用+,
        String str501="abcd";
        String str502="abcd";
        String concat = str501.concat(str502);
        String s = str501 + str502;
        System.out.println(concat);//abcabc
        System.out.println(s);//abcabc
​
//        getBytes(String charsetName)---将字符串按照指定的编码转化为字节数组
        String str6="abcd";
        byte[] bytes = str6.getBytes();//将字符串的每个字符进行按照编码写进一个字节数组,因为是字节数组里面传入的就是每个字符对应的ascli码,如果是使用的汉字则再不同的编码里对应的数的位数也不同
        System.out.println(Arrays.toString(bytes));
​
//        equals(Object o)---比较两个字符串是否一致。比较的是两个字符串的实际值
        String str701="abcd";
        String str702="abcd";
        System.out.println(str701.equals(str702));//ture  比较值以及内容   “==”比较的是值
​
//        endsWith(String suffix)---判断是否是指定的结尾
        String str8="abcd";
        System.out.println(str8.endsWith("c"));//false
​
​
//        startsWith(String suffix)---判断是否是指定的开头
        String str9="abcd";
        System.out.println(str9.startsWith("b", 1));//true 就是判断是否在1索引处以b开始
        System.out.println(str9.startsWith("b"));//false就是判断是否以b开始
​
//        contains(String str) ---判断字符串中是否包含str。
        String str10="abcd";
        System.out.println(str10.contains("ab"));//true
        System.out.println(str10.contains("ad"));//false--------虽然a和d都存在,但是ad是一个新的字符了不是分开判断
        System.out.println(str10.contains("cd"));//true
        System.out.println(str10.contains("e"));//false
​
//        hashCode()---获取对象的哈希码---注意,同一个字符串的哈希码在任何条件下都是一样的。
        String str1101="abcd";
        String str1102="abcd";
        int s1101 = str1101.hashCode();
        int s1102 = str1102.hashCode();
        if (s1101==s1102){
            System.out.println("对");
        }else {
            System.out.println("错");
        }
​
//        String(char[] cs, int index, int offset)---表示从字符数组cs的第index位开始,将offset个元素转化为字符串
          char[] arr={'a','b','c','d','e','f','g'};
        String s1 = new String(arr, 2, 5);
        System.out.println(s1);//cdefg
​
​
//        indexOf(int ch, int index)---表示从字符串的第index位开始,向后寻找字符ch第一次出现的位置;如果找不到,则返回-1
        String str13="abcdefg";
        System.out.println(str13.indexOf('d',2));
​
​
    }
}


http://www.kler.cn/a/378991.html

相关文章:

  • HbuildderX运行到手机或模拟器的Android App基座识别不到设备 mac
  • 自适应对话式团队构建,提升语言模型代理的复杂任务解决能力
  • 为什么 5g 物理信道 采用不同的调制方式
  • 2024CCPC哈尔滨站J题
  • C#/.NET/.NET Core优秀项目和框架2024年10月简报
  • 【idea】idea更新遇到的坑
  • 数据结构,问题 B: 反向输出
  • 探索智能投顾:正大金融数据分析如何优化市场策略
  • DICOM标准:CR图像模块属性详解——计算放射线照相术(CR)及其在DICOM中的表示
  • 《数字图像处理基础》学习05-数字图像的灰度直方图
  • VMware workstation的3种网络类型
  • 【Hive sql 面试题】统计Top3歌单以及每个Top3歌单下的Top3歌曲(难)
  • 【青牛科技】GC4931P替代A4931/Allegro在水泵、筋膜枪、吸尘器和电动工具中的应用
  • 多角色AI代理的一次尝试- AI代码助手
  • Redis 数据备份与恢复
  • GOF的C++软件设计模式的分类和模式名称
  • 系统架构设计师(软考高级)一站式通关课程
  • JSON交互处理
  • 网络规划设计师-(4)数据调制与编码
  • 基于matlab的人脸识别系统设计与仿真
  • 【反射率】-- Lab 转换(excel)
  • 力扣排序242题 有效的子母异位词
  • 计算机网络:网络层 —— 多播路由选择协议
  • 【Java SE】String
  • Nginx 使用指南
  • CentOS 7 软件/程序安装示例