1.Object类
● Object类是所有Java类的祖先(根基类)。每个类都使用 Object 作为超类
(父类)。所有对象(包括数组)都继承实现这个类的方法。
● 如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类
public class Person { ... }
等价于:
public class Person extends Object {...}
● toString方法
● Object类中定义有public String toString()方法,其返回值是 String 类
型,描述当前对象的有关信息。
● 当需要通过输出语句输出一个对象时,如System.out.println(person),
将自动调用该对象类的 toString()方法,如果该类中没有重写toString(),那
么默认调用Object类中的toString(),默认输出对象hashCode值.
● 可以根据需要在用户自定义类型中重写toString()方法。
public String toString() {
return "姓名:"+name+"年龄:"+age;
}
● equals方法
● Object类中定义有:
● public boolean equals(Object obj)方法,判断对象是否相等的逻辑。
public boolean equals(Object obj) {
return (this == obj);
}
● Object 中的 equals 方法默认使用==比较,比较的是对象地址,这点需
要注意.
● JDK提供的一些类,如String,Date等,重写了Object的equals方
法,调用这些类的equals方法, x.equals (y) ,当x和y所引用的对象
是同一类对象且属性内容相等返回 true 否则返回 false。
public class Equals {
public static void main(String[] args) {
Person p1=new Person("jim",10);
Person p2=new Person("jim",20);
int a=10;
int b=10;
System.out.println(a==b);
System.out.println(p1==p2);
System.out.println(p1.equals(p2));
String s1=new String("abc");
String s2=new String("abc");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
}
}
2.Arrays类
● java.util.Arrays类用于操作数组工具类,里面定义了常见操作数组的静态方法.
● equals 方法
比较两个数组对象中元素是否相等.
而数组对象中的equals用来判断与另一个数组对象是否相等。
声明:public static boolean equals(type[]a,type[]a2)
参数的类型可以是原生数据类型和引用类型的任意一种类型
返回:如果两个相等,则返回true,否则返回false
● sort -排序
● 作用于数组的所有元素
public static void sort(type[] a)
● 作用于数组指定范围内的元素
public static void sort(type[] a, int fromIndex(包括), int
toIndex(不包括))
将指定的类型数组所有元素按数字升序进行排序。
l 自定义对象排序
自定义类实现Comparable接口
重写compareTo方法
String []s={"b","a","c"};
Arrays.sort(s);
public class Student implements Comparable<Student>{
String name;
int num;
private String sex;
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Student(){
}
public Student(int num, String name, String sex){
this.num=num;
this.name=name;
this.sex=sex;
}
@Override
public int compareTo(Student o) {
return this.num-o.num;
}
}
binarySearch -使用二分搜索算法搜索指定数组
public static int binarySearch(type[] a, type key)
public static int binarySearch(long[] a,int fromIndex,int
toIndex,long key)
● 参数:
a - 要搜索的数组。
key - 要搜索的值。
fromIndex - 要排序的第一个元素的索引(包括)。
toIndex - 要排序的最后一个元素的索引(不包括)。
● 如果key在数组中,则返回搜索值的索引;否则返回负数,表示不存在
● copyOf方法
● 数组复制,将指定数组中的元素复制到一个指定长度的新数组中,并返回
新数组.
● static int[] copyOf(int[] a, int newLength)
● fill方法
● 将指定的int值分配给指定的int数组的每个元素。
● fill(int[] a, int val)
public class copyof {
public static void main(String[] args) {
int a[]={1,2,3,4,5};
int b[]= Arrays.copyOf(a,2*a.length);
System.out.println(Arrays.toString(b));
Arrays.fill(b,0);
System.out.println(Arrays.toString(b));
System.out.println(Arrays.binarySearch(a,0,5,2));
}
}
toString() 方法
● public static String toString(type[] a)
● 返回指定数组内容的字符串表示形式。
3.基本数据类型包装类
● Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面
向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设
计类时为每个基本数据类型设计了一个对应的类进表示,这样八个和基
本数据类型对应的类统称为包装类.
● 包装类(如:Integer,Double等)这些类封装了一个相应的基本数据
类型数值,并为其提供了一系列操作方法。
对于包装类来说,这些类的用途主要包含两种:
● 作为和基本数据类型对应的类类型存在。
● 包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操
作方法。
● 装箱和拆箱Auto-boxing/unboxing
● 装箱
自动将基本数据类型转换为包装器类型
装箱的时候自动调用的是Integer的valueOf(int)方法
● 拆箱
自动将包装器类型转换为基本数据类型
拆箱的时候自动调用的是Integer的intValue方法
//装箱
int a = 12;
Integer b = Integer.valueOf(a);
//拆箱
int c = b.intValue();
int a = 12;
//自动装箱
Integer b = a;
//自动拆箱
int c = b;
4.String类
● String类概述
字符串是由多个字符组成的一串数据(字符序列)的字符串常量,java中所有字
符串都是String类的实例.
● 有两种创建形式:
● 第一种:
String s = "abc";
先在栈中创建一个对String类的对象引用变量s,然后去字符串常量池中查找
有没有"abc", 如果没有则在常量池中添加”abc”, s引用变量指向常量池中
的”abc”,如果常量池中有,则直接指向改地址即可,不用重新创建.
● 第二种:
一概在堆中创建新对象,值存储在堆内存的对象中。
String s = new String("abc");
● 构造方法
public String()
public String(String str)
public String(byte[] bytes)
public String(char[] value)
● 判断功能
boolean equals(Object obj)
boolean equalsIgnoreCase(String str)
boolean contains(String str)
boolean isEmpty()
boolean startsWith(String prefix)
boolean endsWith(String suffix)
●获取功能
int length()
char charAt(int index)
int indexOf(String str)
int indexOf(String str,int fromIndex)
String substring(int start)
String substring(int start,int end)
● 转换功能
byte[] getBytes()
char[] toCharArray()
static String valueOf(char[] chs)
String toLowerCase()
String toUpperCase()
String concat(String str)
Stirng[] split(分割符);
● 替换功能
String replace(char old,char new)
String replace(String old,String new)
replaceAll(String regex, String replacement)
replaceFirst(String regex, String replacement)
● 去除字符串两空格
String trim()
public class Stringdemo4 {
public static void main(String[] args) {
String s1="abcb";
String s2="ab";
System.out.println(s1.equals(s2));//判断两个字符串是否相等
String s3="Abc";
System.out.println(s1.equalsIgnoreCase(s3));//忽略字符串s3大小写的判断
String s4="ab";
System.out.println(s1.contains(s4));//判断s1是否包含s4
System.out.println(s1.isEmpty());//判断s1字符串是否为空
String a="a";
System.out.println(s1.startsWith(a));//判断s1是否从字符串a开始
String c="c";
System.out.println(s1.endsWith(c));//判断s1是否从字符串c结束
System.out.println(s1.length());//判断长度
System.out.println(s1.charAt(1));//找到字符
String b="b";
System.out.println(s1.indexOf(b));//查找字符
System.out.println(s1.indexOf(b,2));
System.out.println(s1.lastIndexOf(b));//从后往前找字符
System.out.println(s1.substring(1));//获取字符串
System.out.println(s1.substring(1,3));
s1.concat(b);//字符串的连接
String [] s8=s1.split("");//分割字符串
System.out.println(Arrays.toString(s8));
System.out.println("aba".replace('a','d'));
}
}