前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java学习之常用类篇

Java学习之常用类篇

作者头像
全栈程序员站长
发布2021-12-13 08:13:34
2330
发布2021-12-13 08:13:34
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

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);

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

列出几个方法:

代码语言:javascript
复制
 byte nextByte() 
          将输入信息的下一个标记扫描为一个 byte。 
 byte nextByte(int radix) 
          将输入信息的下一个标记扫描为一个 byte。 
 double nextDouble() 
          将输入信息的下一个标记扫描为一个 double。 
 float nextFloat() 
          将输入信息的下一个标记扫描为一个 float。 
 int nextInt() 
          将输入信息的下一个标记扫描为一个 int。 

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

代码语言:javascript
复制
Scanner sc = new Scanner(System.in);

int i = sc.nextInt;

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

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

格式:

new Scanner(System.in);

注意事项:

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

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

代码语言:javascript
复制
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 类

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

代码语言:javascript
复制
Random() 
          创建一个新的随机数生成器。 
Random(long seed) 
          使用单个 long 种子创建一个新的随机数生成器。 

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

Random random = new Random();

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

int i = random.nextInt();

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

代码语言:javascript
复制
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集合类,让我们可以比较便捷的存储和操作对象。

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

代码语言:javascript
复制
java.util.ArrayList

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

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

实例化对象:

代码语言:javascript
复制
 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() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。

那么就都来试试

代码语言:javascript
复制
{

    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

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

代码语言:javascript
复制
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;

定义静态方法格式:

代码语言:javascript
复制
public static void method(){
    System.out.println("123")
}

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

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

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

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

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

代码语言:javascript
复制
类名.变量名

类名.静态方法

0x07 Array类

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

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

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

代码示例:

代码语言:javascript
复制
 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这是用于数学运算的类,这里面的一些方法也都是静态方法,所以也不需要实例化对象,那么我们也不需要学习他的构造方法,直接类名调用即可。

查看他的一些方法使用

代码语言:javascript
复制
abs(double a) 
          返回 double 值的绝对值。

代码:

代码语言:javascript
复制
 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 结尾

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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/119954.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java学习之常用类篇
    • 0x00 前言
      • 0x01 api的使用
        • 0x02 Scanner类
          • 0x03 Random 类
            • 0x04 ArrayList类
              • 0x06 static
                • 0x07 Array类
                  • 0x08 Math类
                    • 0x09 结尾
                    相关产品与服务
                    容器服务
                    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档