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

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

Object类

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

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

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

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

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

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

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

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

重写equals方法:
JDK API常见对象:Object类、Scanner类、String类
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类
默认情况下,Scanner使用空格,回车等作为分隔符。
PS:NextLine()方法获取一整行,返回String类型,如果前面用了NextInt获取输入,回车的\r\n会被作为新行被NextLine获取。

String类

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

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类
所以上图程序运行结果为:true true
JDK API常见对象:Object类、Scanner类、String类
所以上图程序运行结果为:false true
JDK API常见对象:Object类、Scanner类、String类
所以上图程序运行结果为:true true

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

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不可变。

StringBuffer

未完待续