Java API1(基本类型包装类 Objecct类 String类)

Java API

API(Application Programming Interface)应用程序编程接口

它是对java预先定义的类或者接口功能和函数功能的说明文档,目的是给开发人员提供说明帮助

基本数据类型包装类

Java作为面对对象的编程语言,但是Java中的基本数据类型却是不面向对象的,这就导致在实际操作中存在许多不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应类进行代表,这样八个和基本数据类型对应的类统称为包装类

八个基本数据类型除了int(Integer)和char(character)其他的包装类名都是自己本身(首字母大写).

用Integer包装类举例子

package apiinteger;

public class IntDemo {
    public static void main(String[] args) {
        int num=10;

        Integer num1 = new Integer(num);
        //Integer类 包装num
        System.out.println(num1.byteValue());

        Integer num2 = new Integer('a');//将字符串类型的值转换为int型
        System.out.println(num2);

        System.out.println(Integer.toBinaryString(3));//十进制转换为2进制
        System.out.println(Integer.toHexString(17));//十进制转换为16进制
        System.out.println(Integer.toOctalString(12));//十进制转换为8进制
        System.out.println(Integer.toString(10));

        System.out.println(Integer.MAX_VALUE);//int型常量保持的最大值
        System.out.println(Integer.MIN_VALUE);//int型常量保持的最小值
        System.out.println(Integer.BYTES);//用于表示二进制补码二进制形式的 int值的字节数。
        System.out.println(Integer.SIZE);//用于表示二进制补码二进制形式的 int值的位数。

    }
}

package apiinteger;

public class IntDemo2 {
    public static void main(String[] args) {
        int num=10;

        Integer num1 = new Integer(9);

        Integer num2 = new Integer(10);//将字符串类型的值转换为int型
        //比较方法
        System.out.println(num1.compareTo(num2));
        System.out.println(Integer.compare(num1,num2));

        System.out.println(Integer.max(num1,num2));//比较大小 还有min

        System.out.println(num1.equals(num2));//equals() 比较两个对象值是否相等
        System.out.println(num1==num2);//==用于引用类型比较时,比较的是对象的内存地址是否相等

        //转换方法
        Integer num3=new Integer(12);
        int num4=num3.intValue();
        long num5=num3.longValue();
        Byte num6=num3.byteValue();

        Integer.parseInt("15");
        Integer.parseInt("10",1);

        int num7=Integer.valueOf(10);
        int num8=Integer.valueOf("15");

    }
}


package apiinteger;

public class IntDemo3 {
    public static void main(String[] args) {
        int num=10;
        /*
        装箱 自动将基本数据类型转换为包装器类型
        装箱的时候自动调用的是 Integer的valueof(int)方法
         */
        Integer num1=num;
        /*
        拆箱 自动将包装器类型转换为基本数据类型
        拆箱时自动调用的是Integer的intVlue方法
         */
        int num2=num1;

        /*
        Integer num3=Integer.valueOf(127);
        Integer num4=Integer.valueOf(127);
         */
        /*
        使用装箱(valueof(127))在创建对象时,值如果在-128--127之间如果多个值相同,指向的是同一
        个内存地址 使用new + 构造方法()方式 不管值是否在此区间,都会创建新的对象
         */
        Integer num3=8;
        Integer num4=8;
        System.out.println(num3.equals(num4));//true
        System.out.println(num3==num4);//true

        long ll=10l;
        Long l2=ll;
        long l3=l2;
    }
}

Object类

我们在前面就已经了解到了,Object类是所有java类的祖先(根基类),每个类都使用Object作为超类(父类),所有的对象(包括数组)都实现这个类的方法

/*如果在类的声明中未使用extends关键字指明其基类,那么默认基类就是Object类*/
public class Person {	...	}
//等价于
public class Person extends Object {
	...
}

1.toSteing方法

package apiobject;

public class ObjectDemo {
    public static void main(String[] args) {
        Person p=new Person("adfc",16);
       /*
       将对象输出时,会调用toString()
       当类中没有定义toString()时,会默认调用父类(object)中的toString()
        public String toString(){
            return getClass().getName()+"@"+Integer.toHexString()
        }
        本地方法 java语言不实现,调用操作系统实现
        public native int hashCode()
        object()类中toString()将对象地址转为16进制的字符串输出
        */
        System.out.println(p);

    }
}

2.equals方法

package apiobject;

public class ObjectDemo2 {
    public static void main(String[] args) {
        Person p=new Person("dadaf",23);
        Person p1=new Person("dadaf",23);
        System.out.println(p.equals(p1));


        Integer n=128;
        Integer n1=128;
        System.out.println(n.equals(n1));
        System.out.println(n==n1);

    }
}

package apiobject;

import java.util.Objects;

public class Person {
    String name;
    int age;

    public Person(String name,int age){
        this.name=name;
        this.age=age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "姓名='" + name + '\'' +
                ", 年龄=" + age +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age &&
                Objects.equals(name, person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

String类

String类:字符串是由多个字符组成的一串字符序列的字符串常量,java中所有的字符串都是String类型的实例

那么如何创建字符串呢?

下面我们介绍两种创建方法

package apistring;

public class StringDemo {
    public static void main(String[] args) {
        /*
        字符串对象创建两种方式
        1.String s="abc";
         第一次创建时,字符串常量池没有对象,你们就会在常量池中创建一个对象
         第二次创建时,如果常量池已经存在,直接指向常量池的对象
         */
        String s="abc";
        String s1="abc";
        System.out.println(s.equals(s1));//true
        System.out.println(s==s1);//true

        String a=new String("asd");
        String b=new String("asd");
        System.out.println(a.equals(b));//true 比较内容
        System.out.println(a==b);//false 比较地址

        /*
        字符串值是常量,值不能改变,一旦改变是在内存中创建了一个新的对象(新的对象创建后,旧对象
        不用,会自动被清理掉)
        private final char value{}
        字符串底层是char数组储存,单个字符串储存
        final修饰
         */
        String s2="asd";
               s2+="dfg";
               s2+="hjk";
               s2+="l";
        System.out.println(s2);
    }
}

package apistring;

public class StringDemo2 {
    public static void main(String[] args) {
        /*
        判断功能
        */
        String str=new String("asd");
        String str1=new String("asd");
        System.out.println(str.equals(str1));//true
        System.out.println(str.equalsIgnoreCase("ASd"));//不区分大小写
        System.out.println(str.contains("a"));//包含
        System.out.println(str.isEmpty());
        System.out.println(str.startsWith("a"));//判断开始字符
        System.out.println(str.endsWith("d"));//判断结束字符

    }
}


package apistring;

public class StringDemo3 {
    public static void main(String[] args) {
        /*
        获取功能
         */
        String a=new String("asdfghjkds");
                                   //0123456789
        System.out.println(a.length());
        System.out.println(a.charAt(4));//查找字符
        System.out.println(a.indexOf("d"));//查找"f"所在地址
        System.out.println(a.indexOf("d",3));//从3开始 找d所在位置
        System.out.println(a.indexOf(2,5));//从5开始找2所在位置 没有输出-1
        System.out.println(a.substring(3));//截取 从第三个数开始截取
        System.out.println(a.substring(4,6));//从第四个数开始 在第5个结束
    }
}


创作不易,大佬们留步… 动起可爱的双手,来个赞再走呗 (๑◕ܫ←๑)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值