概述自学版

概述

常用类(API)

java系统中提供的一些使用频率较高的类。

API: java系统中提供的一系列类和接口

api文档:官方给java开发者提供的对类和接口功能说明的文档

Object

java .lang .Object 是java类体系中最顶级的,万类之祖

当输出一个对象时,会默认调用类中的toString()方法,把对象以字符串形式输出。

类中如果没有toString(),那么会调用父类(Object)中的toString()
p1.equals(p2);//equals用来比较对象中的内容是否相等(注:Object类的equals方法比的仍然是地址)
//==用于基本类型比较时,比较的是值是否相等。
//==用于引用类型比较时,比较的是地址是否相等。
  • Object类equals比较对象时:
public class Equal {
    String name;
    int age;
    public Equal(String name,int age){
        this.age=age;
        this.name=name;
    }
}
public class EqualTest {
    public static void main(String[] args) {
        Equal equal1=new Equal("e1",1);
        Equal equal2=new Equal("e1",1);
        System.out.println(equal1.equals(equal2));

    }
}

​ 运行结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

解决方法:重写Object里的equals

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

    @Override
    public boolean equals(Object obj) {
        Equal equal=(Equal)obj;
        return this.name.equals(equal.name)&&this.age==equal.age;
    }
}
public class EqualTest {
    public static void main(String[] args) {
        Equal equal1=new Equal("e1",1);
        Equal equal2=new Equal("e1",1);
        System.out.println(equal1.equals(equal2));

    }
}

​ 运行结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


Arrays


equals:

  • 格式:
int[] a={1,2,3,4};
int[] b={1,2,3,4};
System.out.println(a.equals(b));//返回false,因为此时调用的是Object里的equals。
System.out.println(Arrays.equals(a,b));//返回true
  • 比较的是类中的元素;

Arrays.binarySearch ():

二分查找


  • 注意:
  1. 需要数组有序;
  2. 如果数组中不包含需要查找的数则返回负数。
  • 格式:
 int[] a={1,2,3,4};
 int[] b={1,2,3,4};
 Arrays.binarySearch(a,2);//在a数组中查找2
Arrays.binarySearch(a,122);//在a数组中查找1到2位置上是否有2
 int index=Arrays.binarySearch(a,4);
 System.out.println(index);

Arrays.copyOf():

数组扩充


  • 格式:
int[] a={1,2,3,4}
System.out.println(Arrays.toString(a));//[1, 2, 3, 4]
a=Arrays.copyOf(a,8);
System.out.println(Arrays.toString(a));//[1, 2, 3, 4, 0, 0, 0, 0]

Arrays.fill():

将指定值分配给数组中每个元素

int[] a=new int[3];
Arrays.fill([3]a,2);

基本数据类型包装类


基本数据类型封装类

装箱:

将基本类型自动转为包装类

int a=138;
Integer c1=Integer.valueOf(a);//自动装箱

自动装箱时,自动调用Integer类中的valueof(),这个方法内部对-128–127之间进行缓存(数组)。超出此区间后,每次都会创建新的Integer对象(所以超出127或-128后的地址会改变)

int a=138;
int b=138;
Integer c1=Integer.valueOf(a);//Integer c1=a;
Integer c2=Integer.valueOf(b);
System.out.println(c1==c2);//false
System.out.println(c1.equals(c2));//ture

拆箱:

将包装类型转为基本型。

int a=138;
Integer c=Integer.valueOf(a);//装箱
int d=c.intValue();//拆箱

String类

  • 字符串值不可改变
  • String类不可被继承
String s="abc";
s+="aaa";
s+="bbb";
s+="ccc";
System.out.println(s);//输出为abcaaabbbccc,字符串值改变的原因是因为每次执行s+=式子时都隐式创建了新的对象。

String s1="abc";
String s2="abc";//在第一次创建s1变量时,会去内存中有一个叫字符串常量池的空间检索有没有此内容的一个字符串对象,如果没有就会在字符串常量池中创建一个字符串对象,把对象地址赋给s1,在第二次创建s2变量时,重复以上操作,一旦创建的字符串对象一致,返回拿到的则是同一个字符串的地址。
String s3=new String("abc");
String s4=new String("abc");//无论值是否相等,均直接创建新对象占用新的内存

String(byte[] bytes)

  • 字符数组与字符串的转换:
String str = "denqinwen";
        char chars[]=str.toCharArray();//将字符串转换为字符数组
        System.out.println(Arrays.toString(chars));
        String string=new String(chars);//将字符数组转为字符串
        System.out.println(string);
  • 转码与解码:
String str1=new String();//this.value = "".value;
        String str2=new String("你好");
        byte bytes[]=str2.getBytes("utf-8");//转码,其中"utf-8"可以更换为其他码或直接不写。
        System.out.println(Arrays.toString(bytes));//将”你好“拆分成编码(默认为Unicode码)
        String str3=new String(bytes,"utf-8");//解码,其中“utf-8”同理于转码中
        System.out.println(str3);

byte bytes[]=str2.getBytes(“utf-8”);//转码,其中"utf-8"可以更换为其他码或直接不写。
System.out.println(Arrays.toString(bytes));//将”你好“拆分成编码(默认为Unicode码)
String str3=new String(bytes,“utf-8”);//解码,其中“utf-8”同理于转码中
System.out.println(str3);


"utf-8"是针对Unicode的一种可变长度字符编码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值