概述
Java API (Java Application Programming Interface) :Java应用程序编程接口
(注:Java API的帮助文档可到 http://docs.oracle.com/javase/8/docs/api/ 下载)
Java中提供的最常用的包:
java.lang:Java语言包, 该包中提供了利用Java语言进行程序设计的基础类,比如String、Math、System类,在任何类中,该包中的类不需要使用import语句进行导入,都会被自动导入。
java.util:该包中主要包含一些实用的工具类,比如集合框架类、日期处理类、字符串解析类、随机数生成类等。
java.awt:该包中主要包含处理用户界面和绘制图形图像的各种类。
java.io:该包中主要包含处理输入、输出编程的各种类。
java.net:该包中主要包含处理网络编程的各种类。
java.sql:该包中主要包含处理数据库编程的各种类。
Object类
object类:属于Java.lang包下的,默认是所有类的父类
参数:object,因为object是所有类的父类,所以该方法调用的实参可以是任何引用数据类型
equals()方法:
public boolean equals(Object obj)
作用:比较两个引用所指向的对象是否是同一个对象,即两个引用所指向对象的地址是否相等。
返回值类型:boolean 如果两个对象相等则返回true,否则返回false
==既可以比较基本数据类型,也可以比较引用数据类型,比较基本数据类型比的是值,比较引用数据类型时比的是地址
equals方法一般都是某一个类重写了该方法,重写比较逻辑,然后进行应用,如:String类
注:
==和equals的区别:
通俗点讲,==是看看左右是不是一个东西。equals是看看左右是不是长得一样。
==比较的是引用,比较的是引用的地址值 ,equals方法,是object中的方法,如果不进行重写的话,比较的也是引用的地址值,实际和==一样。
但是在String类中,覆盖了Object的equals()方法,该方法判断两个String对象的内容是否相等。
(讲解:String类型,它已经实现了重写,比较的时候,先比较当前对象的地址和要比较的对象的地址是否相等,若相等,则返回true,否则,提前结束比较
如果不相等,则判断是否为String的实例化对象,如果是,在判断长度是否相等,再判断数组的每个值,字母是否相等。如果都相等,则返回true.)
hashCode方法():
public int hashCode()
作用:返回一个对象的哈希码值。
同一次运行程序过程中,一个对象的哈希码值一定是相同的。不同次运行程序,一个对象的哈希码值可以不同。
toString()方法:
public String toString()
作用:返回一个对象的字符串表现形式。
通常都是一个类重写了object的toString()方法。
finalize方法:
protected void finalize()
作用:Java进行垃圾回收时,用来销毁对象的方法
final finally finalize 区别???
包装类
为了让基本数据类型的这些数据也具有面向对象的特性,Java 编程语言提供了包装类来将基本数据类型看作对象,基本类型和包装类型之间能够互相转换。
8个基本数据类型对应八个包装类:
int -- Integer
char -- Character
long -- Long
double -- Double
boolean -- Boolean
float -- Float
short -- Short
byte -- Byte
基本类型与包装类之间的转换:
基本数据类型-->包装类:可以构造器转换 也可以直接赋值形式(自动装箱)
//用构造器转换 int i=5; Integer in = new Integer(i);
//自动装箱 int i=5; Integer in = i;
包装类-->基本数据类型:可以用intValue()方法转换 也可以直接赋值(自动拆箱)
int k = in.intValue(); //Integer类内部的intValue()方法 int j = in; //自动拆箱
基本类型与字符串之间的转换(Integer类内部的常用方法):
1.parseInt方法 parseDouble方法 parseFloat方法:将字符串类型的数值转换为基本数据类型
//parseInt方法 String str = "12345"; int i = Integer.parseInt(str); System.out.println(i); //parseDouble方法 String str1 = "123.45"; double j = Double.parseDouble(str1); System.out.println(j);
2.toString 将基本数据类型转换为字符串形式
int i = 10; String s =Integer.toString(i); System.out.println(s);
包装类与字符串之间的转换:
包装类-->字符串类型:使用包装类的toString()方法
Integer ii = 100; String s1 = ii.toString(); System.out.println(s1);
字符串类型-->包装类:使用包装类的valueOf()方法
String s1 = "123"; Integer i = Integer.valueOf(s1); System.out.println(i);
小结:
字符串类
Java中用类来描述字符串,其中最常用的字符串处理类是String,此外还有StringBuffer和StringBuilder。
字符串不属于8种基本数据类型,而是一种引用类型。String是比较特殊的数据类型,它不属于基本数据类型,但是可以和使用基本数据类型一样直接赋值,也可以像引用数据类型一样,使用关键字new进行实例化。
String对象的创建:
静态方式:直接赋值的形式 String s = "hello"
动态方式:应用String类的构造器构建对象 String s = new String("hello")
动态创建String对象时需要用到构造方法:
//初始化一个新创建的String 对象,它表示一个空字符序列 String 变量名 = new String(); //初始化一个新创建的 String对象,表示一个与该参数相同的字符序列 String 变量名 = new String (String value); //使用一个字符数组创建一个String对象 String(char chars[])
两种方式的区别:
以静态方式构建字符串,内存分配的过程:首先看常量池中是否有该字符串常量,如果没有,则在常量池中构建该字符串常量,然后分配地址指向该常量 值;如果常量池中已经有该字符串常量,则不需要重新分配地址,直接指向之前已有的地址。
以动态方式构建字符串,则每次都重新分配内存地址。
String是一个不可变的字符串常量:如果针对一个String对象进行值的改变,则会重新构建一个字符串对象, 所以频繁的更改一个字符串的值,会占用大量的内存空间
字符串的比较:
boolean equals(String):比较两个字符串的内容是否相等。
boolean equalsIgnoreCase(String):比较两个字符串的内容是否相等,忽略大小写。
int compareTo(s1:String):返回一个大于0、等于0或者小于0的整数以表明这个字符串是大于、等于还是小于s1。
int compareToIgnoreCase(String):除了不区分大小写外,其他都和compareTo是一样的。
String s1 = "abcd"; String s2="Abcd"; System.out.println(s1.equals(s2)); System.out.println(s1.equalsIgnoreCase(s2)); System.out.println(s1.compareTo(s2));
boolean regionMatchs(int, String, int, int):如果这个字符串指定的子域精确匹配字符串s1中指定的子域则返回true。
//比较s1字符串序列1开始的两个字符和s2字符串序列1开始的两个字符是否相等,相同返回true String s1 = "aabbccdd"; String s2 = "AAbbccDD"; System.out.println(s1.regionMatches(1, s2, 1, 2));
boolean startsWith(String prefix):判断字符串是否以指定字符串开头。
boolean endsWith(String suffix):判断字符串是否以指定字符串结束。
String s1 = "aabbccdd"; System.out.println(s1.startsWith("aab")); System.out.println(s1.endsWith("dd"));
字符串和数组之间的转换
1.字符串转成字符型数组 toCharArray()
String str = "I love Java!"; char[] ch = str.toCharArray(); System.out.println(ch.length); System.out.println(ch);
2.字符串转成字节型数组 getBytes():按照默认编码字符集转换 ISO8859-1
getBytes("utf-8"):按照指定编码字符集转换
String str = "I love Java!"; byte[] bytes = str.getBytes(); System.out.println(bytes.length); System.out.println(Arrays.toString(bytes)); //结果: 12 [73, 32, 108, 111, 118, 101, 32, 74, 97, 118, 97, 33]
后续:常见工具类-高级篇(2)
2021-4-14
原文:https://www.cnblogs.com/SheepDog/p/14659707.html