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个结束
}
}
创作不易,大佬们留步… 动起可爱的双手,来个赞再走呗 (๑◕ܫ←๑)