【Java】Arrays类、static关键字

简介: 本期主要介绍Arrays类、static关键字

1. static关键字


1.1 概述


关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。

1.2 定义和使用格式


类变量

static 修饰成员变量时,该变量称为类变量。该类的每个对象都共享同一个类变量的值。任何对象都可以更改

该类变量的值,但也可以在不创建该类的对象的情况下对类变量进行操作。

类变量:使用 static关键字修饰的成员变量。

定义格式:

image.png

举例:

image.png

比如说,基础班新班开班,学员报到。现在想为每一位新来报到的同学编学号(

sid ),从第一名同学开始, sid 为


1 ,以此类推。学号必须是唯一的,连续的,并且与班级的人数相符,这样以便知道,要分配给下一名新同学的学号是多少。这样我们就需要一个变量,与单独的每一个学生对象无关,而是与整个班级同学数量有关。

所以,我们可以这样定义一个静态变量 numberOfStudent ,代码如下:

image.png

image.png

静态方法

当 static 修饰成员方法时,该方法称为 类方法 。静态方法在声明中有 static ,建议使用类名来调用,而不需要创建类的对象。调用方式非常简单。

类方法 :使用 static 关键字修饰的成员方法,习惯称为 静态方法 。

定义格式:

image.png

举例:在Student类中定义静态方法

image.png

静态方法调用的注意事项:

静态方法可以直接访问类变量和静态方法。

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

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

小贴士:静态方法只能访问静态成员。

调用格式

static修饰的成员可以并且建议通过类名直接访问。虽然也可以通过对象名访问静态成员,原因

即多个对象均属

于一个类,共享使用同一个静态成员,但是不建议,会出现警告信息。

格式:

image.png

调用演示,代码如下:

image.png

1.3 静态原理图解


static 修饰的内容:

是随着类的加载而加载的,且只加载一次。

存储于一块固定的内存区域(静态区),所以,可以直接被类名调用。

它优先于对象存在,所以,可以被所有对象共享。

image.png

1.4 静态代码块


静态代码块:定义在成员位置,使用static修饰的代码块{ }

位置:类中方法外。

执行:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。

格式:

image.png

小贴士:

static 关键字,可以修饰变量、方法和代码块。在使用的过程中,其主要目的还是想在不创建对象的情况下,去调用方法。下面将介绍两个工具类,来体现 static 方法的便利。

2. Arrays


2.1 概述


java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法,调用起来非常简单。

2.2 操作数组的方法


public static String toString(int[] a) :返回指定数组内容的字符串表示形式。

image.png

image.png

2.3 练习


请使用 Arrays 相关的API,将一个随机字符串中的所有字符升序排列,并倒序打印。

image.png

相关文章
|
1天前
|
安全 Java 开发者
Java一分钟之-文件与目录操作:Path与Files类
【5月更文挑战第13天】Java 7 引入`java.nio.file`包,`Path`和`Files`类提供文件和目录操作。`Path`表示路径,不可变。`Files`包含静态方法,支持创建、删除、读写文件和目录。常见问题包括:忽略异常处理、路径解析错误和权限问题。在使用时,注意异常处理、正确格式化路径和考虑权限,以保证代码稳定和安全。结合具体需求,这些方法将使文件操作更高效。
11 2
|
1天前
|
安全 Java 开发者
Java一分钟之-Optional类:优雅处理null值
【5月更文挑战第13天】Java 8的`Optional`类旨在减少`NullPointerException`,提供优雅的空值处理。本文介绍`Optional`的基本用法、创建、常见操作,以及如何避免错误,如直接调用`get()`、误用`if (optional != null)`检查和过度使用`Optional`。正确使用`Optional`能提高代码可读性和健壮性,建议结合实际场景灵活应用。
19 3
|
1天前
|
安全 Java 数据安全/隐私保护
Java一分钟之-Java反射机制:动态操作类与对象
【5月更文挑战第12天】本文介绍了Java反射机制的基本用法,包括获取Class对象、创建对象、访问字段和调用方法。同时,讨论了常见的问题和易错点,如忽略访问权限检查、未捕获异常以及性能损耗,并提供了相应的避免策略。理解反射的工作原理和合理使用有助于提升代码灵活性,但需注意其带来的安全风险和性能影响。
23 4
|
1天前
|
安全 算法 Java
Java一分钟:线程同步:synchronized关键字
【5月更文挑战第11天】Java中的`synchronized`关键字用于线程同步,防止竞态条件,确保数据一致性。本文介绍了其工作原理、常见问题及避免策略。同步方法和同步代码块是两种使用形式,需注意避免死锁、过度使用导致的性能影响以及理解锁的可重入性和升级降级机制。示例展示了同步方法和代码块的运用,以及如何避免死锁。正确使用`synchronized`是编写多线程安全代码的核心。
57 2
|
1天前
|
安全 Java 调度
Java一分钟:多线程编程初步:Thread类与Runnable接口
【5月更文挑战第11天】本文介绍了Java中创建线程的两种方式:继承Thread类和实现Runnable接口,并讨论了多线程编程中的常见问题,如资源浪费、线程安全、死锁和优先级问题,提出了解决策略。示例展示了线程通信的生产者-消费者模型,强调理解和掌握线程操作对编写高效并发程序的重要性。
45 3
|
1天前
|
小程序 Java 容器
03|Java基础语法:讲解标识符、关键字、变量、数据类型、运算符、控制语句(条件分支、循环)
03|Java基础语法:讲解标识符、关键字、变量、数据类型、运算符、控制语句(条件分支、循环)
9 0
|
1天前
|
Java
深入浅出Java基础语法:标识符、关键字、变量、数据类型、运算符与控制语句
深入浅出Java基础语法:标识符、关键字、变量、数据类型、运算符与控制语句
7 0
|
1天前
|
Java
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
|
9月前
|
存储 Java 数据库
Java-对象的操作(构造、初始化、封装)、static成员以及代码块(中)
Java-对象的操作(构造、初始化、封装)、static成员以及代码块(中)
40 1
|
9月前
|
存储 Java 编译器
Java-对象的操作(构造、初始化、封装)、static成员以及代码块(下)
Java-对象的操作(构造、初始化、封装)、static成员以及代码块(下)
39 0