侧边栏壁纸
博主头像
Haenu的Blog 博主等级

坚持学习,慢慢进步!

  • 累计撰写 35 篇文章
  • 累计创建 10 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Java笔记

Haenu
2024-06-24 / 0 评论 / 0 点赞 / 25 阅读 / 0 字

String类有哪些方法?

String类是Java最常用的API,它包含了大量处理字符串的方法,比较常用的有:

  • char charAt(int index):返回指定索引处的字符;

  • String substring(int beginIndex, int endIndex):从此字符串中截取出一部分子字符串;

  • String[] split(String regex):以指定的规则将此字符串分割成数组;

  • String trim():删除字符串前导和后置的空格;

  • int indexOf(String str):返回子串在此字符串首次出现的索引;

  • int lastIndexOf(String str):返回子串在此字符串最后出现的索引;

  • boolean startsWith(String prefix):判断此字符串是否以指定的前缀开头;

  • boolean endsWith(String suffix):判断此字符串是否以指定的后缀结尾;

  • String toUpperCase():将此字符串中所有的字符大写;

  • String toLowerCase():将此字符串中所有的字符小写;

  • String replaceFirst(String regex, String replacement):用指定字符串替换第一个匹配的子串;

  • String replaceAll(String regex, String replacement):用指定字符串替换所有的匹配的子串。

a = a + b 与 a += b 的区别

+= 隐式的将加操作的结果类型强制转换为持有结果的类型。如果两个整型相加,如 byte、short 或者 int,首先会将它们提升到 int 类型,然后在执行加法操作。

byte a = 127;
byte b = 127;
b = a + b; // error : cannot convert from int to byte
b += a; // ok

抽象类和接口的区别是什么?

  • 抽象类像是一种模板 接口像是一种行为规范

  • 一个类只能继承一个抽象类 但可以实现多个接口

  • 接口里的类型都是public static final而抽象类是各种类型的

接口和抽象类的区别?

抽象类的关键字是extends 接口的继承关键字是implements

抽象类他可以有普通的成员变量 接口他必须是常量

抽象类可以有普通的方法 接口必须是抽象方法

抽象类有构造方法 接口没有

重载和重写有什么区别?

重载就是参数可以变 类型可以变 修饰符可以不同

重写就是 参数必须一样 返回值小于等于 修饰符大于等于

== 和 equals 区别是什么?

对于==来说:

  • 在基本数据类型中比较的是他们的值

  • 在引用数据类型中比较的使他们地址

对于equals来说:

  • 在基本数据类型中 相当于==

  • 在引用数据类型中 没有重写的情况下 也是比较地址 只有重写了才会比较值

介绍下hashCode()?

为什么要有 hashCode?

为什么重写 equals 方法必须重写 hashcode 方法 ?

String,StringBuffer, StringBuilder 的区别是什么?

  • String是我们java提供的一个字符串类型 他是不可变的 在jdk9以前底层是用final修饰的char字符数组 jdk9以后我们该用了byte字节数据

  • StringBuffer和StringBuilder 是可变的,他们俩的区别在于 StringBuffer是线程安全的 StringBuilder是线程不安全的 因为StringBuffer 他是有一个同步锁

然后字符串相加在 在底层逻辑上使用StringBuilder去append的 然后toString返回

String为什么要设计成不可变的?

也就是说:不可变的含义是内部数据不可变,而不是说引用不可变。

  1. 便于实现字符串常量池因为我们会有大量的相同字符进行创建 会造成空间的浪费

  1. 线程安全

  2. 加快字符处理速度 由于String是不可变的,保证了hashCode的唯一性,于是在创建对象时其hashCode就可以放心的缓存了,不需要重新计算

0

评论区