JAVA常用类

JAVA常用类

1.object类

1.1作用

1)是超类、基类、所有类的直接或间接父类,位于继承树最顶层

2)任何类如没有书写extends显示继承某个类,都默认直接继承object类,否则为间接继承

3)object类中所定义的方法,是所有对象都具备的方法

4)可以存储任何对象,作为参数,可以接受任何对象,作为返回值,可以返回任何对象

1.2方法

1.2.1 getClass()

1)

public final Class<>getClass(){
}

2)返回引用中存储的实际对象类型

3)应用:通常用于判断两个引用中实际存储对象类型是否一致

public class student {
    private String name;
    private int age;
 
    public student() {
 
    }
    public student(String name,int age){
        super();
        this.name=name;
        this.age=age;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
    public int setAge() {
        this.age = age;
        return 0;
    }
 
}
public class Test1 {
    public static void main(String[] args) {
        student s1=new student("aaa",19);
        student s2=new student("bbb",18);
        //判断s1和s2是不是同一个类型
       Class class1 = s1.getClass();
        Class class2=  s2.getClass();
        if(class1==class2){
            System.out.println("属于同类型");
        }else{
            System.out.println("不属于同类型");
        }
    }
}
1.2.2 hashCode

1)

public int hashcode(){
}

2)返回该对象的哈希码值

3)哈希值根据对象的地址或字符串或数字使用hash算法计算出来的int类型的数值

4)一般情况下相同对象返回相同的哈希码

public class Test1 {
    public static void main(String[] args) {
        student s1=new student("aaa",19);
        student s2=new student("bbb",18);
        //判断s1和s2是不是同一个类型
       Class class1 = s1.getClass();
        Class class2=  s2.getClass();
        if(class1==class2){
            System.out.println("属于同类型");
        }else{
            System.out.println("不属于同类型");
        }
        //hashcode
        System.out.println(s1.hashCode());//1163157884
        System.out.println(s2.hashCode());//1956725890
        student s3  = s1;//将s1的地址赋给了s3
        System.out.println(s3.hashCode());//1163157884
    }
}
1.2.3 tostring
public String toString(){
}

2)返回该对象的字符串(表现形式)

3)可以根据程序需求覆盖该方法(进行重写),如:展示对象各个值

public class student {
    private String name;
    private int age;
 
    public student() {
 
    }
    public student(String name,int age){
        super();
        this.name=name;
        this.age=age;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
    public int setAge() {
        this.age = age;
        return 0;
    }
    //进行重写
    @Override
    public String toString() {
        return name+":"+age;
    }
}
public class Test1 {
    public static void main(String[] args) {
        student s1=new student("aaa",19);
        student s2=new student("bbb",18);
        //判断s1和s2是不是同一个类型
       Class class1 = s1.getClass();
        Class class2=  s2.getClass();
        if(class1==class2){
            System.out.println("属于同类型");
        }else{
            System.out.println("不属于同类型");
        }
        //hashcode
        System.out.println(s1.hashCode());//1163157884
        System.out.println(s2.hashCode());//1956725890
        student s3  = s1;//将s1的地址赋给了s3
        System.out.println(s3.hashCode());//1163157884
        //toString
        System.out.println(s1.toString());
        System.out.println(s2.toString());
 
    }
}
1.2.4 equals

1)

public boolean equals(Object obj){
}

2)默认实现为(this==obj),比较两个对象地址是否相同

3)可进行覆盖,比较两个对象的内容是否相同

4)覆盖方法:首先比较两个引用是否指向同一个对象,其次判断obj是否为null,接着,判断两个引用指向的实际对象类型是否一致,再接着,进行强制类型转换,最后依次比较各个属性值是否相同

public class student {
    private String name;
    private int age;
 
    public student() {
 
    }
    public student(String name,int age){
        super();
        this.name=name;
        this.age=age;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
    public int setAge() {
        this.age = age;
        return 0;
    }
    //进行重写
    @Override
    public String toString() {
        return name+":"+age;
    }
 
    @Override
    public boolean equals(Object obj) {
        //1.判断两个对象是否是同一个引用
        if(this==obj){
            return true;
        }
        //2.判断obj是否为空
        if(obj==null){
            return false;
        }
        //3.判断是否是同一个类型
     //   if(this.getClass()==obj.getClass()){
 
      //  }
        //instanceof 判断对象是否是某种类型
        if(obj instanceof student){
            //4.强制类型转换
            student s=(student) obj;
            //5.比较属性
            if(this.name.equals(s.getName())&&this.age==s.getAge()){
                return true;
            }
 
        }
        return false;
    }
}
public class Test1 {
    public static void main(String[] args) {
        student s1=new student("aaa",19);
        student s2=new student("bbb",18);
        //判断s1和s2是不是同一个类型
       Class class1 = s1.getClass();
        Class class2=  s2.getClass();
        if(class1==class2){
            System.out.println("属于同类型");
        }else{
            System.out.println("不属于同类型");
        }
        //hashcode
        System.out.println(s1.hashCode());//1163157884
        System.out.println(s2.hashCode());//1956725890
        student s3  = s1;//将s1的地址赋给了s3
        System.out.println(s3.hashCode());//1163157884
        //toString
        System.out.println(s1.toString());//aaa:19
        System.out.println(s2.toString());//bbb:18
        //equals
        System.out.println(s1.equals(s2));//false
        student s4=new student("p",17);
        student s5=new student("p",17);
        System.out.println(s4.equals(s5));//false//进行重写后为true
 
 
 
    }
}
1.2.5 finalize()

1)当对象被判定为垃圾对象时,由JVM自动调用此方法,用以标记垃圾对象,进入回收队列

2)垃圾对象:没有有效引用指向此对象时,为垃圾对象

3)垃圾回收:由GC销毁垃圾对象,释放数据存储空间

4)自动回收机制:JVM的内存耗尽,一次性回收所有垃圾对象

5)手动回收机制:使用System.gc();通知JVM进行垃圾回收

2.String类

2.1 介绍

1)字符串是常量,创建之后不可以改变

2)字符串字面值存储在字符串池中,可以共享

3)

String s = "hello";//产生一个对象,字符串池中存储

4)

String s = new String("hello");//产生两个对象,堆、池各存储一个
public class Demo01 {
    public static void main(String[] args) {
        String name="hello";//存储在字符串池中
        name="zhangsan";//把zhangsan赋值给name变量,给字符串赋值时,并没有修改数据,而是重新开辟一个空间
        String name2="zhangsan";
        //演示字符串的另一种方式
        String str = new String ("java");
        String str2= new String("java");
        System.out.println(str==str2);//false
        System.out.println(str.equals(str2));//true
 
 
 
    }
}

2.2 常用方法

1.public int length(): 返回字符串的长度

2.public char charAt(int index):根据下标获取字符

3.public boolean contains(String str):判断当前字符串中是否包含str

4.public char[] toCharArray():将字符串转成数组

5.public int indexOf(String str):查找str首次出现的下标,存在,则返回该下标;不存在,则返回-1

6.public int lastIndexOf(String str):查找字符串在当前字符串中最后一次出现的下标索引

7.public String trim():去掉字符串前后的空格

8.public String toUpperCase():将小写转换成大写

9.public boolean endsWith(String str):判断字符串是否是以str结尾

10.public String replace(char oldChar,char newChar):将旧字符串替换成新字符串

11.public String[] split(String str):根据str做拆分

age String;
 
import java.util.Arrays;
import java.util.Locale;
 
public class Demo01 {
    public static void main(String[] args) {
        String name="hello";//存储在字符串池中
        name="zhangsan";//把zhangsan赋值给name变量,给字符串赋值时,并没有修改数据,而是重新开辟一个空间
        String name2="zhangsan";
        //演示字符串的另一种方式
        String str = new String ("java");
        String str2= new String("java");
        System.out.println(str==str2);//false
        System.out.println(str.equals(str2));//true
        //字符串方法的使用
        String content="java是世界上最好的编程语言,java真好";
        System.out.println(content.length());//22 方法1
        System.out.println(content.charAt(content.length()-1));//方法2 好,当超出了这个范围,会出现异常
        System.out.println(content.contains("java"));//true 方法3
        System.out.println(content.contains("php"));//false
        System.out.println(Arrays.toString(content.toCharArray()));//方法4 [j, a, v, a, 是, 世, 界, 上, 最, 好, 的, 编, 程, 语, 言, ,, j, a, v, a, 真, 好]
        System.out.println(content.indexOf("java"));//方法5 0
        System.out.println(content.indexOf("java",4));
        System.out.println(content.lastIndexOf("的"));//方法6 16
        System.out.println(content.trim());//方法7 java是世界上最好的编程语言,java真好
        System.out.println(content.toUpperCase());//方法8 JAVA是世界上最好的编程语言,JAVA真好
        System.out.println(content.endsWith(content));//方法9 true
        System.out.println(content.replace("世界","地球"));//java是地球上最好的编程语言,java真好
        String say="java is the best programing language,java xiang";
        String[] arr=say.split("[,]");
        System.out.println(arr.length);// 2
        for(String string:arr){
            System.out.println(string);//java is the best programing language
                                       // java xiang
        }
 
    }
}

3.StringBuffer和StringBuilder

3.1 相关介绍

1)StringBuffer可变长字符串,JDK1.0提供,运行效率慢、线程安全

2)StringBuilder 可变长字符串,JDK5.0提供,运行效率快、线程不安全

package String;
 
public class Demo02 {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        //1.append();追加
        sb.append(10);
        sb.append("java世界第一");
        System.out.println(sb.toString());//10java世界第一
        sb.append("java真好");
        System.out.println(sb.toString());//10java世界第一java真好
        //2.insert();添加
        sb.insert(10,"A");//在过了10个元素后添加一个A
        System.out.println(sb.toString());//10java世界第一Ajava真好
        //3.replace();替换
        sb.replace(1,7,"B");
        System.out.println(sb.toString());//1B界第一Ajava真好
        //4.delete():删除
        sb.delete(0,3);//从0到3-1的元素,也就是第一个元素直到第三个元素清除
        System.out.println(sb.toString());//第一Ajava真好
        //清空
        sb.delete(0,sb.length());
        System.out.println(sb.toString());
        
 
 
    }
}
package String;
 
public class Demo03 {
    public static void main(String[] args) {
        //开始时间
       long start = System.currentTimeMillis();
       /* String string="";
        for(int i=0;i<99999;i++){
            string+=i;
        }
        System.out.println(string);*/
        StringBuilder Sb=new StringBuilder();
        for(int i=0;i<99999;i++){
            Sb.append(i);
        }
        long end = System.currentTimeMillis();
        System.out.println("用时:"+(end-start));
    }
}

4.Data类

4.1 功能介绍

获取时间,格式转化

4.2Data日期类

package Data_;
 
import java.util.Date;
 
public class Demo01 {
    public static void main(String[] args) {
        //1.创建Date对象
        //今天
        Date date1 = new Date();
        System.out.println(date1.toString());//Tue Jun 28 22:54:20 CST 2022
        System.out.println(date1.toLocaleString());//2022-6-28 22:54:20
        //昨天
        Date date2 = new Date(date1.getTime() - (60 * 60 * 24 * 1000));
        System.out.println(date2.toLocaleString());//2022-6-27 22:54:20
        //2.after before
        boolean b1 = date1.after(date2);//今天在昨天的后面
        System.out.println(b1);//true
        boolean b2 = date1.before(date2);
        System.out.println(b2);//false
        // 比较compareTo()
        int d = date2.compareTo(date1);//比毫秒值 昨天减去今天应该是负的 -1
        System.out.println(d);
        //比较是否相等
        boolean b3 = date1.equals(date2);
        System.out.println(b3);//false
    }
}

5.System类

5.1基本介绍

主要用于获取系统的属性数据和其它操作,构造方法私有的

5.2 方法

1)static void arraycopy():复制数组

2)static long currentTimeMillis(); 获取当前系统时间,返回的是毫秒值

3)static void gc(); 建议JVM赶快启动垃圾回收器回收垃圾

4)static void exit(int status); 退出JVM,如果参数是0,表示正常退出,非0表示异常退出

package System_;
 
import java.util.Arrays;
 
public class Demo01 {
    public static void main(String[] args) {
        //arraycopy:数组的复制
        //src:源数组
        //srcPos:从那个位置开始复制0
        //dest:目标数组
        //destPos:目标数组的位置
        //length:复制的长度
        int[] arr={20,18,15,8,35,26,45,90};
        int[] dest=new int[8];
        System.arraycopy(arr,4,dest,4,4);
        for(int i=0;i<dest.length;i++){
            System.out.println(dest[i]);
        }
        //Arrays.copyOf(original,newLength)
        System.out.println(System.currentTimeMillis());
        long start = System.currentTimeMillis();
        for(int i=9999999;i<99999999;i++){
            for(int j=-9999999;j<9999999;j++){
                int result=i+j;
            }
        }
        long end=System.currentTimeMillis();
        System.out.println("用时:"+(end-start));
         new Student("aaa",19);
         new Student("bbb",19);
         new Student("ccc",19);
         //垃圾回收
          System.gc();  //回收了ccc 19
                        // 回收了bbb 19
                        // 回收了aaa 19
        //退出JVM
        System.exit(0);
        System.out.println("程序运行结束...");
 
 
    }
}
package System_;
 
public class Student {
    private String name;
    private int age;
    public Student(String name,int age){
        super();
        this.name=name;
        this.age=age;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
    public int setAge(int age){
 
        this.age=age;
        return 0;
    }
 
    @Override
    public String toString() {
        return "Student[name="+name+",age ="+age+"]";
    }
 
    @Override
    protected void finalize() throws Throwable {
        System.out.println("回收了"+name+""+" "+age);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值