Java学习之常用类篇

Java学习之常用类篇

0x00 前言

在开发中难免调用到各种api来开发程序,那就先来学习一下api的一些相关概念。

0x01 api的使用

首先还是得来看看api的一个解释。

API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的 字典 ,是JDK中提供给
我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学
习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。

这里复制了一段网上采集的对于api的解释。

可以得知,这个api是jdk提供给我们的使用类的一个说明文档。

api文档的使用步骤。

1.首先查看包,该类在哪个包下面,如果是在java.lang包不需要导入,可以直接使用,如果是其他的包下就需要导入。

2.查看类的解释与说明。

3.学习该类的构造方法

0x02 Scanner类

Scanner这是一个可以解析基本
类型和字符串的简单文本扫描器。

首先我们需要导入一个类

improt java.util.Scanner

然后就是使用构造方法,实例化该类的对象。

Scanner sc = new Scanner(System.in);

接下来就可以去调用他的方法了,先来查看一下该类的方法,对其进行调用。

列出几个方法:

 byte nextByte() 
          将输入信息的下一个标记扫描为一个 byte。 
 byte nextByte(int radix) 
          将输入信息的下一个标记扫描为一个 byte。 
 double nextDouble() 
          将输入信息的下一个标记扫描为一个 double。 
 float nextFloat() 
          将输入信息的下一个标记扫描为一个 float。 
 int nextInt() 
          将输入信息的下一个标记扫描为一个 int。 

我们这里就来接收一下键盘输入的数字,只有netxtInt方法。

Scanner sc = new Scanner(System.in);

int i = sc.nextInt;

这里的system.in系统输入是指通过键盘录入数据。

对于只使用接受一次的方法,我们就可以使用到匿名对象来进行接收。

格式:

new Scanner(System.in);

注意事项:

一个匿名对象,只能使用一次

匿名的对象也可以作为方法的参数或者是返回值进行使用

public class Input {

    public static void main(String[] args) {
        
        input(new Scanner(System.in));
    }

    private static void input(Scanner sc) {
        System.out.println(sc);
    }
}

0x03 Random 类

这是一个生成伪随机数的类,在使用前,肯定是要先看看他的构造方法。

Random() 
          创建一个新的随机数生成器。 
Random(long seed) 
          使用单个 long 种子创建一个新的随机数生成器。 

看完构造方法就可以实例化一个对象了。

Random random = new Random();

实例化完一个对象就可以使用,实例化调用的方法。

int i = random.nextInt();

这样就使用到了random类生成了一个随机值,赋值到了i变量里面

public class Input {

    public static void main(String[] args) {
        Random random = new Random();
        int i = random.nextInt();
        System.out.println(i);
    }
}

0x04 ArrayList类

前面接触的数组,只能存储固定的长度和固定的类型。而为了解决这个问题,java提供了一个容器 arrayList集合类,让我们可以比较便捷的存储和操作对象。

首先也还是查看一下构造方法。

java.util.ArrayList :该类需要 import导入使后使用。
,表示一种指定的数据类型,叫做泛型。 E ,取自Element(元素)的首字母。在出现 E 的地方,我们使
用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。

ArrayList() 
          构造一个初始容量为 10 的空列表。 
ArrayList(Collection<? extends E> c) 
          构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。 
ArrayList(int initialCapacity) 
          构造一个具有指定初始容量的空列表。 

实例化对象:

 public class Input {

    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        String s1 ="小明";
        String s2 ="小红";
        String s3 ="小绿";
        list.add(s1);
        list.add(s2);
        list.add(s3);
        System.out.println(list);
    }
}

对于元素的操作,基本体现在——增、删、查。常用的方法有:

public boolean add(E e) :将指定的元素添加到此集合的尾部。

public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。

public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。

public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。

那么就都来试试

{

    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        String s1 ="小明";
        String s2 ="小红";
        String s3 ="小绿";
        list.add(s1);
        list.add(s2);
        list.add(s3);
        System.out.println("get"+list.get(0));
        System.out.println("get"+list.get(1);
        System.out.println("get"+list.get(2));
        System.out.println("zise"+list.size());

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        
    }
}

ArrayList对象不能存储基本类型,只能存储引用类型,但是存储基本类型对应的包装类型是可以的。
所以,想要存储基本类类型的数据,<>中的数据类型,必须转换后才能编写

基本类型 基本类型包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

在集合里面也可以存储对象

public class Input {

    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();
        Student s1 = new Student();
        Student s2 = new Student();
        Student s3 = new Student();
        list.add(s1);
        list.add(s2);
        list.add(s3);
        System.out.println(list);


    }
}

0x06 static

对于static关键字得时候,他可以用来修饰成员遍历和成员方法,被修饰得成员是属于类得,而不是单单输入某个对象里面。也就是说,既然属于类,就可以不靠创建对象来调用。

当被static修饰得成员时,该变量被叫做类变量。这个类每个对象都共享同一个类变量得值。任何对象都没有改变这个类变量得值,但也可以在不创建得情况下对这个类变量进行操作。

定义静态变量格式:

static 数据类型 变量名;

static int num;

定义静态方法格式:

public static void method(){
    System.out.println("123")
}

静态方法调用的注意事项:
1.静态方法可以直接访问类变量和静态方法。

2.静态方法不能直接访问普通成员变量或成员方法。反之,成员方法可以直接访问类变量或静态方法。

静态方法中,不能使用this关键字。

4.静态方法只能访问静态成员。

static修饰后的成员需要使用类名直接访问,和前面的接口静态方法类似。

类名.变量名

类名.静态方法

0x07 Array类

Array包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法,调用起来
非常简单。也就是说不需要实例化对象,可以直接通过类名来调用他。

查看一下该类的一个静态方法的使用

sort(int[] a) 
          对指定的 int 型数组按数字升序进行排序。
          
toString(int[] a) 
          返回指定数组内容的字符串表示形式

代码示例:

 public static void main(String[] args) {
    int[]  arr = {1,29,3,3,64};
    String s = Arrays.toString(arr);
    System.out.println(s);
    Arrays.sort(arr);
        String a = Arrays.toString(arr);
        System.out.println(a);

    }

0x08 Math类

math这是用于数学运算的类,这里面的一些方法也都是静态方法,所以也不需要实例化对象,那么我们也不需要学习他的构造方法,直接类名调用即可。

查看他的一些方法使用

abs(double a) 
          返回 double 值的绝对值。
        

代码:

 public static void main(String[] args) {
        double abs = Math.abs(-13.3);
        double ceil = Math.ceil(93.3);
        System.out.println(abs);
        System.out.println(ceil);

    }

这些方法都比较简单,至于这个向上取整的运用,这里可以来说一下,例如我们开发一个类似于御剑的目录扫描器,我们有23个字典需要分开5个线程去请求,每个线程都请求4个字典的话,那么还会多出三个字典没有线程去请求,就会把多出来这个字典给忽略掉,如果被忽略的这个字典刚刚好是后台的路径呢?所以在工具开发当中这些都是要注意的点,我们需要再多开一个线程,去请求多出来的一些数据,那么这时候就可以使用到向上取整。

0x09 结尾

开发程序中,总是会用到各种类,所以不能全靠死记,要学会怎么去查看手册去开发个程序。

posted @ 2020-08-04 14:11  nice_0e3  阅读(549)  评论(0编辑  收藏  举报