欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JDK API常见对象:Object类、Scanner类、String类、StringBuffer类

程序员文章站 2022-04-15 23:33:03
Android虽然我上手做有了一段时间,但基本上是遇到了难题就goole学一点怎么实现功能。很多基础的知识我没有什么概念,所以刷网课补习一下,顺手做下笔记,希望对你有帮助kkkObject类所有类的根类,Java中所有类都直接或间接的继承该类Object类的int hashCode():返回对象的哈希码值a.返回该对象的哈希码值,这个值和地址有关。b.不同对象的,hashCode()一般来说不会相同。但是同一个对象的hashCode()值肯定相同。c.不是对象的实际地址值,可以理解为逻辑地址值...

Android虽然我上手做有了一段时间,但基本上是遇到了难题就goole学一点怎么实现功能。很多基础的知识我没有什么概念,所以刷网课补习一下,顺手做下笔记,希望对你有帮助kkk
JDK API常见对象:Object类、Scanner类、String类、StringBuffer类

Object类

所有类的根类,Java中所有类都直接或间接的继承该类

Object类的int hashCode():返回对象的哈希码值

a.返回该对象的哈希码值,这个值和地址有关。
b.不同对象的,hashCode()一般来说不会相同。但是同一个对象的hashCode()值肯定相同。
c.不是对象的实际地址值,可以理解为逻辑地址值。

Object类的getClass():返回此对象运行时类

返回class类型,class是一个类,他的对象是具体的.class文件。

Object类的toString():返回该对象的字符串表示形式

JDK API常见对象:Object类、Scanner类、String类、StringBuffer类
返回的字符串内容:运行时类的名字+@+该对象的哈希码值的十六进制。
PS:
system.out.println(s);会自动调用toString()
一般类都会重写toString()

Object类的boolean equals(Object obj):指示其他对象是否与此对象相等

重写equals方法:
JDK API常见对象:Object类、Scanner类、String类、StringBuffer类
equals和= =的区别:
equals方法是一个方法,只能比较引用数据类型。所有的对象都会继承Object类中的方法,如果没有重写Object类中的equals方法,equals方法和==号比较引用数据类型无区别
“= =”是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型。基本数据类型比较的是值,引用数据类型比较的是地址值。

Scanner类

一个简单的文本扫描器。

Scanner类的构造方法

Scanner(InputStream source)
System类下有一个静态的字段:
public static final lnputstream in是标准的键盘输入流。
所以获取键盘输入流:
Scanner sc = new Scanner(System.in);

Scanner类的hasNextXxx()方法

hasNextXxx()判断是否还有下一个输入项,其中Xxx可以是Int、Double等。
如果需要判断是否包含下一个字符串,则可以省略Xxx。

Scanner类的NextXxx()方法

nextXxx()获取下一个输入项。Xxx的含义和上个方法中的Xxx相同。
JDK API常见对象:Object类、Scanner类、String类、StringBuffer类
默认情况下,Scanner使用空格,回车等作为分隔符。
PS:NextLine()方法获取一整行,返回String类型,如果前面用了NextInt获取输入,回车的\r\n会被作为新行被NextLine获取。

String类

String类代表字符串,所有字符串都作为String类的一个实例。
字符串是常量不能被修改,如下图s修改后,字符串“abc”在内存中成为了垃圾(没有被修改),创建了一个新的字符串"bcd"指向s。
JDK API常见对象:Object类、Scanner类、String类、StringBuffer类

String类的构造方法

  • public String():空构造
  • public string(byte[] bytes):把字节数组转成字符串
  • public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串
  • public String(char[] value):把字符数组转成字符串
  • public String(char[] value,int index,int count):把字符数组的一部分转成字符串(index索引、count数目)
  • public String(String original):把字符串常量值转成字符串(创建一个字符串副本)

""和NULL的区别:
""是一个字符串,可以调用String中所有的方法。
NULL是空值,不能调用任何方法,调用就会出现空指针异常。

思考题:
JDK API常见对象:Object类、Scanner类、String类、StringBuffer类
所以上图程序运行结果为:true true
JDK API常见对象:Object类、Scanner类、String类、StringBuffer类
所以上图程序运行结果为:false true
JDK API常见对象:Object类、Scanner类、String类、StringBuffer类
所以上图程序运行结果为:true true

Java 语言提供对字符串串联符号("+”)以及将其他对象转换为字符串的特殊支持。
JDK API常见对象:Object类、Scanner类、String类、StringBuffer类

String类中的比较方法

  • boolean equals(Object obj):比较字符串的内容是否相同,区分大小写
  • boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
  • boolean contains(String str):判断大字符串中是否包含小字符串
  • boolean startsWith(String str):判断字符串是否以某个指定的字符串开头
  • boolean endsWith(string str):判断字符串是否以某个指定的字符串结尾
  • boolean isEmpty():判断字符串是否为空。

String类中的转换方法

  • byte[]getBytes():把字符串转换为字节数组
  • char[]tocharArray():把字符串转换为字符数组
  • static string valueof(char[]chs):把字符数组转成字符串。
  • static string valueof(int i):把int类型的数据转成字符串。
    *注意:String类的valueof方法可以把任意类型的数据转成字符串。
  • String toLowerCase():把字符串转成小写。
  • string toUpperCase():把字符串转成大写。
  • string concat(String str):把字符串拼接。

StringBuffer类

线程安全的可变字符序列,StringBuffer和String 的区别:StringBuffer是个可变的字符序列,String不可变。
(String作为形参原来的值是不会改变的,StringBuffer作为形参原值是会改变的,因为StringBuffer传入的值是指向StringBuffer对象的地址)
JDK API常见对象:Object类、Scanner类、String类、StringBuffer类
运行结果:
dsgehappend
adsd

StringBuffer的构造函数

StringBuffer() 构造一个没有字符的字符串缓冲区,初始容量为16个字符。 (创建了个大小为16的空的字符数组)
JDK API常见对象:Object类、Scanner类、String类、StringBuffer类JDK API常见对象:Object类、Scanner类、String类、StringBuffer类
public StringBuffer(int capacity):指定容量的字符串缓冲区对象(capacity是数组容量(理论值)、length是数组的长度(实际值))
public StringBuffer(String str):指定字符串内容的字符串缓冲区对象(此时容量capacity就等于16+str.length())。

StringBuffer的添加功能append、insert

append返回的是同一个对象,没有创建副本,append方法接收各种类型的参数,全部变成字符串的形式。
sb、sb1指向的是同一个对象,所以原来的字符串没有变成垃圾,因此StringBuffer是可变的字符数列。(增加、插入、删除等操作都同理)

StringBuffer sb = new StringBuffer("100");
StringBuffer sb1 = sb.append(true);

insert(int offset, String str);在指定位置把任意类型的数据插入到字符串级冲区里面,并返回字符串缓冲区本身。

StringBuffer sb = new StringBuffer("100");
StringBuffer sb1 = sb.insert(0,true);
System.out.println(sb);
System.out.println(sb1);

运行结果:JDK API常见对象:Object类、Scanner类、String类、StringBuffer类

StringBuffer的删除功能delect、delectCharAt

delect删除子字符串
delectCharAt删除单个字符
如果要清空缓冲区,就重新创建对象:sb1 = new StringBuffer();

StringBuffer的替换功能replace、反转功能reverse

JDK API常见对象:Object类、Scanner类、String类、StringBuffer类
运行结果:1123

StringBuffer的截取功能subString

返回的是string或者字符数组,不是原本的stringbuffer对象(原来的stringbuffer不改变)
(可以用于StringBuffer转为String,或者用toString)

StringBuffer与StringBuilder的区别

他们都是可变的字符序列。
StringBuilder线程不安全(不能安全使用多线程),但是效率高(从JDK1.5开始)
Stringbuffer线程安全,但是效率低(从JDK1.0开始)

本文地址:https://blog.csdn.net/weixin_43580841/article/details/107336279